この記事の対象となる方
- AWS Amplifyを使用中
- S3のCreateObjectやSQS等に反応するLambda(function)を作成し、デプロイしている
- カスタムリソース(
amplify add custom
)を追加して、S3のCreateObjectのトリガやSQSを定義し、上記のLambdaと関連付けている - デフォルトのリトライ回数は2だが、要件によって回数を変えたい (多分「0にする」を最も要求されそう)
- ↑↑ この「再試行」です
どうすればリトライ回数を変更できるか
結論
CloudFormation([functionName]-cloudformation-template.json
)に加筆するしかありません。
-
Resources
に以下を追加します -
下記は
MaximumRetryAttempts
に0を設定してリトライ回数を0にしています"AsyncConfig": { "Type": "AWS::Lambda::EventInvokeConfig", "Properties": { "FunctionName": { "Ref": "LambdaFunction" }, "MaximumEventAgeInSeconds": 21600, "MaximumRetryAttempts": 0, "Qualifier": "$LATEST" } }
-
push後
注意
amplify configure
で設定しているIAMユーザーの権限によっては、デプロイに失敗します。
この定義をpushする際に必要となるのは、lambda:PutFunctionEventInvokeConfig
です。適宜IAMのインラインポリシーとして追加してください。
需要がない?
色々な情報を漁りましたが、解決法は見つからなかったので、CloudFormationのドキュメントを参照して試行錯誤しました。
意外とそんな要件ないのかも・・・。
それでは皆様、良いAmplifyライフを。