AWS:无法为 CodeCommit -> Lambda (eu-central-1) 创建触发器
AWS: Can't create a trigger for CodeCommit -> Lambda (eu-central-1)
由于 AWS 已经启用了 CodeCommit、CodeDeploy...现在在其他地区也可用,我决定将其中一些服务从 eu-west-1 移动到 eu-central- 1,离家比较近。
在现有设置中,我创建了一个 lambda 函数,当提交被推送到 CodeCommit 存储库时会触发该函数,并向我们的 Slack 通道发送有关它的良好通知。很好用,很好。
但是现在,当我尝试在 eu-central-1(法兰克福) 中重新创建相同的功能时,我陷入了困境。
我似乎无法为 CodeCommit 创建触发器来触发 Lambda 函数。我已经在其他一些地区试过了,它完美无缺。
我知道:
- 权利、角色、策略和权限设置正确
- 它在其他地区有效
- 创建 Lambda 函数时,触发器列表 中缺少代码提交项
- 如果我尝试以相反的方式创建触发器,从代码提交端开始,我会收到错误消息:
AWS CodeCommit does not have access to the destination or the destination does not exist.
知道在 eu-central-1 中执行 CodeCommit 期间是否忘记了触发,或者是否有任何其他技巧我可以尝试使其正常工作?
谢谢!
它在法兰克福尚不可用。也许改在爱尔兰试试?
我认为问题在于您的 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 添加权限 api:
aws lambda add-permission --cli-input-json file://AllowAccessfromMyDemoRepo.json
由于 AWS 已经启用了 CodeCommit、CodeDeploy...现在在其他地区也可用,我决定将其中一些服务从 eu-west-1 移动到 eu-central- 1,离家比较近。
在现有设置中,我创建了一个 lambda 函数,当提交被推送到 CodeCommit 存储库时会触发该函数,并向我们的 Slack 通道发送有关它的良好通知。很好用,很好。
但是现在,当我尝试在 eu-central-1(法兰克福) 中重新创建相同的功能时,我陷入了困境。
我似乎无法为 CodeCommit 创建触发器来触发 Lambda 函数。我已经在其他一些地区试过了,它完美无缺。
我知道:
- 权利、角色、策略和权限设置正确
- 它在其他地区有效
- 创建 Lambda 函数时,触发器列表 中缺少代码提交项
- 如果我尝试以相反的方式创建触发器,从代码提交端开始,我会收到错误消息:
AWS CodeCommit does not have access to the destination or the destination does not exist.
知道在 eu-central-1 中执行 CodeCommit 期间是否忘记了触发,或者是否有任何其他技巧我可以尝试使其正常工作?
谢谢!
它在法兰克福尚不可用。也许改在爱尔兰试试?
我认为问题在于您的 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 添加权限 api:
aws lambda add-permission --cli-input-json file://AllowAccessfromMyDemoRepo.json