こんちゃ。
CodeCommitってなに?
AWSのGitサービス。今のところus-east-1でしか使えない。
Triggersってなに?
いわゆるWebHooks
前調べたときは使えなかった機能だけど3月くらいに使えるようになったらしい
https://aws.amazon.com/jp/blogs/aws/new-notifications-for-aws-codecommit/
やったこと
- Triggerの受け口のLambdaつくる
- 権限周りコネコネする
- CodeCommitでRepositoryたてる
- CodeCommitでTrigger設定する
- CloudWatchLogs見る
Triggerの受け口のLambdaつくる
WebHooks動くのか見たいだけなのでとりあえず受け取ったイベント引数を返すだけの存在する価値のないリソースを作成。中身が見れればなんでもいい。
def lambda_handler(event, context): print event return event
権限周りコネコネする
aws cliで以下のコマンドをポチー
${Hoge}は、適宜書き換えてくださいね
aws lambda add-permission --region us-east-1 --function-name ${LambdaFunctionName} --statement-id 1 --principal codecommit.amazonaws.com --action lambda:InvokeFunction --source-arn arn:aws:codecommit:us-east-1:${Account}:${Repository} --source-account ${Account} --profile default
LambdaのRoleはこんな感じに
{ "Version": "2012-10-17", "Statement": [ { "Sid": "Stmt1462604551000", "Effect": "Allow", "Action": [ "codecommit:*" ], "Resource": [ "arn:aws:codecommit:us-east-1:${Account}:${Repository}" ] } ] }
ぶっちゃけこの辺よくわかってない
CodeCommitでRepositoryたてる
Repository名入力して適当につくってください。
完
CodeCommitでTrigger設定する
作成したRepositoryの左メニューから Triggers
-> Create Trigger
をポチッ
- Trigger name: トリガーの名前。お好きに。
- Events: 引っ掛けたいイベントを指定。以下から選ぶ。
— 全イベント
— 既存ブランチにプッシュ
— 新規ブランチ・タグの作成
— ブランチ・タグの削除 - Branch names: 反応させたいブランチを指定。devブランチだけ、みたいな使い方するんちゃうんすかね
- Send to: 今回は
AWS Lambda
を選択。 - Lambda function: さっき作ったLambdaFunctionが出てきてるはずなので、それを選ぶ
- Custom data: 他のTriggerと区別するための識別子やらを任意で入れられるよってやつ。空でヨシ。
疎通確認したいので Test Trigger
をポチー。
CloudWatchLogs見る
結果wwwwwwwwwwwww
START RequestId: 5831de43-1424-11e6-a926-b725522dd65d Version: $LATEST { 'Records': [ { 'eventId': '2b769d5c-5b57-4356-xxxx-33561479a38a', 'eventVersion': '1.0', 'eventTime': '2016-05-07T07:21:41.177+0000', 'eventTriggerName': 'SampleNotification', 'eventPartNumber': 1, 'codecommit': { 'references': [ { 'commit': '0000000000000000000000000000000000000000', 'ref': 'refs/heads/TestReference' } ] }, 'eventName': 'TriggerEventTest', 'eventTriggerConfigId': '2b769d5c-5b57-4356-8d15-33561479a38a', 'eventSourceARN': 'arn:aws:codecommit:us-east-1:XXXXXXXXXXXXXX:oreno-repository', 'userIdentityARN': 'arn:aws:iam::XXXXXXXXXXXXXX:root', 'eventSource': 'aws:codecommit', 'awsRegion': 'us-east-1', 'eventTotalParts': 1 } ] } END RequestId: 5831de43-1424-11e6-a926-b725522dd65d REPORT RequestId: 5831de43-1424-11e6-a926-b725522dd65d Duration: 0.57 ms Billed Duration: 100 ms Memory Size: 128 MB Max Memory Used: 43 MB
ちゃんと取れてる
ここまでできればあとは夢広がりますよね。では。