![](/img/trans.png)
[英]Is there a way to connect a new AWS ApiGateway to existing lambda funtion using AWS-CDK? (TypeScript)
[英]Attach an existing role to AWS Lambda with 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.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:我正在使用 typescript CDK@1.27.0
根据评论,问题是角色中的信任策略不正确。
该问题已通过将lambda.amazonaws.com
添加到trust policy得到解决。
根据role
参数文档:
Lambda 执行角色。
这是 function 在执行时将承担的角色。 它控制 function 将拥有的权限。 角色必须由“lambda.amazonaws.com”服务主体承担。
这可以通过授予 lambda 服务权限来实现:
role1.grant(new iam.ServicePrincipal("lambda.amazonaws.com"))
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.