使用 CDK 的 Cloudformation 全局部分

Cloudformation Globals section using CDK

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

如何从 aws-cdk typescript 代码创建 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概念与SAM有关。就是复用SAM模板中的代码。

请注意CDK 不生成SAM 模板,而是生成纯cloudformation 模板。 SAM和CDK都生成cloudformation模板,属于比较重叠的技术。

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

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

A​​WS 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
    })    
  }
}