debugging 调试TypeScript AWS CDK应用程序

azpvetkf  于 2022-12-23  发布在  TypeScript
关注(0)|答案(4)|浏览(306)

是否可以调试AWS CDK TypeScript应用程序?如果需要,例如检查特定变量中的值?
例如,在Java中是一个断点。但我如何才能检查流在预期的方式,如果我有:TypeScript代码中的if (someVariable) {...}?如何检查条件是否为真?

5ktev3wc

5ktev3wc1#

您可以调试AWS CDK应用程序,只需在编写它的语言中运行它。这在Jetbrains IDE或VSCode中都很容易做到。只需在调试模式下执行index.tsapp.py
唯一的问题是AWS CDK中的上下文变量不可用。我在调试时手动取消注解这些变量。
对于Typescript,您可以执行Javascript文件,它应该有助于您调试以在Typescript中进行更改

b4qexyjb

b4qexyjb2#

DevopsStart的家伙们创造了你要找的东西。
CDK Debugging in VSCode.
请注意,在调试代码CDK tokens时,它仍将表示为"token",而不是实际值。

    • 来自文档:**

令牌表示只能在应用生命周期的稍后时间解析的值。例如,您在AWS CDK应用中定义的Amazon S3存储桶的名称仅在您部署应用时由AWS CloudFormation分配。如果打印bucket. bucketName属性(字符串),您会看到它包含类似以下内容:
${TOKEN[Bucket.Name.1234]}
More about CDK tokens.

ppcbkaq5

ppcbkaq53#

从项目顶层文件夹:

$ 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文件夹中应用程序的入口点匹配。
1.此命令的早期版本使用"type":"node".在我的例子中,我发现它只对"pwa-node"起作用。
1.输入断点并像往常一样进行调试。

knsnq2tg

knsnq2tg4#

要使用上下文变量accountregion在vscode中调试类型脚本cdk应用bin/<app>.ts,请添加到.vscode/launch.json

{
    "type": "node",
    "request": "launch",
    "name": "deploy",
    "skipFiles": [
        "<node_internals>/**"
    ],
    "runtimeArgs": [
        "-r", "./node_modules/ts-node/register/transpile-only"
    ],
    "args": [
        "${workspaceFolder}/node_modules/aws-cdk/bin/cdk.js",
        "deploy",
        "-c", "account=<id>",
        "-c", "region=<region>",
    ]
}

bin/<app>.ts的内容如下所示,验证region是否包含上下文值<id>

import { App } from 'aws-cdk-lib';
const app: App = new App()
let region: string = app.node.tryGetContext('region')

相关问题