Lambda 関数を呼び出す - Amazon Connect

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

Lambda 関数を呼び出す

ステップ 1: Lambda 関数を作成する

キャンペーンの実行中、アウトバウンドキャンペーンはプロファイルのバッチを使用して Lambda 関数を呼び出し、それぞれの結果を含むレスポンスを期待します。

リクエストペイロード

Lambda 関数が呼び出されると、次の構造を持つ JSON ペイロードを受け取ります。

ペイロード構造

{ "InvocationMetadata": { "CampaignContext": { "CampaignId": "string", "RunId": "string", "ActionId": "string", "CampaignName": "string" } }, "Items": { "CustomerProfiles": [ { "ProfileId": "string", "CustomerData": "string", "IdempotencyToken": "string" } ] } }

フィールドの説明

InvocationMetadata
  • CampaignContext: キャンペーン実行に関するメタデータが含まれます

  • CampaignId: キャンペーンの一意の識別子

  • RunId: この特定のキャンペーン実行の一意の識別子

  • ActionId: アウトバウンドキャンペーンによって実行されるフローアクションの識別子

  • CampaignName: キャンペーンの人間が読み取れる名前

項目
  • CustomerProfiles: 処理する顧客プロファイルの配列 (効率のためにバッチ処理)

  • ProfileId: 顧客プロファイルの一意の識別子

  • CustomerData: 顧客プロファイルの JSON 文字列

  • IdempotencyToken: べき等処理を確保するためのこの特定の呼び出しの一意のトークン

リクエストペイロードの例

{ "InvocationMetadata": { "CampaignContext": { "CampaignId": "campaign-12345", "RunId": "run-67890", "ActionId": "activity-abc123", "CampaignName": "Welcome Campaign" } }, "Items": { "CustomerProfiles": [ { "ProfileId": "customer-001", "CustomerData": "{\"firstName\":\"John\",\"lastName\":\"Doe\",\"email\":\"john.doe@example.com\"}", "IdempotencyToken": "token-xyz789" }, { "ProfileId": "customer-002", "CustomerData": "{\"firstName\":\"Jane\",\"lastName\":\"Smith\",\"email\":\"jane.smith@example.com\"}", "IdempotencyToken": "token-abc456" } ] } }

予想されるレスポンスペイロード

Lambda 関数は、次の構造を持つ JSON レスポンスを返す必要があります。

レスポンス構造

{ "Items": { "CustomerProfiles": [ { "Id": "string", "ResultData": {} } ] } }

フィールドの説明

項目
  • CustomerProfiles: リクエスト内の各顧客プロファイルに対応する結果の配列

  • ID: リクエストProfileIdの と一致する必要があります

  • ResultData: 処理結果を含むカスタム JSON オブジェクト (オプション)

レスポンスペイロードの例

{ "Items": { "CustomerProfiles": [ { "Id": "customer-001", "ResultData": { "recommendedProduct": "Premium Plan", "score": 85, "nextAction": "send_email" } }, { "Id": "customer-002", "ResultData": { "error": "Invalid customer data", "errorCode": "VALIDATION_ERROR" } } ] } }

重要な制約

ペイロードサイズ制限

  • レスポンスペイロードの最大サイズ: 顧客プロファイルあたり 32 KB

  • がこの制限ResultDataを超えると、呼び出しは無効としてマークされます。

対応要件

  • リクエストProfileIdに含まれるすべての にレスポンスを提供する必要があります

  • 欠落したレスポンスはエラーとして扱われます

  • レスポンスの Idフィールドは、リクエストProfileIdの と完全に一致する必要があります。

エラー処理

  • Lambda 関数が例外をスローすると、バッチ内のすべてのプロファイルが失敗としてマークされます。

  • デバッグResultDataの目的でエラーの詳細を に含める

呼び出しタイプ

  • 呼び出しタイプ: REQUEST_RESPONSE (同期)

  • 関数は、非同期的に処理するのではなく、30 秒以内に結果を返します。応答に 30 秒以上かかると、アクションが失敗します

ステップ 2: アウトバウンドキャンペーンに Lambda 関数へのアクセスを許可する

  1. Amazon Connect コンソール (https://console.aws.amazon.com/connect/) を開きます。

  2. [インスタンス] ページで、[インスタンスエイリアス] 列からインスタンス名を選択します。このインスタンス名は、Amazon Connect へのアクセスに使用する URL に表示されます。

  3. チャネルと通信のナビゲーションペインで、アウトバウンドキャンペーンを選択します。

  4. カスタムアクションのセットアップセクションで、Lambda 関数のドロップダウンボックスを使用して、アウトバウンドキャンペーンインスタンスに追加する関数を選択します。

  5. [Lambda 関数の追加] を選択します。関数の ARN が [Lambda Functions (Lambda 関数)] の下に追加されていることを確認します。

ステップ 3: キャンペーンから Lambda を呼び出す

  1. ジャーニーフローを開くか作成します。

  2. カスタムアクションブロック (統合グループ内) をグリッドに追加します。ブロックと分岐を結合します。

  3. カスタムアクションブロックのタイトルを選択して、プロパティページを開きます。

  4. 関数 ARN で、アウトバウンドキャンペーンインスタンスに追加した関数のリストから選択します。

ステップ 4: Lambda 関数のレスポンスを使用する

変数に直接アクセスする

これらの変数にフローブロックで直接アクセスするには、カスタムアクションブロックの後に ブロックを追加し、次の例に示すように属性を参照します。

RecommendedProduct - $.LambdaInvocation.ResultData.recommendedProduct Score - $.LambdaInvocation.ResultData.score

ソース属性に指定された名前が、Lambda からResultData返された のキー名と一致していることを確認します。