這是 AWS CDK v2 開發人員指南。較舊的 CDK v1 已於 2022 年 6 月 1 日進入維護,並於 2023 年 6 月 1 日結束支援。
本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
cdk watch
持續監控本機 AWS CDK 專案的變更,以執行部署和熱換片。
此命令類似於 cdk deploy
,但可以透過單一命令執行連續部署和熱換片。
此命令是 的捷徑cdk deploy --watch
。
若要結束cdk watch
工作階段,請按 以中斷程序Ctrl+C
。
觀察到的檔案取決於cdk.json
檔案中"watch"
的設定。它有兩個子索引鍵,"include"
以及"exclude"
接受單一字串或字串陣列的 。每個項目都會解譯為相對於cdk.json
檔案位置的路徑。**
接受 *
和 兩者。
如果您使用 cdk init
命令建立專案,則會cdk watch
在專案的 cdk.json
檔案中設定下列預設行為:
-
"include"
設定為"**/*"
,其中包含專案根中的所有檔案和目錄。 -
"exclude"
為選用,但預設已忽略的檔案和資料夾除外。這包括以.
、CDK輸出目錄和node_modules
目錄開頭的檔案和目錄。
要設定的最小設定watch
為 "watch": {}
。
如果您的CDK程式碼或應用程式程式碼在部署之前需要建置步驟, cdk watch
會使用 cdk.json
檔案中的 "build"
金鑰。
注意
此命令被視為實驗性,未來可能會有重大變更。
相同的 限制cdk deploy --hotswap
適用於 cdk watch
。如需詳細資訊,請參閱cdk deploy --hotswap
。
用量
$
cdk watch
<arguments>
<options>
引數
- CDK 堆疊 ID
-
要觀看之應用程式CDK堆疊的建構 ID。
類型:字串
必要:否
選項
如需適用於所有 的全域選項清單 CDK CLI 命令,請參閱 全域選項。
--build-exclude, -E
ARRAY
-
請勿以指定的 ID 重建資產。
此選項可在單一命令中指定多次。
預設值:
[]
--change-set-name
STRING
-
要建立的變更 CloudFormation 集名稱。
--concurrency
NUMBER
-
並行部署和熱交換多個堆疊,同時考慮堆疊間相依性。使用此選項可加速部署。您仍然必須考慮 CloudFormation 和其他 AWS 帳戶 速率限制。
提供數字以指定要同時執行的部署數量上限 (依存性允許)。
預設值:
1
--exclusively, -e
BOOLEAN
-
僅部署請求的堆疊,不包括相依性。
--force, -f
BOOLEAN
-
即使範本相同,也一律部署堆疊。
預設值:
false
--help, -h
BOOLEAN
-
顯示 命令的
cdk watch
命令參考資訊。 --hotswap
BOOLEAN
-
根據預設, 會盡可能
cdk watch
使用 Hotswap 部署來更新您的資源。的 CDK CLI 會嘗試執行熱插拔部署,如果失敗,則不會回復到完整 CloudFormation 部署。偵測到無法透過熱插拔更新的任何變更都會遭到忽略。預設值:
true
--hotswap-fallback
BOOLEAN
-
根據預設, 會
cdk watch
嘗試執行熱交換部署,並忽略需要 CloudFormation 部署的變更。如果熱插拔 CloudFormation 部署失敗,則提供--hotswap-fallback
倒退並執行完整部署。 --logs
BOOLEAN
-
根據預設,
cdk watch
會監控應用程式中的所有 CloudWatch 日誌群組,並將日誌事件本機串流至stdout
。預設值:
true
--progress
STRING
-
設定 的方式 CDK CLI 會顯示部署進度。
-
bar
– 將堆疊部署事件顯示為進度列,其中資源的事件目前正在部署。 -
events
– 提供完整歷史記錄,包括所有 CloudFormation 事件。
您也可以在專案的
cdk.json
檔案中或本機開發機器~/.cdk.json
上的 設定此選項:{ "progress": "events" }
有效值:
bar
、events
預設值:
bar
-
--rollback
BOOLEAN
-
在部署期間,如果資源無法建立或更新,部署將回復到 CDK CLI 傳回。在該時間點之前所做的所有變更都會復原。已建立的資源將被刪除,而已進行更新將復原。
使用
--no-rollback
或-R
停用此行為。如果資源無法建立或更新, CDKCLI 將保留到該時間點所做的變更並傳回。這對於您快速迭代的開發環境可能很有幫助。注意
當 時
false
,造成資源取代的部署一律會失敗。您只能將此值用於更新或建立新資源的部署。預設值:
true
--toolkit-stack-name
STRING
-
現有 CDK Toolkit 堆疊的名稱。
根據預設, 會將名為
cdk bootstrap
的堆疊部署CDKToolkit
到指定的 AWS 環境中。使用此選項為您的引導堆疊提供不同的名稱。的 CDK CLI 使用此值來驗證您的引導堆疊版本。
範例
觀看具有邏輯 ID 的CDK堆疊 DevelopmentStack 以進行變更
$
cdk watch DevelopmentStack
Detected change to 'lambda-code/index.js' (type: change). Triggering 'cdk deploy' DevelopmentStack: deploying... ✅ DevelopmentStack
為要包含和排除哪些項目設定 cdk.json 檔案,使其不被監控變更
{ "app": "mvn -e -q compile exec:java", "watch": { "include": "src/main/**", "exclude": "target/*" } }
使用 建置CDK專案 Java 透過設定 cdk.json 檔案在部署之前
{ "app": "mvn -e -q exec:java", "build": "mvn package", "watch": { "include": "src/main/**", "exclude": "target/*" } }