CodeCommitのLambdaトリガーを作るときはパーミッションをお忘れなく
CodeCommitのコンソールからLambdaトリガーを作るのと、LambdaのコンソールからCodeCommitのトリガーを作るのは結果が違いますよ、という話です。
Lambdaが実行されない?
Lambdaをあらかじめ作成しておいて、CodeCommitのコンソールからトリガーを作成。Lambdaのコンソールからトリガーを作るのと結果は一緒でしょーと思っていたが、Lambdaが実行されず。
CodeCommitのコンソールに下記の記載があるので、これだよなーとコンソール上を探し回っても設定できそうなところは見つからず。
パーミッションを手動で追加する
AWS CLIを使ってパーミッションを追加する必要があります。
パーミッション用の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のコンソールから追加する場合は気にする必要はないです。
参考
Author And Source
この問題について(CodeCommitのLambdaトリガーを作るときはパーミッションをお忘れなく), 我々は、より多くの情報をここで見つけました https://qiita.com/shikazuki/items/3aa96c132f151da4b708著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .