【问题标题】:Is there a way to force a Lambda Custom Resource name in aws-cdk created by the logRetention parameter?有没有办法在由 logRetention 参数创建的 aws-cdk 中强制使用 Lambda 自定义资源名称?
【发布时间】:2020-12-06 08:39:51
【问题描述】:

问题

随着时间的推移,CDK 变得越来越完整和强大,我们现在正在将我们的无服务器代码替换为 CDK。

在开发过程中,我们注意到要使用 CDK 处理 lambda 的保留,它正在创建一个自定义资源来处理它。

代码片段

const lambdaFn = new lambda.Function(this, 'FuncName', {
      functionName: `lambda-${props?.appCode}-FuncName-${props?.stage}`,
      runtime: lambda.Runtime.NODEJS_12_X,
      code: lambda.Code.asset('lambdas/FuncName'),
      handler: 'index.handler',
      logRetention: 14,
      role: lambdaRole,
      timeout: cdk.Duration.seconds(60),
    });

在我们的例子中,我们只允许 lambda 在我们的 DEVOPS 链中具有特定的名称模式。这意味着要成功部署我们的堆栈,我们必须向我们的“部署者角色”添加以下权限:

"arn:aws:lambda:\*:${AWS::AccountId}:function:stack-${VAR}-*"

我不知道是否有其他用例 CDK 正在创建自定义 lambda,因此我们留下了“stack-${VAR}-*”以防止我们遇到此问题。到今天为止,我们还没有找到其他方法来管理它。

最终,两者都在生成 CloudFormation 堆栈。之前,我们通过使用原生属性直接在 logGroup 中配置日志保留来处理它。 (参见https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-loggroup.html) 我相信这种实现是有原因的,或者我们遗漏了一些东西。

有没有办法配置自定义资源的名称或计划实施?或者更好的是,在需要自定义 lambda 时考虑保留选项?

提前感谢您的见解!

环境

CDK CLI 版本:CDK 版本:1.57.0(构建 2ccfc50) 操作系统:全部 语言:打字稿

【问题讨论】:

标签: aws-cdk


【解决方案1】:

你可以看这里:How to get logical ID of resource with CDK?

resource.node.default_child.overrideLogicalId("AnyStringHere")

【讨论】:

猜你喜欢
  • 2020-02-17
  • 1970-01-01
  • 2020-10-06
  • 2016-10-17
  • 2019-10-02
  • 1970-01-01
  • 2020-01-06
  • 2021-01-05
  • 2022-12-23
相关资源
最近更新 更多