Pri*_*ate 9 aws-cloudformation aws-lambda
我有一个自定义资源,用于从 API 网关获取 API 密钥并将其作为标头发送到 Cloudfront。当我创建一个堆栈时,我custom:resource
正在触发,因为它是第一次创建逻辑 ID。但是,当我更新堆栈(即更改 API 密钥名称)时,类型的 API 密钥资源AWS::ApiGateway::ApiKey
将创建一个新的逻辑 ID,同时又创建一个新的 API 密钥,此时我custom:resource
没有调用,因为它具有相同的逻辑 ID因此,我的 Cloudfront 拥有旧的 API 密钥而不是新的。
custom:resource
每次我的堆栈发生更新时,有没有办法调用我的?作为一种解决方法,每当我更新堆栈中的资源时,我都会更改Logical Id
ofcustom:resource
以触发它。但这并不困难,因为 logicalId 被共享为许多资源的引用。
顺便说一句,我的自定义资源附加到 lambda 函数。我什至尝试更改Version
字段并尝试向属性字段(即堆栈名称、参数等)添加值,但它仍然没有调用。
{
"AWSTemplateFormatVersion" : "2010-09-09",
"Resources" : {
"MyFrontEndTest" : {
"Type": "Custom::PingTester",
"Version" : "1.0", -->Even changed the version to 2.0
"Properties" : {
"ServiceToken": "arn:aws:lambda:us-east-1:*****",
"InputparameterName" : "MYvalue" -->Added this field
}
}
}
Run Code Online (Sandbox Code Playgroud)
谢谢任何帮助表示赞赏
小智 4
在堆栈更新时让自定义资源执行 lambda 的一种技巧是将自定义资源配置为将所有堆栈参数传递给 lambda 函数。如果堆栈更新时任何参数发生变化,自定义资源将发生变化并触发 lambda。只需忽略 lambda 事件数据中不需要的键即可。当仅更新模板时,这对场景没有任何作用。
归档时间: |
|
查看次数: |
3244 次 |
最近记录: |