2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Azure Data FactoryパイプラインからOutlookメールアドレスにメールを送信してみた

Last updated at Posted at 2024-10-23

はじめに

以下のリンクを参考に検証してみましたので、備忘として残しておきます。

前提条件

  • Azureアカウントは開設済み
  • ストレージアカウントは作成済み
  • Azure Data Factoryは作成済み
  • ADFパイプラインは未作成

作業内容

Azure Logic Appsの構築

最初にLogic Appsを作成します。
ホスティングオプションは従量課金を選択します。
image.png

リソースグループ、ロジックアプリ名、リージョンを設定します。
特に指定はないですが、ADFと同じリージョンにしておいたほうがよいでしょう。
image.png

ロジックアプリが作成できたら、「ロジックアプリデザイナー」からトリガーの追加を押下します。
image.png

上部の検索欄に"http"と入力し、表示された「When a HTTP request is received」を押下します。
image.png

ドキュメントに記載されているJSONをBodyに入力します。

{
    "properties": {
        "dataFactoryName": {
            "type": "string"
        },
        "message": {
            "type": "string"
        },
        "pipelineName": {
            "type": "string"
        },
        "receiver": {
            "type": "string"
        }
    },
    "type": "object"
}

image.png

上部の折りたたむからフロー画面に戻り、「+」→「アクションの追加」を押下します。

image.png
image.png

続いてメール送信アクションを設定します。
検索欄に"outlook"と入力して、"Office 365 Outlook"の「メールの送信(V2)」を選択します。
※"Outlook.com"は個人MSアカウント、"Office 365 Outlook"は学校や企業のMSアカウントなので必要に応じて選択します

image.png

宛先欄にカーソルをあてると左側にマークが2つ表示されるので、稲妻のようなマークを押下します。

image.png

1つ目のアクションの本文に指定したJSONから動的パラメータが一覧で表示されるため、ドキュメントの説明と同じように"receiver"を選択します。

image.png

そのほかの項目もドキュメントと同じように設定します。
参考までに設定内容を以下に記載します。
※"~~変数"は上記手順を参考に動的パラメータ名を設定してください。

  • 宛先: 「"receiver変数"」
  • 件名: 「[Copy]: your V2 pipeline had a successful copy: "pipelineName変数"」
  • 本文: 「Data Factory Name: "dataFactoryName変数" Details of the successful copy: "message変数"」

image.png

ここまでできたら「保存」ボタンを押下します。

image.png

ADFから参照するためにHTTP URLをコピーしてローカルにメモしておきます。

image.png

これでLogic Appsの構築は完了です。

インプットデータの準備

次にインプットデータの準備です。

ローカル環境で以下のようなファイルを作成しておきます。

input.txt
John,Doe
Jane,Doe

自分のストレージアカウントに移動して、"adfv2branch"という名前のコンテナーを作成します。

image.png

先ほど作成したファイルをアップロードします。
このとき、アップロード先のフォルダーに"input"と設定するのを忘れないようにしてください。

image.png

アップロードが成功すると、Blobコンテナーから対象のファイルが確認できるようになります。

image.png

ADFパイプラインの構築

最後にLogic Appsを呼び出すADF Pipalineを構築します。
ADFは既に構築済み想定なので、概要ページからスタジオを起動します。

image.png

新規でパイプラインを作成します。

image.png

パラメータタブの新規ボタンを押下して、以下3つのパラメータを設定します。
設定値はパイプラインの実行時に指定するため、値は空のままで問題ありません

  • sourceblobcontainer
  • sinkblobcontainer
  • receiver

image.png

アクティビティから「データのコピー」をドラッグ&ドロップして、名前を"Copy1"に修正します。

image.png

ソースタブから新規を押下します。

image.png

Azure Blobストレージを選択して続行を押下します。

image.png

DelimitedTextを選択して続行を押下します。

image.png

プロパティの名前を入力して、リンクサービスを新規作成します。

image.png

自分のストレージアカウント名を選択して、作成を押下します。

image.png

ファイルパスはパイプライン実行時に指定するため、以下のように設定しOKを押下します。
※スキーマのインポートを"なし"にしないとエラーが出るため注意

  • コンテナー: @pipeline().parameters.sourceblobcontainer
  • ディレクトリ: 設定なし
  • ファイル名: input.txt
  • 先頭行をヘッダーとして:未チェック
  • スキーマのインポート:なし

image.png

これでソースタブの設定は完了のため、続いてシンクタブに移動して新規を押下します。

image.png

同様の手順でAzure BlobストレージとDelimitedTextを選択して、プロパティを設定します。ここでは次のように設定します。

  • コンテナー: @pipeline().parameters.sinkblobcontainer
  • ディレクトリ: 設定なし
  • ファイル名: @concat(pipeline().RunId, '.txt')
  • 先頭行をヘッダーとして:未チェック
  • スキーマのインポート:なし

image.png

Blobストレージの設定はできたので、Logic Appsを呼び出す設定を追加します。
全般→WebからWebアクションを配置し、設定タブから以下の項目を設定します。

  • URL: ※Logic Apps手順で最後に確認したHTTP URL
  • メソッド: POST
  • 本文: 以下参照
  • ヘッダー:
    • Name: Content-Type
    • Value: application/json

※本文(ドキュメントから引用)

{
    "message": "@{activity('Copy1').output.dataWritten}",
    "dataFactoryName": "@{pipeline().DataFactory}",
    "pipelineName": "@{pipeline().Pipeline}",
    "receiver": "@pipeline().parameters.receiver"
}

image.png

データコピーアクティビティからWebアクティビティに接続します。

image.png

上部の「すべて発行」を押下します。

image.png

発行を押下します。

image.png

「トリガーの追加」から「今すぐトリガー」を押下します。

image.png

パラメータに以下の内容を設定してOKを押下してパイプラインを実行します。

  • sourceblobcontainer: adfv2branch/input
  • sinkblobcontainer: adfv2branch/input
  • receiver: ※送信先メールアドレス

image.png

少し待つとパイプラインが正常終了したことが確認できます。

image.png

メールが届いており、動的パラメータで設定された箇所が実行したADFパイプライン名などに置き換わっていることが確認できました。

image.png

おわりに

普段Logic Appsを利用することはあまりないので、中々思うように進まない箇所はありましたが、終わってみると設定内容自体はそこまで複雑ではないのかなと感じました。
ただ、ドキュメントはAWSに比べると読みづらさはあるので、どちらかというとそちらの方が大変だったかもしれません。

この記事がどなたかの参考になれば幸いです。

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?