调试 TypeScript AWS CDK 应用程序

Debugging TypeScript AWS CDK application

是否可以调试 AWS CDK TypeScript 应用程序?如果需要例如检查哪些值是特定变量?

比如在Java就是一个断点。 但是,如果我有以下情况,我如何检查流程是否按预期方式进行: if (someVariable) {...} 在 TypeScript 代码中?我如何检查条件是否为真?

DevopsStart 的人创造了您正在寻找的东西。

CDK Debugging in VSCode.

请注意,在调试您的代码时,CDK tokens 仍将表示为 "tokens" 而不是实际值。

来自文档:

Tokens represent values that can only be resolved at a later time in the lifecycle of an app. For example, the name of an Amazon S3 bucket that you define in your AWS CDK app is only allocated by AWS CloudFormation when you deploy your app. If you print the bucket.bucketName attribute, which is a string, you see it contains something like the following :

${TOKEN[Bucket.Name.1234]}

More about CDK tokens.

您可以简单地 运行 以其编写的语言调试 AWS CDK 应用程序。这在 Jetbrains IDE 或 VSCode 中都很容易实现。只需在调试模式下执行 index.tsapp.py

唯一的问题是 AWS CDK 中的上下文变量不可用。我在调试时手动取消注释这些。

对于打字稿,您执行 Javascript 文件,它应该可以帮助您调试以在打字稿中进行更改

来自项目顶级文件夹:

$ mkdir .vscode/
$ touch .vscode/launch.json

然后修改launch.json为:

{
    "version": "0.2.0",
    "configurations": [


        {
        "type": "pwa-node",
        "request": "launch",
        "name": "Launch Program",
        "skipFiles": [
            "<node_internals>/**"
        ],
        "runtimeArgs": [
            "-r", "./node_modules/ts-node/register/transpile-only"
        ],
        "args": [
            "${workspaceFolder}/bin/cdk.ts"
        ]
        }
    ]
}

备注:

  1. 确保 ${workspaceFolder}/bin/cdk.ts 与您的应用程序在 bin 文件夹中的入口点匹配。
  2. 以前的版本使用“类型”:“节点”。就我而言,我发现它只适用于“pwa-node”。
  3. 设置断点并照常调试。