Mid*_*kar 29 python boto amazon-web-services aws-sdk aws-lambda
当我尝试使用create-function命令创建lambda函数时,我收到错误"Lambda不能为函数定义角色".
aws lambda create-function
--region us-west-2
--function-name HelloPython
--zip-file fileb://hello_python.zip
--role arn:aws:iam :: my-acc-account-id:role/default
--handler hello_python.my_handler
--runtime python2.7
--timeout 15
--memory-size 512
Emi*_*ile 57
我收到错误"Lambda没有为函数定义的角色"因为我没有更新角色"Trust Relationship"配置文件.我没有像评论中的链接答案那样遇到超时问题.
上述答案中的注释指出您需要添加以下内容.
我的结局如下.
{
"Version": "2012-10-17",
"Statement": [
{
<your other rules>
},
{
"Effect": "Allow",
"Principal": {
"Service": "lambda.amazonaws.com"
},
"Action": "sts:AssumeRole"
}
]
}
Run Code Online (Sandbox Code Playgroud)
FOR*_*FOR 31
我也遇到了这个错误.尚未得到确定的答案(但)但我认为我会传递一些可能有助于您和/或其他任何人解决此问题的提示.
A)如果您通过将您的帐户ID和角色名称放在一起来构建角色ARN,我认为帐户ID必须没有任何破折号
B)如果你刚刚创建了角色,并且可能添加了策略,那么角色似乎会在一个(小)时间窗口中触发此错误.在角色的最后一次操作和创建函数调用之间休息5或6秒允许我绕过这个问题(当然,时间可能是变化的,所以这最好是一种解决方法).
ale*_*ird 16
对我来说,问题是我的角色名称不完整.我设置
--role arn:aws:iam::000000000000:role/MyRoleName
Run Code Online (Sandbox Code Playgroud)
什么时候应该
--role arn:aws:iam::000000000000:role/service-role/MyRoleName
Run Code Online (Sandbox Code Playgroud)
(当然我的aws id实际上不是000000000000)
我通过跑步发现了这个
aws iam get-role --role-name MyRoleName
Run Code Online (Sandbox Code Playgroud)
并查看"Arn"结果集中的属性.
我刚刚学习使用 AWS CLI 并遇到了这个问题。
我正在使用一系列 PowerShell 脚本来部署整个 AWS 架构。我的createRole.ps1脚本包含:
aws iam create-role `
--role-name $roleName `
--assume-role-policy-document file://myRoleTrustPolicy.json
Run Code Online (Sandbox Code Playgroud)
文件myRoleTrustPolicy.json包含:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"Service": [
"elasticmapreduce.amazonaws.com",
"datapipeline.amazonaws.com",
"lambda.amazonaws.com"
]
},
"Action": "sts:AssumeRole"
}
]
}
Run Code Online (Sandbox Code Playgroud)
导致问题的是服务列表中缺少的“lambda.amazonaws.com”行。
一旦我解决了这个问题, aws lambda create-function的调用就非常有效。
aws lambda create-function `
--function-name $fn `
--runtime java8 `
--role $currentRoleARN `
--handler "handleRequest" `
--memory-size 128 `
--zip-file $jarFile
Run Code Online (Sandbox Code Playgroud)