- 新しい順
- 投票が多い順
- コメントが多い順
以下の回答を見る限りだと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
SQSからLambdaをトリガーする際に、Lambdaのエイリアスを直接指定することはできません。SQSとLambdaの統合は、通常、Lambda関数のメインバージョン($LATEST)またはパブリッシュされた特定のバージョンに対して設定されます。
エイリアスを使用したい場合は、以下のような代替アプローチを検討する必要があります:
-
Lambda関数のバージョンを公開し、そのバージョンに対してエイリアスを作成します。
-
SQSキューをトリガーとして設定する際に、エイリアスが指すバージョンを指定します。
-
エイリアスを更新して別のバージョンを指すようにすることで、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ヶ月前

私の環境で試してみた結果、エイリアスで設定したLambdaが実行できました。
テストに使用したコードは以下です。 $LATESTの場合はprint("Alias2")としてCloudWatch Logsに出力される内容がAlias1になっていることが確認できました。
トリガーを設定する際は以下のようにLambdaのエイリアスが含まれたARNを指定してください。