翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
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 関数へのアクセスを許可する
-
Amazon Connect コンソール (https://console.aws.amazon.com/connect/
) を開きます。 -
[インスタンス] ページで、[インスタンスエイリアス] 列からインスタンス名を選択します。このインスタンス名は、Amazon Connect へのアクセスに使用する URL に表示されます。
-
チャネルと通信のナビゲーションペインで、アウトバウンドキャンペーンを選択します。
-
カスタムアクションのセットアップセクションで、Lambda 関数のドロップダウンボックスを使用して、アウトバウンドキャンペーンインスタンスに追加する関数を選択します。
-
[Lambda 関数の追加] を選択します。関数の ARN が [Lambda Functions (Lambda 関数)] の下に追加されていることを確認します。
ステップ 3: キャンペーンから Lambda を呼び出す
-
ジャーニーフローを開くか作成します。
-
カスタムアクションブロック (統合グループ内) をグリッドに追加します。ブロックと分岐を結合します。
-
カスタムアクションブロックのタイトルを選択して、プロパティページを開きます。
-
関数 ARN で、アウトバウンドキャンペーンインスタンスに追加した関数のリストから選択します。
ステップ 4: Lambda 関数のレスポンスを使用する
変数に直接アクセスする
これらの変数にフローブロックで直接アクセスするには、カスタムアクションブロックの後に ブロックを追加し、次の例に示すように属性を参照します。
RecommendedProduct - $.LambdaInvocation.ResultData.recommendedProduct Score - $.LambdaInvocation.ResultData.score
ソース属性に指定された名前が、Lambda からResultData返された のキー名と一致していることを確認します。