【发布时间】:2021-12-03 00:16:09
【问题描述】:
更新我的堆栈后运行 cdk deploy:
export function createTaskXXXX (stackScope: Construct, workflowContext: WorkflowContext) {
const lambdaXXXX = new lambda.Function(stackScope, 'XXXXFunction', {
runtime: Globals.LAMBDA_RUNTIME,
memorySize: Globals.LAMBDA_MEMORY_MAX,
code: lambda.Code.fromAsset(CDK_MODULE_ASSETS_PATH),
handler: 'xxxx-handler.handler',
timeout: Duration.minutes(Globals.LAMBDA_DURATION_2MIN),
environment: {
YYYY_ENV: (workflowContext.production) ? 'prod' : 'test',
YYYY_A_LOCATION: `s3://${workflowContext.S3ImportDataBucket}/adata-workflow/split-input/`,
YYYY_B_LOCATION: `s3://${workflowContext.S3ImportDataBucket}/bdata-workflow/split-input/` <--- added
}
})
lambdaXXXX.addToRolePolicy(new iam.PolicyStatement({
effect: Effect.ALLOW,
actions: ['s3:PutObject'],
resources: [
`arn:aws:s3:::${workflowContext.S3ImportDataBucket}/adata-workflow/split-input/*`,
`arn:aws:s3:::${workflowContext.S3ImportDataBucket}/bdata-workflow/split-input/*` <---- added
]
}))
我意识到这些更改并未在 stack.template.json 更新:
...
"Runtime": "nodejs12.x",
"Environment": {
"Variables": {
"YYYY_ENV": "test",
"YYYY_A_LOCATION": "s3://.../adata-workflow/split-input/"
}
},
"MemorySize": 3008,
"Timeout": 120
}
...
我已经清理了 cdk.out 并尝试了 deploy --force,但从未看到任何更新。
是删除堆栈并重新部署唯一的最终替代方案,还是我遗漏了什么?我认为至少 synth 应该会产生不同的结果。
(我也在本地系统中更改为 cdk 1.65.0 以匹配 package.json) 谢谢。
已编辑:我 git clone 项目,并再次执行 npm install 和 cdk synth 并最终看到更改,我不想每次都这样做,有什么可能会阻止正确的合成器生成吗?
EDITED 2:在旧项目与 synth 工作的 git 新项目之间存在差异之后,我意识到我的一些具有 .ts 的项目文件(例如 cdk.ts 我的应用程序定义)也具有具有 .ts 的副本。 js 和 .d.ts.,例如 cdk.js 和 cdk.d.ts。我是否可能错误地运行了一些编译 Typescript 的命令,我将继续调查,感谢所有答案。
【问题讨论】:
-
您确定在运行
cdk命令之前已保存.ts文件吗? -
嗨,是的,请确保保存它(尽管 Intellij 会自动保存),我将在两个文件夹之间进行比较,旧项目文件夹失败的地方和我从 git 获得的新文件夹,看看我是否可以找到更多细节,但它适用于新克隆的 git。
-
我发现了一些带有 .d.ts 和 .js 的额外文件,这可能是原因,谢谢。
标签: aws-cdk