在我的项目中,我在 python 代码中创建了一个 lambda 函数,在一个方法中必须使用 boto3 调用另一个 lambda 函数。 在我的主要 lambda 中,我创建了这样的客户端:
client = boto3.client('lambda')
然后我以这种方式调用我的方法:
response = client.invoke(
FunctionName='arn:aws:lambda:eu-west-1:1577:function:test',
InvocationType='RequestResponse',
LogType='None',
Payload=json.dumps(d)
)
但是当我测试我的主 lambda 控制台时返回这个错误:
An error occurred (AccessDeniedException) when calling the Invoke operation: User
我尝试在我的环境变量中设置 AWS_ACCESS_KEY_ID 和 AWS_SECRET_ACCESS_KEY 但是当我尝试保存时,返回此错误:
Lambda was unable to configure your environment variables because the environment variables you have provided contains reserved keys that are currently not supported for modification. Reserved keys used in this request: AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY
如何使用 IAM 用户在 lambda 中设置调用?
提前致谢
最佳答案
不使用 IAM 用户,而是将 Lambda 调用权限附加到附加到父 Lambda 函数的现有 IAM 角色。
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "InvokePermission",
"Effect": "Allow",
"Action": [
"lambda:InvokeFunction"
],
"Resource": "*"
}
]
}
注意:您可以指定为资源调用的 Lambda 函数的 ARN。
关于python - AWS lambda AccessDeniedException 调用另一个 lambda 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48014551/