n3pal
n3pal

Reputation: 5

AWS: Can't create a trigger for CodeCommit -> Lambda (eu-central-1)

Since AWS has enabled to have CodeCommit, CodeDeploy,... now available also in other regions, I have decided to move some of those services from eu-west-1 to eu-central-1, closer to home.

In the existing setup, I have created a lambda function which gets triggered when a commit is pushed to a CodeCommit repo and sends a nice notification about it to our Slack channel. It works, great.

But now, when I've tried to recreate the same functionality in eu-central-1 (Frankfurt), I got stuck.

I can't seem to create a trigger for CodeCommit to trigger a Lambda function. I've tried in some other regions and it works flawlessly.

I know that:

Any idea if triggering has been forgotten during the implementation of CodeCommit in eu-central-1 or are there any other tricks I can try to get this working?

Thank you!

Upvotes: 0

Views: 1318

Answers (2)

David Jackson
David Jackson

Reputation: 611

I believe the issue is that your Lambda function may be missing a policy which allows CodeCommit to invoke your function. If your new lambda function does not specify CodeCommit as a principal, they will not be able to invoke your function.

Usually, the easiest way to have this policy is by setting up your trigger in the Lambda console. Unfortunately, because CodeCommit is newly launched in these regions, this quick setup is not yet available. However, you can still follow the manual setup steps outlined here: http://docs.aws.amazon.com/codecommit/latest/userguide/how-to-notify-lambda-cc.html#how-to-notify-lam-perm

TLDR:

Create a json file 'AllowAccessfromMyDemoRepo.json':

{
    "FunctionName": "MyCodeCommitFunction", 
    "StatementId": "1", 
    "Action": "lambda:InvokeFunction", 
    "Principal": "codecommit.amazonaws.com", 
    "SourceArn": "arn:aws:codecommit:eu-central-1:80398EXAMPLE:MyDemoRepo", 
    "SourceAccount": "80398EXAMPLE"
}

Run Lambda add-permission api:

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

Upvotes: 2

Sébastien Coste
Sébastien Coste

Reputation: 309

It's simply not yet available at Frankfurt. maybe give a try in Ireland instead?

Upvotes: 0

Related Questions