Typescript 使用AWS CDK将现有角色附加到AWS Lambda
我想将现有角色附加到使用CDK创建的lambda 我正在做下面的工作Typescript 使用AWS CDK将现有角色附加到AWS Lambda,typescript,amazon-web-services,aws-lambda,aws-cdk,Typescript,Amazon Web Services,Aws Lambda,Aws Cdk,我想将现有角色附加到使用CDK创建的lambda 我正在做下面的工作 const role1 = iam.Role.fromRoleArn(this, 'Role', 'ARN', { mutable: true, }); const lambda1 = new lambda.Function(this, 'lambda1', { runtime: lambda.Runtime.PYTHON_3_7, code: lambda.Co
const role1 = iam.Role.fromRoleArn(this, 'Role', 'ARN', {
mutable: true,
});
const lambda1 = new lambda.Function(this, 'lambda1', {
runtime: lambda.Runtime.PYTHON_3_7,
code: lambda.Code.asset('lambda/lambda1_function'),
handler: 'lambda_function.lambda_handler',
role:role1,
reservedConcurrentExecutions: 1
});
运行cdk deploy时获取以下异常
The role defined for the function cannot be assumed by Lambda. (Service: AWSLambdaInternal; Status Code: 400; Error Code: InvalidParameterValueException; Request ID:
如果有人能帮忙解决这个问题
PS:我正在使用打字脚本CDK@1.27.0根据
角色
参数文档:
Lambda执行角色
这是功能在执行时将承担的角色。它控制函数将具有的权限该角色必须可由“lambda.amazonaws.com”服务主体承担
这可以通过向lambda服务授予权限来实现:
role1.grant(新的iam.ServicePrincipal(“lambda.amazonaws.com”))
根据评论,问题在于角色中的信任策略不正确
通过将
lambda.amazonaws.com
添加到中解决了此问题。所述角色的信任策略是什么?@Marcin It有一个通用的批处理操作服务条目,我没有看到任何与lamda相关的内容。我应该在其中添加lambda服务吗?如果信任策略不允许iam::AssumeRole
添加lambda服务,则您的函数无法使用该角色。谢谢,这解决了issueNo问题。如果你不介意的话,我会添加一个答案供将来参考。