我有一個非常簡單的AWS CloudFormation模板,只是爲了創造一個SQS資源,主要部分是這樣的:重置SQS MessageRetentionPeriod財產沒有工作
"Resources" : {
"Queue" : {
"Type" : "AWS::SQS::Queue",
"Properties" : {
"QueueName" : "QueueA"
}
}
}
我這個部署(通過創建新堆棧),好吧,如official document所示,默認保留期限爲4天,我檢查過,它設置爲4天,目前爲止這麼好。
然後我做了更改更改保留5分鐘,這樣的代碼如下:
"Resources" : {
"Queue" : {
"Type" : "AWS::SQS::Queue",
"Properties" : {
"QueueName" : "QueueA",
"MessageRetentionPeriod": 300
}
}
}
這是非常簡單的,我得到這個部署(堆棧更新),和預期一致,保持設置到5分鐘。
然後我想重置爲默認,所以我刪除了這條線:
"MessageRetentionPeriod": 300
我部署它(堆棧再次更新),但它沒有工作,我等了1小時爲DOC表示可能需要15分鐘才能生效,但事實並非如此。
我的猜測是,如果我沒有明確聲明SQS屬性的值,CloudFormation可以看到這個改變,但是它在幕後調用的API不會生效,是不是?
您正在更新隊列而不是創建新的隊列?在這種情況下,它可能根本沒有改變這個價值。如果您使用模板創建新隊列,它將使用默認值。 –
@JohnRotenstein我創建了它,然後所有的操作都在更新。抱歉讓你困惑,我會更新說明。 – kevinjom
您確定您已經從AWS CloudFormation控制檯上的**更新堆棧**按鈕更新了堆棧嗎?因爲資源屬性的更改由CloudFormation讀取,因此它必須將MessageRetentionPeriod更新爲默認值。 –