Amazon Connect のコンタクトフローで Lambda 関数が失敗する場合のトラブルシューティングを行う方法を教えてください。

所要時間2分
0

コンタクトフローが Amazon Connect で関数を呼び出そうとしたときに、AWS Lambda 関数が呼び出されない理由を知りたいです。

解決方法

Lambda 関数のリソースベースのポリシーが、Amazon Connect に関数を呼び出すためのアクセス許可を付与していることを確認します。

1.    Amazon Connect インスタンスのコンタクトフローログを有効にします (まだ行っていない場合)。

2.    コンタクトフローログを検索して、AccessDeniedException エラーメッセージを探します。このエラーは、関数を呼び出すためのアクセス許可を関数の AWS Identity and Access Management (IAM) リソースベースのポリシーが Amazon Connect に付与していない場合に表示されます。

注: 関数のリソースベースのポリシーを手動で確認して、必要なアクセス許可が含まれているかどうかを確認することもできます。詳細については、「AWS Lambda でのリソースベースのポリシーの使用」を参照してください。

必要なアクセス許可を追加するには

次の add-permission AWS CLI コマンドを実行します。プリンシパル connect.amazonaws.comAmazon Connect インスタンスの Amazon リソースネーム (ARN) を含めます。

注意: AWS コマンドラインインターフェイス (AWS CLI) コマンドの実行中にエラーが発生した場合は、最新の AWS CLI バージョンを使用していることを確認してください

詳細については、Amazon Connect 管理者ガイドの「Lambda 関数の作成」を参照してください。また、Lambda デベロッパーガイドの「AWS のサービスへのアクセス権を関数に付与する」も参照してください。

関数を呼び出すアクセス許可を Amazon Connect に付与する Lambda 関数のリソースベースのポリシーの例

重要: を関数の ARN に置き換えてください。お使いの Amazon Connect インスタンスの ARN を に置き換えてください。

{
  "Version": "2012-10-17",
  "Id": "default",
  "Statement": [
    {
      "Sid": "100",
      "Effect": "Allow",
      "Principal": {
        "Service": "connect.amazonaws.com"
      },
      "Action": "lambda:InvokeFunction",
      "Resource": "<Qualified AWS Lambda ARN>",
      "Condition": {
        "ArnLike": {
          "AWS:SourceArn": "<Amazon Connect ARN>"
        }
      }
    }
  ]
}

Lambda 関数のレスポンスを検証する

Amazon Connect 管理者ガイドの「関数のレスポンスを検証する」の手順に従います。Lambda 関数から返された出力をテストして以下を確認します。

  • 出力がキーと値のペアのフラットオブジェクトである。
  • キーと値のペアには、英数字、ダッシュ、およびアンダースコア文字のみが含まれる。
  • オブジェクトはネストされておらず、複雑でもない。
  • 返されるデータのサイズが UTF-8 データで 32 KB 未満である。

Lambda 関数のTimeout 設定が、関数を呼び出すのに十分な時間に設定されていることを確認します。

構成されている Timeout 設定内で関数が呼び出されない場合、コンタクトは「AWS Lambda 関数の呼び出し」の Error ブランチにルーティングされます。デフォルトの Timeout 設定は 3 秒です。最大 Timeout 設定は 8 秒です。

関数の呼び出しにかかる時間を確認するには、Amazon CloudWatch で関数の Duration メトリクスを確認します。

Lambda 関数の Timeout 設定を確認および編集するには、「問い合わせブロック: AWS Lambda 関数の呼び出し」を参照してください。

注: 呼び出しに 8 秒以上かかるコンタクトフローに Lambda 関数を含めるには、Amazon Connect で非同期 Lambda 関数を使用します。

複数の Lambda 関数を呼び出す場合は、関数のシーケンスの持続時間が 20 秒未満であることを確認してください

Amazon Connect では、Lambda 関数のシーケンスの持続時間が 20 秒に制限されます。

詳細については、Amazon Connect 管理者ガイドの「Amazon Connect のベストプラクティス」の「Lambda」セクションを参照してください。

関数が失敗する原因となるその他のエラーを特定して解決する

Lambda 関数が失敗する場合のトラブルシューティング方法」の手順に従います。


関連情報

Invoke an AWS Lambda function alias from Amazon Connect

AWS公式
AWS公式更新しました 1年前
コメントはありません

関連するコンテンツ