我正在创建一个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函数?
答案 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。