我有一个带有lambda和api网关资源的AWS栈 . 大约有250个资源和cloudformation只允许一次上传200个,所以我把它分成2个模板 . 但是,当我为每个堆栈运行deploy命令时,就像这样
aws cloudformation deploy --template-file template.yml --stack-name my-stack --region us-east-1 --capabilities CAPABILITY_IAM
aws cloudformation deploy --template-file template2.yml --stack-name my-stack --region us-east-1 --capabilities CAPABILITY_IAM
第二个命令删除第一个命令部署到 my-stack
的内容 . 我想将 template2.yml
中的资源追加到 my-stack
并保留从 template.yml
部署的内容 . 有没有办法做到这一点?我希望两个模板中的资源都使用相同的api网关 endpoints .
2 回答
它们在技术上是2个堆栈,但是你只给出了1个堆栈名称 . 因此,后面的命令将覆盖基于template.yml的已部署的my-stack .
更改第二个命令以使用不同的堆栈名称,如my-stack2
您可以将此规范部署到两个不同的堆栈(不同的堆栈名称)中,除了可以将api网关规范从第一个堆栈引用到第二个堆栈之外,这是在同一个api网关中引用lambda函数的一种方法 .