【问题标题】:Cloudformation Globals section using CDK使用 CDK 的 Cloudformation Globals 部分
【发布时间】:2021-06-07 14:05:10
【问题描述】:

我正在使用 aws-cdk,我想按照建议声明一个 Global 部分 here

如何从 aws-cdk 打字稿代码创建 Globals 部分?

Parameters:
  Tag:
    Type: String
    Default: latest
    Description: Docker tag to build and deploy.

Globals:
  Function:
    Timeout: 5

Parameters 部分已完成。

我写了这段代码:

new CfnParameter(this, 'Tag', {
  default: 'latest',
  description: 'Docker tag to build and deploy.'
});

我得到了想要的输出。

但我在 cdk API 中找不到与 Globals 的对应项。

我应该使用什么代码来获得Globals 部分的相同输出?

【问题讨论】:

  • 能否请您详细说明为什么需要 Globals 部分?据我所知,您链接到的示例大约是AWS SAM
  • 我试图让我的问题更清楚。

标签: aws-cdk


【解决方案1】:

由于您使用的是 AWS CDK,因此我认为尝试生成 SAM 模板并不是一个好主意,尽管从技术上讲这可能是可能的using escape hatches

AWS CDK 让创建(例如,Lambda functions)变得轻而易举。恕我直言,它比使用 AWS SAM 更简单。特别是如果你有程序员背景。

由于 AWS CDK 使用常规语言,您可以使用语言默认方式来定义全局变量。例如在 TypeScript 中:

const SOME_GLOBAL_VARIABLE = 'a secret sauce';


class MyStack extends cdk.Stack {
  constructor(scope: Scope, id: string){
    new Vpc(this, 'Vpc', {
      name: SOME_GLOBAL_VARIABLE
    })    
  }
}

【讨论】:

    【解决方案2】:

    Globals 概念与 SAM 相关。就是复用SAM模板中的代码。

    请注意 CDK 不会生成 SAM 模板,而是生成纯 cloudformation 模板。 SAM 和 CDK 都生成 cloudformation 模板,并且是相当重叠的技术。

    简而言之,您不能使用 CDK 生成Globals 部分,因为 Cloudformation 中没有这样的连接。 如果您希望重用某些代码,无论如何您都可以使用您在 CDK 中使用的编程语言重用变量。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-03-05
      • 2020-06-12
      • 2020-09-29
      • 2022-10-13
      • 2020-08-29
      • 2021-07-23
      • 1970-01-01
      • 2020-09-08
      相关资源
      最近更新 更多