当 cdk 中有两个 lambda 时部署 -> 开发周期的最佳实践
Best practice to deploy -> development cycle when there are two lambda in cdk
我在 cdk 文件中有两个 lambda。
用这个源码cdk deploy
做第一次部署,然后
每次 cdk deploy
都会部署新的两个 lambda 代码。
但是可以只部署一个 lambda 吗?
这种情况的最佳做法是什么?
const msgLambda = new lambda.DockerImageFunction(this, "firstLambda", {
functionName: `sg-mg-lm`,
code: lambda.DockerImageCode.fromImageAsset(
"first",
{
"file": "Dockerfile.first"
}
),
environment:{
}
});
const wkLambda = new lambda.DockerImageFunction(this, "secondLambda", {
functionName: `sg-wk-lm`,
code: lambda.DockerImageCode.fromImageAsset(
"second",
{
"file": "Dockerfile.second"
}
),
environment:{
}
});
cdk deploy
在堆栈级别运行,而不是在资源级别运行。如果这两个 lambda 函数有自己的生命周期,那么你应该每个都有一个堆栈。
如documentation所述:
Many CDK Toolkit commands (for example, cdk deploy) work on stacks
defined in your app. If your app contains only one stack, the CDK
Toolkit assumes you mean that one if you don't specify a stack
explicitly
有两个堆栈,比方说 Stack1
和 Stack2
,然后您可以选择要部署的堆栈:
$ cdk deploy Stack1
或
$ cdk deploy Stack2
甚至同时进行:
$ cdk deploy Stack1 Stack2
我在 cdk 文件中有两个 lambda。
用这个源码cdk deploy
做第一次部署,然后
每次 cdk deploy
都会部署新的两个 lambda 代码。
但是可以只部署一个 lambda 吗?
这种情况的最佳做法是什么?
const msgLambda = new lambda.DockerImageFunction(this, "firstLambda", {
functionName: `sg-mg-lm`,
code: lambda.DockerImageCode.fromImageAsset(
"first",
{
"file": "Dockerfile.first"
}
),
environment:{
}
});
const wkLambda = new lambda.DockerImageFunction(this, "secondLambda", {
functionName: `sg-wk-lm`,
code: lambda.DockerImageCode.fromImageAsset(
"second",
{
"file": "Dockerfile.second"
}
),
environment:{
}
});
cdk deploy
在堆栈级别运行,而不是在资源级别运行。如果这两个 lambda 函数有自己的生命周期,那么你应该每个都有一个堆栈。
如documentation所述:
Many CDK Toolkit commands (for example, cdk deploy) work on stacks defined in your app. If your app contains only one stack, the CDK Toolkit assumes you mean that one if you don't specify a stack explicitly
有两个堆栈,比方说 Stack1
和 Stack2
,然后您可以选择要部署的堆栈:
$ cdk deploy Stack1
或
$ cdk deploy Stack2
甚至同时进行:
$ cdk deploy Stack1 Stack2