【问题标题】:AWS: Can't create a trigger for CodeCommit -> Lambda (eu-central-1)AWS:无法为 CodeCommit -> Lambda (eu-central-1) 创建触发器
【发布时间】:2017-05-30 06:15:30
【问题描述】:

由于 AWS 已启用 CodeCommit、CodeDeploy 等,现在其他区域也可以使用,我决定将其中一些服务从 eu-west-1 移至 eu-central-1,离家近。

在现有设置中,我创建了一个 lambda 函数,该函数在提交被推送到 CodeCommit 存储库时触发,并向我们的 Slack 频道发送关于它的通知。很好用,很好。

但是现在,当我尝试在 eu-central-1 (Frankfurt) 中重新创建相同的功能时,我陷入了困境。

我似乎无法为 CodeCommit 创建触发器以触发 Lambda 函数。我在其他一些地区试过了,效果很好。

我知道:

  • 权限、角色、策略和权限设置正确
  • 它适用于其他地区
  • 创建 Lambda 函数时,触发器列表中缺少代码提交项
  • 如果我尝试以相反的方式创建触发器,从代码提交端开始,我会收到错误: AWS CodeCommit does not have access to the destination or the destination does not exist.

是否知道在 eu-central-1 中实施 CodeCommit 期间是否忘记了触发,或者我可以尝试使用其他技巧来使其正常工作吗?

谢谢!

【问题讨论】:

    标签: amazon-web-services aws-lambda aws-codecommit


    【解决方案1】:

    我认为问题在于您的 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
    

    【讨论】:

    • 太棒了,它成功了!非常感谢你。同时我通过 CodeCommit -> SNS -> Lambda 暂时解决了它 :) 现在很乐意恢复它:)
    【解决方案2】:

    它在法兰克福还没有。也许在爱尔兰尝试一下?

    【讨论】:

    • 明确一点,Code Commit 在法兰克福可用。只是似乎忘记了触发功能。我在爱尔兰有它,但我想在法兰克福有它,因为部署链 Code Commit -> Code Pipeline 等...只能与它的本地 EC2 实例一起使用,我想让它更接近我们的客户群。
    • 值得一提的是,现在可以从 Lambda 控制台(默认配置权限)获得触发器设置,因此希望这又是一次简单的设置体验。
    猜你喜欢
    • 2018-02-16
    • 1970-01-01
    • 1970-01-01
    • 2014-12-23
    • 1970-01-01
    • 2022-08-08
    • 1970-01-01
    • 2015-08-11
    • 1970-01-01
    相关资源
    最近更新 更多