python - AWS lambda AccessDeniedException 调用另一个 lambda 函数

标签 python amazon-web-services aws-lambda boto3 amazon-iam

在我的项目中,我在 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/

相关文章:

Python:检测视频容器中使用的编解码器

python - 将 python 函数列表异步应用于单个参数

python - 使用 Oracle 的 AWS Python Lambda - OID 生成失败

amazon-web-services - AWS : Alarming on Metric Math alternative

python - ssl.SSLZeroReturnError : TLS/SSL connection has been closed (EOF) (_ssl. c:661)

Python 套接字模块 : How to change the local port on the client side?

amazon-ec2 - 我如何知道 Amazon EC2 操作何时完成?

mysql - AWS Lightsail Bitnami LAMP - 安装第二个 Wordpress 模块不起作用

amazon-web-services - AWS ELB SSL 返回 "The private key did not match the public key provided"

aws-lambda - 为什么无服务器要求您对 dynamodb 设置非常具体?