假設同一個 AWS 賬戶將同時托管 云部署Dev和UAT云部署,那么實體化和隔離這兩個偽環境的最佳方法是什么?
我說“偽”是因為 cdkEnvironment只接受帳戶 ID 和區域。沒有其他分離機制。
我可以通過將變數傳遞給由建構式傳入的構造Construct函式呼叫,將前綴手動傳遞到資源名稱中Stack
main(args) {
app App = ...
Stack(app, "stackid", bucketPrefix = args[0])
但我問是否有一種 cdk/aws 本機方式可以實作這一點。
預先感謝您的考慮和回復。
uj5u.com熱心網友回復:
雖然CDK 最佳實踐是 Dev 和 UAT 的獨立環境,但當然可以在同一個帳戶/區域對中部署多個應用程式副本*。
- 每個應用程式的堆疊都需要不同的構造 id - 例如
DevMyStack和UatMyStack. 子構造識別符號繼承其父級的范圍,因此不需要將前綴向下傳遞到構造層次結構中。該檔案有一個在應用程式中復制堆疊的示例,該示例具有與您的情況相同的約束。 - 這假設您遵循讓 CDK/CloudFormation 設定資源名稱的最佳實踐。無論如何,Dev 和 UAT 構建都是短暫的,所以這應該不是問題。如果您喜歡漂亮的名稱,請考慮僅為生產設定顯式資源名稱:
bucketName: props.isProduction ? "my-explicit-bucket-name" : undefined
- 添加標簽以更好地控制運營和成本。一次性標記所有堆疊資源很容易:
cdk.Tags.of(DevMyStack).add('build', 'dev');
* 您的應用不應包含每個賬戶/地區創建一次的“單一”資源。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/521718.html
