【发布时间】:2022-03-08 04:44:54
【问题描述】:
我正在使用 CDK 创建一个 lambda,一个新版本的 lambda,并将“live”别名指向最新版本的 lambda,就像这样
const func = new lambda.Function(this, 'lambdaName', {
// Other properties
description: `Generated on: ${new Date().toISOString()}`,
});
const version = func.addVersion(new Date().toISOString());
const alias = new lambda.Alias(this, 'lambdaName-alias', {
aliasName: 'live',
version: version,
});
现在,我想向别名 live 添加基于资源的权限,而不仅仅是主 lambda 函数。
我认为这会起作用,但它根本不会创建任何基于资源的权限:
alias.addPermission('CrossAccountAccessId', {
action: 'lambda:InvokeFunction',
principal: new ArnPrincipal('ACOUNT_NUMBER_XXX')
});
如何使用 AWS CDK 为别名添加权限?
我提到了这个基于资源的别名权限:https://docs.aws.amazon.com/lambda/latest/dg/configuration-aliases.html#versioning-permissions-alias
对于 CDK 文档,我阅读了以下内容:https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_lambda.Alias.html#addwbrpermissionid-permission
我认为这可能与 AWS CDK 中的一个错误有关,即在 lambda 版本上添加基于资源的策略失败,如此处所述:AWS CDK: Resource Policies are not being granted for Lambda Version 但我不确定别名是否也有与版本相同的问题。
【问题讨论】:
-
我做到了,但他们都没有解决我面临的问题。我已经添加了我自己对帮助我解决问题的问题的答案。
标签: amazon-web-services aws-lambda amazon-iam aws-cdk