- push之后会立即触发pipeline的source并在30s内成功
- 随后触发prod,失败了,因为check changeset status错误(可能因为当时有一个failed的changeset?)
- 重新部署prod能成功,但并没有创建任何changeset,是我手动创建了一个有效的changeset(之后不管手动还是自动创建都无效了)。
- 如果删掉了所有的changeset,再push代码触发pipeline,发现get changeset status报错,查看changeset发现创建了一个failed的changeset,原因是
The submitted information didn't contain changes. Submit different information to create a change set.
- https://repost.aws/zh-Hans/knowledge-center/cloudformation-change-set-errors 指出,当在更新堆栈操作期间使用相同的堆栈模板时 or 不修改资源属性而只尝试修改参数值或堆栈描述时,就会发生这种情况。CloudFormation 不将其视为更改,因此更改集创建失败。
- 如果重新部署后,进行push触发pipeline,则prod会失败,get changeset status报错,错误原因似乎是changeset
{"status":"FAILED","executionStatus":"UNAVAILABLE"}
,而failed的原因同上。 - 可能是因为只检测template yaml的参数变化(也就是lambda函数),如果这个文件没变,push上去就会error。修改了一个参数后就成功了。