[AWS] CloudWatch AlarmからLambdaが起動されない

  • CloudWatch AlarmからLambdaを起動したいが動作しない
  • Lambda単体のテストでは動作しているため、CloudWatch Alarmからの起動が失敗している可能性が考えられる

この場合に落とし穴になりやすいのが、CloudWatch Alarmからの操作をLambdaが受け付けるようにポリシーを設定していないという点です。具体的には以下の手順で設定を行います。

  1. AWSコンソールで設定したいLambdaを選択する
  2. Configurationタブ > PermissionsメニューからResource-based policy statementsにpermissionを追加する
  3. Edit policy statementで以下の内容で登録する
    • AWS accountを選択
    • Statement ID : 任意の値を設定する
    • Principal : lambda.alarms.cloudwatch.amazonaws.com
    • Action : lambda:InvokeFunction

以上の設定を行えば無事CloudWatch AlarmからLambdaが起動されるようになります。なお、Lambdaに関する以下のような記事も公開していますので、必要に応じてご参考にしてみてください。