由于某些神秘的错误消息,无法创建aws lamda函数

dag*_*da1 15 aws-lambda

我正在尝试创建aws lambda函数,但是当我单击“部署”时,出现以下错误消息:

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

在此处输入图片说明

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

Mar*_*k B 18

来自Lambda @ Edge IAM角色文档

您必须创建一个IAM角色,该角色可以由服务主体lambda.amazonaws.com和edgelambda.amazonaws.com承担。服务主体在执行您的功能时将承担此角色。有关更多信息,请参阅IAM用户指南中的主题“ AWS受管的作业功能策略”中的创建角色和附加策略(控制台)。

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

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

{
   "Version": "2012-10-17",
   "Statement": [
      {
         "Effect": "Allow",
         "Principal": {
            "Service": [
               "lambda.amazonaws.com",
               "edgelambda.amazonaws.com"
            ]
         },
         "Action": "sts:AssumeRole"
      }
   ]
}
Run Code Online (Sandbox Code Playgroud)

  • 注意事项:如果您通过AWS控制台执行此操作,则必须在更新IAM角色后刷新浏览器。控制台似乎以某种方式缓存了检查,即使您已经调整了IAM角色,也会不断抛出错误。 (9认同)
  • @Cerin这个角色是直接从我在答案顶部链接的AWS文档中复制的:https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/lambda-edge-permissions.html 请注意,它说“您可以在 IAM 的 **信任关系** 选项卡下添加此角色(不要将其添加在 **权限** 选项卡下)。” (3认同)
  • 感谢您的指导。我很困惑,因为Lambda是自动创建角色而不是信任关系。我只需要进入IAM控制台,找到自动生成的角色,然后修改信任关系以包括“ edgelambda.amazonaws.com”。 (2认同)
  • 啊,我现在明白了。你的措辞令人困惑。正如您所建议的,您要么添加角色,要么添加策略。创建 lambda 函数时会自动创建该角色。您真正的意思是您正在通过添加此信任策略来编辑 lambda 函数的角色。 (2认同)
  • 更新:是的,显然有延迟。12小时后,就见效了。 (2认同)

Els*_*han 16

  1. 只需转到您的 lambda 函数,Click the configuration tab-> 然后the permission tab(从左侧菜单)->Click on your role name
  2. 然后它将导航到相关的 IAM 角色页面。
  3. Click Trust Relationships标签
  4. Click on the Edit policy按钮并添加@Mark提到的内容。