LoginSignup
1
1

More than 3 years have passed since last update.

CodeCommitのLambdaトリガーを作るときはパーミッションをお忘れなく

Posted at

CodeCommitのコンソールからLambdaトリガーを作るのと、LambdaのコンソールからCodeCommitのトリガーを作るのは結果が違いますよ、という話です。

Lambdaが実行されない?

Lambdaをあらかじめ作成しておいて、CodeCommitのコンソールからトリガーを作成。Lambdaのコンソールからトリガーを作るのと結果は一緒でしょーと思っていたが、Lambdaが実行されず。

CodeCommitのコンソールに下記の記載があるので、これだよなーとコンソール上を探し回っても設定できそうなところは見つからず。

caution_lambda.png

パーミッションを手動で追加する

AWS CLIを使ってパーミッションを追加する必要があります。
パーミッション用のjsonファイルを作成します。

permission.json
{
    "FunctionName": "SampleLambda",
    "StatementId": "1",
    "Action": "lambda:InvokeFunction",
    "Principal": "codecommit.amazonaws.com",
    "SourceArn": "arn:aws:codecommit:ap-northeast-1:xxxxxxxx:sample_repo",
    "SourceAccount": "xxxxxxxx"
}

次を実行すると、Lambdaのコンソール上のトリガーにCodeCommitが表示されます。

$ aws lambda add-permission --cli-input-json file://xxx/xxx/permission.json

追加したパーミッションを確認するには

$ aws lambda get-policy --function-name SampleLambda

追加したパーミッションを削除するには

$ aws lambda remove-permission --function-name SampleLambda --statement-id 1

まとめ

AWS CLIを使ったりして作成する場合にはパーミッションの追加が必要です。Lambdaのコンソールから追加する場合は気にする必要はないです。

参考

1
1
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
1
1