由于AWS已经启用了CodeCommit,CodeDeploy,......现在也可以在其他地区使用,我决定将其中一些服务从eu-west-1转移到 eu-central-1 ,离家更近。
在现有的设置中,我创建了一个lambda函数,当将提交推送到CodeCommit repo时会触发该函数,并向Slack通道发送一个很好的通知。它很有用。
但是现在,当我试图在 eu-central-1(法兰克福)中重新创建相同的功能时,我陷入困境。
我似乎无法为CodeCommit创建触发Lambda函数的触发器。我已经在其他一些地区尝试过,它运作完美。
我知道:
AWS CodeCommit does not have access to the destination or the destination does not exist.
在eu-central-1中执行CodeCommit期间是否忘记了触发是否有任何想法,或者我是否可以尝试使用其他技巧?
谢谢!
答案 0 :(得分:2)
我认为问题在于您的Lambda函数可能缺少允许CodeCommit调用您的函数的策略。如果您的新lambda函数未将CodeCommit指定为主体,则它们将无法调用您的函数。
通常,拥有此策略的最简单方法是在Lambda控制台中设置触发器。不幸的是,由于CodeCommit是在这些地区新推出的,因此尚无此快速设置。但是,您仍然可以按照此处列出的手动设置步骤进行操作:http://docs.aws.amazon.com/codecommit/latest/userguide/how-to-notify-lambda-cc.html#how-to-notify-lam-perm
TLDR:
创建一个json文件' AllowAccessfromMyDemoRepo.json':
{
"FunctionName": "MyCodeCommitFunction",
"StatementId": "1",
"Action": "lambda:InvokeFunction",
"Principal": "codecommit.amazonaws.com",
"SourceArn": "arn:aws:codecommit:eu-central-1:80398EXAMPLE:MyDemoRepo",
"SourceAccount": "80398EXAMPLE"
}
运行Lambda add-permission api:
aws lambda add-permission --cli-input-json file://AllowAccessfromMyDemoRepo.json
答案 1 :(得分:0)
法兰克福尚未公布。也许在爱尔兰试一试?