このチュートリアルでは、 Azure Logic Apps を使用して、App Service アプリをビジネス プロセスと統合する方法について説明します。 Azure App Service アプリから Gmail 経由で電子メールを送信するロジック アプリを作成します。
言語フレームワークで簡易メール転送プロトコル (SMTP) 構成を使用するなど、Web アプリからメールを送信する方法は他にもあります。 ただし、Logic Apps は、コードに複雑さを加えることなく、多くのビジネス統合に簡単な構成インターフェイスを提供します。
このチュートリアルで示す手順を使用して、次のようないくつかの一般的な Web アプリ シナリオを実装できます。
- トランザクションの確認メールの送信。
- Facebook グループへのユーザーの追加。
- SAP や Salesforce などの外部システムへの接続。
- 標準の B2B メッセージの交換。
[前提条件]
このチュートリアルを完了するには、次の前提条件が必要です。
Gmail アカウント。
リソースを作成するアクセス許可を持つ Azure アカウント。
選択した言語でデプロイされた Azure App Service アプリ。 サンプル アプリは、次のいずれかのチュートリアルから使用できます。
ロジック アプリの作成
従量課金ロジック アプリ リソースの作成に関するページの手順に従って、 Azure Logic Apps でマルチテナント 従量課金アプリを作成します。 アプリが作成されたら、[ リソースに移動] を選択します。
ロジック アプリ ページで、左側のナビゲーション メニューの [開発ツール] の下にあるロジック アプリ デザイナーを選択します。
トリガーを追加する
ロジック アプリ デザイナー キャンバスで [ トリガーの追加] を選択します。
[組み込みツール] の [トリガーの追加] 画面で [要求] を選択し、次の画面で [HTTP 要求を受信したとき] を選択します。
トリガーがデザイナー キャンバスに表示されます。
[HTTP 要求の受信時] 画面で、[サンプル ペイロードを使用してスキーマを生成する] を選択します。
次のコードを Enter 画面に貼り付けるか、サンプルの JSON ペイロード画面を貼り付けて 、[完了] を選択 します。
{ "task": "<description>", "due": "<date>", "email": "<email-address>" }入力した要求データのスキーマが Azure によって生成されます。 実際には、アプリケーション コードから実際の要求データをキャプチャし、それを使用して JSON スキーマを生成できます。
ロジック アプリ デザイナーの上部のツール バーで、[保存] を選択 します。
生成された HTTP URL は、[HTTP 要求の受信時] 画面の [HTTP URL] の下に表示されるようになりました。 コピー アイコンを選択して、後で使用する URL をコピーします。
HTTP 要求定義は、メールの送信など、このロジック アプリ ワークフローで行うあらゆる操作のトリガーです。 後で App Service アプリでこの URL を呼び出します。 要求トリガーの詳細については、「 Azure Logic Apps のワークフローに送信される受信 HTTPS 呼び出しの受信と応答」を参照してください。
メールを作成する
電子メール送信アクションを追加し、前に入力した 3 つの HTTP 要求プロパティを電子メールに設定します。
デザイナー キャンバスで、トリガーの下にある + を選択し、[ アクションの追加] を選択します。
[ アクションの追加 ] 画面で、検索ボックスに 「gmail 」と入力し、[ メールの送信 (V2)] を選択します。
ヒント
SendGrid、MailChimp、Microsoft 365、SalesForce など、他の種類の統合を検索することができます。 詳細については、Azure Logic Apps のマネージド コネクタに関するページを参照してください。
[ 接続の作成 ] 画面 で、[サインイン ] を選択して、メールを送信する Gmail アカウントへのアクセスを認証します。
サインインした後、[電子メールの送信 (V2)] 画面の [送信先] フィールド内を選択して、動的コンテンツ アイコンを表示します。 アイコンの上部の稲妻部分を選択します。
動的コンテンツ リストが表示され、前に入力した 3 つの HTTP 要求プロパティが表示されます。 一覧から メール を選択します。
[電子メールの送信 (V2)] 画面の [送信先] フィールドに電子メール アイテムが表示されます。 [詳細パラメーター] の下の一覧をドロップダウンし、[件名] と [本文] を選択します。
[件名] フィールドと [本文] フィールドが [電子メールの送信 (V2)] 画面に表示されます。 [件名] フィールドを選択して動的コンテンツ アイコンを表示し、動的コンテンツ リストからタスクを選択します。
タスクの横にある [件名] フィールドに、スペースを入力し、その後に作成します。
[本文] フィールド内で選択し、動的コンテンツ リストを表示して、[期限] を選択します。
[ 本文 ] フィールドで、カーソルを 期限 前に移動し、「 この作業項目の期限」と 入力し、その後にスペースを入力します。
応答を追加する
HTTP トリガーに非同期 HTTP 応答を追加します。
デザイナー キャンバスで、HTTP 要求トリガーと Gmail アクションの間の + を選択し、[ 並列分岐の追加] を選択します。
[ アクションの追加 ] 画面で、検索フィールドに 「応答 」と入力し、[ 応答] を選択します。
既定では、応答アクションは
HTTP 200を送信します。これは、このチュートリアルで十分です。 詳細については、「 Azure Logic Apps のワークフローに送信された受信 HTTPS 呼び出しを受信して応答する」を参照してください。ロジック アプリ デザイナーのツール バーで [保存] を 選択します。
App Service アプリに HTTP 要求コードを追加する
要求トリガー URL などの機密情報は、App Service アプリ コードに直接入れないようにする必要があります。 代わりに、App Service アプリ設定から環境変数として URL を参照できます。 次のコマンドは、ロジック アプリの HTTP URL に対して LOGIC_APP_URL という環境変数を作成します。
Azure Cloud Shell で、次の Azure CLI コマンドを実行してアプリ設定を作成します。
<app-name>と<resource-group-name>を App Service アプリとリソース グループの名前に置き換えます。<http-url>は、ロジック アプリからコピーした HTTP URL に置き換えます。az webapp config appsettings set --name <app-name> --resource-group <resource-group-name> --settings LOGIC_APP_URL="<http-url>"コードで、次の構成で、HTTP クライアント言語を使用してロジック アプリ URL への標準 HTTP 投稿を言語フレームワークで使用できるようにします。
要求に見出し
Content-Type: application/jsonが含まれていることを確認します。要求本文でロジック アプリに指定したのと同じ JSON 形式を使用します。
{ "task": "<description>", "due": "<date>", "email": "<email-address>" }パフォーマンスを最適化するには、可能であれば要求を非同期的に送信します。
ログ記録の手順については、お好みのフレームワークのドキュメントを確認してください。
要求/応答コードサンプルの例
希望する言語/フレームワークを選択して、要求と応答の例を表示します。 一部の例では、コード パッケージの使用またはインストールが必要です。
ASP.NET Core では、System.Net.Http.HttpClient クラスを使用して HTTP Post を送信できます。 次のコード サンプルでは、 System.Net.Http と System.Text.Jsonを使用する必要があります。
HttpResponseMessageでは、アプリ設定にアクセスするために依存関係挿入 (DI) 構成が必要です。 詳細については、「 Access 環境変数」を参照してください。
// requires using System.Net.Http;
var client = new HttpClient();
// requires using System.Text.Json;
var jsonData = JsonSerializer.Serialize(new
{
email = "someone@example.com",
due = "4/1/2025",
task = "My new task!"
});
HttpResponseMessage result = await client.PostAsync(
// Requires DI configuration to access app settings
_configuration["LOGIC_APP_URL"],
new StringContent(jsonData, Encoding.UTF8, "application/json"));
var statusCode = result.StatusCode.ToString();
注意
このデモ コードは、わかりやすくするために記述されています。 実際には、要求ごとに HttpClient オブジェクトをインスタンス化しません。 「IHttpClientFactory を使用して回復力の高い HTTP 要求を実装する」のガイダンスに従ってください。
ヒント
チュートリアル: Azure App Service で ASP.NET Core および SQL Database アプリをビルドするサンプル アプリを使用している場合は、このコードを使用して、Todo項目を追加した後の [作成] アクションで確認メールを送信できます。