如何在AWS CLI中的nodejs中创建AWS lambda函数时将策略附加到角色?附加角色时面临错误

时间:2016-09-07 23:28:48

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

我正在创建一个nodejs应用程序并将其部署为AWS上的lambda函数。我正在关注链接: http://docs.aws.amazon.com/lambda/latest/dg/with-on-demand-https-example-create-iam-role.html

我现在陷入了步骤2.2-2.3。步骤2.2使json具有需要附加到角色的策略。当我使用下面的命令(步骤2.3)创建lambda函数时:

ws lambda create-function --region us-east-1 --function-name LambdaFunctionOverHttps --zip-file fileb://LambdaFunctionOverHttps.zip --role execution-role-arn --handler LambdaFunctionOverHttps.handler --runtime nodejs4.3 

然后我收到以下错误: -

  

调用时发生错误(ValidationException)   CreateFunction操作:检测到1个验证错误:值   '执行 - 角色 - 阿尔恩'在'角色'未能满足约束:会员   必须满足正则表达式:   ARN:AWS:IAM :: \ d {12}:角色/ [A-ZA-Z_0-9 + =,@ -_ /] +

我甚至创建了文件" execution-role-arn"其中有来自Step 2.2的json。如何解决此错误并创建lambda函数?

2 个答案:

答案 0 :(得分:3)

我遇到了同样的错误,结果你必须指定角色ARN,而不是角色名称。因此,不是--role arn:aws:iam::1234567891:role/service-role/roleName,而是{{1}}。您可以通过点击角色标签中的角色名称找到角色ARN,然后在顶部找到角色ARN。

AWS确实需要修复几乎所有服务的文档。

答案 1 :(得分:0)

更新:角色需要替换为lambda函数的实际arn角色名称而不是单独的文件。这可以在您刚刚在步骤2.2中创建的角色中找到。因此,正确的方法如下:

  

aws lambda create-function    - 区域us-east-1   --function-name LambdaFunctionOverHttps
  --zip-file fileb://LambdaFunctionOverHttps.zip   --role arn:aws:iam :: 9999999999999:role / lambda-gateway-execution-role   --handler LambdaFunctionOverHttps.handler   --runtime nodejs4.3

这很好,并创建了lambda函数。请注意,我已使用aws config命令将默认配置文件指向admin。