LoginSignup
0
0

【AWS Amplify】functionのリトライ回数を変更したい

Posted at

この記事の対象となる方

  • AWS Amplifyを使用中
  • S3のCreateObjectやSQS等に反応するLambda(function)を作成し、デプロイしている
  • カスタムリソース(amplify add custom)を追加して、S3のCreateObjectのトリガやSQSを定義し、上記のLambdaと関連付けている
  • デフォルトのリトライ回数は2だが、要件によって回数を変えたい (多分「0にする」を最も要求されそう)
    image.png
    • ↑↑ この「再試行」です

どうすればリトライ回数を変更できるか

結論

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後

    image.png
    やったね🎉🎉🎉

注意

amplify configureで設定しているIAMユーザーの権限によっては、デプロイに失敗します。

この定義をpushする際に必要となるのは、lambda:PutFunctionEventInvokeConfigです。適宜IAMのインラインポリシーとして追加してください。

需要がない?

色々な情報を漁りましたが、解決法は見つからなかったので、CloudFormationのドキュメントを参照して試行錯誤しました。

意外とそんな要件ないのかも・・・。

それでは皆様、良いAmplifyライフを。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0