【问题标题】:cannot create aws lamda function due to some cryptic error message由于一些神秘的错误消息,无法创建 aws lambda 函数
【发布时间】:2019-05-16 16:29:31
【问题描述】:

我正在尝试创建一个 aws lambda 函数,但是当我单击部署时,我收到以下错误消息:

更正以下错误,然后重试。 您的函数的执行角色必须由 edgelambda.amazonaws.com 服务主体承担。

我完全不知道这意味着什么。

【问题讨论】:

    标签: aws-lambda


    【解决方案1】:

    来自Lambda@Edge IAM Role documentation

    您必须创建一个可由服务代入的 IAM 角色 负责人 lambda.amazonaws.com 和 edgelambda.amazonaws.com。这 服务主体在执行您的 功能。有关更多信息,请参阅创建角色并附加 主题“作业的 AWS 托管策略”中的策略(控制台) IAM 用户指南中的“函数”。

    您在 IAM 的信任关系选项卡下添加此角色(不要添加 它在“权限”选项卡下)。

    这是一个示例角色信任策略:

    {
       "Version": "2012-10-17",
       "Statement": [
          {
             "Effect": "Allow",
             "Principal": {
                "Service": [
                   "lambda.amazonaws.com",
                   "edgelambda.amazonaws.com"
                ]
             },
             "Action": "sts:AssumeRole"
          }
       ]
    }
    

    注意:如果您通过 AWS 控制台执行此操作,那么您必须在更新 IAM 角色后刷新浏览器 致谢:来自 cmets @AJB

    【讨论】:

    • 注意 Bene:如果您通过 AWS 控制台执行此操作,那么您必须在更新 IAM 角色后刷新浏览器。即使您调整了 IAM 角色,控制台似乎以某种方式缓存了检查并继续抛出错误。
    • 感谢您的指点。我很困惑,因为 Lambda 自动创建了角色而不是信任关系。我只需要进入 IAM 控制台,找到自动生成的角色,并修改信任关系以包含“edgelambda.amazonaws.com”。
    • 啊,我明白了。你的措辞令人困惑。正如您所建议的,您要么添加角色,要么添加策略。创建 lambda 函数时会自动创建角色。您真正的意思是您正在通过添加此信任策略来编辑 lambda 函数的角色。
    • @Cerin 此角色直接从我在答案顶部链接的 AWS 文档中复制:docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/… 请注意,它显示“您在 信任关系下添加此角色 IAM 中的选项卡(不要将其添加到 Permissions 选项卡下)。"
    • 更新:是的,显然有延迟。 12 小时后,它起作用了。
    【解决方案2】:

    这个视频https://www.youtube.com/watch?v=BZzEXVkVOM8 解释了这个问题。

    问题:5:39

    还有 6:33 的决议

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-11-09
      • 1970-01-01
      • 2018-01-13
      • 2018-01-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多