CDK 应用程序能否发现正在调用哪个命令?
Can a CDK application discover which command is being invoked?
在我的 CDK 应用程序中,我想在 CDK 销毁期间使用不同的逻辑来验证某些上下文参数。有没有办法让 CDK 应用程序确定正在调用哪个命令?
遗憾的是,目前似乎没有实现该目标的好方法。
至少在 TypeScript CDK 应用程序的情况下,将生成一个子进程,该子进程 呈现 CDK 对象图。但是,该子进程不会收到您传递给 CDK 的原始参数。
有一种方法可以通过访问 process.ppid
来解决这个问题,这将为您提供父进程 PID。然后,在基于 Linux 的系统上,您可以执行 readFileSync(`/proc/${process.ppid}/cmdline`)
来访问父进程命令行参数。
但是,这种方法非常脆弱。
如果您确实需要根据执行的命令更改代码,我建议您设置一个环境变量。例如在你的 package.json
scripts
部分
"cdk:synth": "CDK_COMMAND=synth cdk synth"
在我的 CDK 应用程序中,我想在 CDK 销毁期间使用不同的逻辑来验证某些上下文参数。有没有办法让 CDK 应用程序确定正在调用哪个命令?
遗憾的是,目前似乎没有实现该目标的好方法。
至少在 TypeScript CDK 应用程序的情况下,将生成一个子进程,该子进程 呈现 CDK 对象图。但是,该子进程不会收到您传递给 CDK 的原始参数。
有一种方法可以通过访问 process.ppid
来解决这个问题,这将为您提供父进程 PID。然后,在基于 Linux 的系统上,您可以执行 readFileSync(`/proc/${process.ppid}/cmdline`)
来访问父进程命令行参数。
但是,这种方法非常脆弱。
如果您确实需要根据执行的命令更改代码,我建议您设置一个环境变量。例如在你的 package.json
scripts
部分
"cdk:synth": "CDK_COMMAND=synth cdk synth"