当前我可以运行Glue PySpark job
,但是可以从lambda function
调用此工作的Glue
吗?使用我的PySpark
胶水工作中的以下代码,我正在调用lambda函数。
lambda_client = boto3.client('lambda', region_name='us-west-2')
response = lambda_client.invoke(FunctionName='test-lambda')
错误:
botocore.exceptions.ClientError:调用Invoke操作时发生错误(AccessDeniedException):用户:arn:aws:sts :: 208244724522:assumed-role / AWSGlueServiceRoleDefault / GlueJobRunnerSession无权执行:资源上的lambda:InvokeFunction :arn:aws:lambda:us-west-2:208244724522:function:hw-test
但是我在我的Glue iam角色中添加了适当的lambda角色,但仍然出现错误。是否需要添加任何特定角色?
谢谢。
答案 0 :(得分:1)
要调用AWS Lambda,您可以使用以下policy:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "AllowToExampleFunction",
"Effect": "Allow",
"Action": "lambda:InvokeFunction",
"Resource": "arn:aws:lambda:<region>:<123456789012>:function:<example_function>"
}
]
}
您的角色不适合Lambda调用,因为
AWSLambdaBasicExecutionRole –仅授予Amazon CloudWatch Logs操作写入日志的权限。您可以使用此政策 如果您的Lambda函数不访问任何其他AWS资源,除了 写日志。
AWSLambdaVPCAccessExecutionRole –为Amazon Elastic Compute Cloud(Amazon EC2)操作授予权限以管理弹性网络 接口(ENI)。
请参阅有关这些角色的文档here。