スキップしてコンテンツを表示

SQSからLambdaをキックする際にLambdaのエイリアスを指定できる?

0

SQSからLambdaをキックする際にLambdaのエイリアスを指定できる?

2回答
0

以下の回答を見る限りだとSQSの設定画面からLambdaトリガーを設定する際にエイリアスのARNを入力すれば可能なようです。(私の環境で少し試してみます)
https://repost.aws/ja/questions/QU4KTsa0Z_RnGP-nElqeFNFg/is-it-possible-that-sqs-triggers-to-a-lambda-function-alias
https://speakerdeck.com/codmoninc/sqs-plus-lambda-release-method-with-cdk-and-lambda-alias

エキスパート
回答済み 10ヶ月前
  • 私の環境で試してみた結果、エイリアスで設定したLambdaが実行できました。 a
    テストに使用したコードは以下です。 $LATESTの場合はprint("Alias2")としてCloudWatch Logsに出力される内容がAlias1になっていることが確認できました。

    import json
    
    def lambda_handler(event, context):
        print(event)
        print("Alias1")
    
    

    トリガーを設定する際は以下のようにLambdaのエイリアスが含まれたARNを指定してください。 a

0

SQSからLambdaをトリガーする際に、Lambdaのエイリアスを直接指定することはできません。SQSとLambdaの統合は、通常、Lambda関数のメインバージョン($LATEST)またはパブリッシュされた特定のバージョンに対して設定されます。

エイリアスを使用したい場合は、以下のような代替アプローチを検討する必要があります:

  1. Lambda関数のバージョンを公開し、そのバージョンに対してエイリアスを作成します。

  2. SQSキューをトリガーとして設定する際に、エイリアスが指すバージョンを指定します。

  3. エイリアスを更新して別のバージョンを指すようにすることで、SQSが呼び出すLambda関数のバージョンを変更できます。

ただし、この方法でもSQSは直接エイリアスを指定するわけではなく、エイリアスが指すバージョンを使用することになります。SQSとLambdaの統合を設定する際は、同じAWSリージョン内にあることを確認し、必要な権限(例:sqs:ReceiveMessage、sqs:DeleteMessage、sqs:GetQueueAttributes)がLambda実行ロールに付与されていることを確認してください。
Sources
Configuring an Amazon SQS queue to trigger an AWS Lambda function - Amazon Simple Queue Service

回答済み 10ヶ月前

ログインしていません。 ログイン 回答を投稿する。

優れた回答とは、質問に明確に答え、建設的なフィードバックを提供し、質問者の専門分野におけるスキルの向上を促すものです。

関連するコンテンツ