這是 AWS CDK v2 開發人員指南。較舊的 CDK V1 已於 2022 年 6 月 1 日進入維護,並於 2023 年 6 月 1 日結束支援。
本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
cdk watch
持續監視本地 AWS CDK 項目以進行部署和 hotswaps 的更改。
此指令類似於cdk deploy
,不同之處在於它可以透過單一指令執行連續部署和 hotswaps。
此指令是的捷徑cdk deploy --watch
。
若要結束cdk watch
工作階段,請按下以中斷程序Ctrl+C
。
觀察到的檔案由cdk.json
檔案中的"watch"
設定決定。它有兩個子鍵,"include"
並且"exclude"
,接受單個字符串或字符串數組。每個項目都會被解譯為相對於cdk.json
檔案位置的路徑。兩者*
都**
被接受。
如果您使用cdk init
指令建立專案,則會在專案的cdk.json
檔案cdk watch
中規劃下列預設行為:
-
"include"
設定為"**/*"
,其中包括專案根目錄中的所有檔案和目錄。 -
"exclude"
是選擇性的,但預設已忽略的檔案和資料夾除外。這包括開頭為的檔案和目錄.
、CDK 輸出目錄以及目node_modules
錄。
要設定的最低設定watch
為"watch": {}
。
如果您的 CDK 程式碼或應用程式程式碼在部署前需要建置步驟,請使cdk watch
用cdk.json
檔案中的"build"
金鑰。
注意
這個命令被認為是實驗性的,future 可能會有突破性的變化。
的相同限制cdk deploy --hotswap
適用於cdk watch
。如需詳細資訊,請參閱 cdk deploy --hotswap
。
用量
$
cdk watch
<arguments>
<options>
引數
- CDK 堆疊邏輯識別碼
-
從您的應用程序觀看的 CDK 堆棧的邏輯 ID。
類型:字串
必要:否
選項
如需與所有 CDK CLI 指令搭配使用的全域選項清單,請參閱〈〉全域選項。
--build-exclude, -E
ARRAY
-
請勿使用指定 ID 重建資產。
此選項可以在單個命令中多次指定。
預設值:
[]
--change-set-name
STRING
-
要建立之 CloudFormation 變更集的名稱。
--concurrency
NUMBER
-
並行部署和快速交換多個堆疊,parallel 時考量堆疊間的相依性。使用此選項可加快部署速度。您仍然必須考慮 CloudFormation 和其他 AWS 帳戶 速率限制。
提供一個數字,以指定要執行的同時部署數目上限 (相依性允許)。
預設值:
1
--exclusively, -e
BOOLEAN
-
僅部署請求的堆棧,不包括依賴關係。
--force, -f
BOOLEAN
-
即使範本相同,也請務必部署堆疊。
預設值:
false
--help, -h
BOOLEAN
-
顯示指令的指
cdk watch
令參考資訊。 --hotswap
BOOLEAN
-
依預設,
cdk watch
會盡可能使用 hotswap 部署來更新您的資源。CDK CLI 將嘗試執行熱抽換部署,如果不成功,則不會退回完整 CloudFormation 部署。系統會忽略偵測到無法透過 hotswap 更新的任何變更。預設值:
true
--hotswap-fallback
BOOLEAN
-
依預設,會
cdk watch
嘗試執行 hotswap 部署,並忽略需要部署的變更。 CloudFormation 如果 hotswap 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
用此行為。如果無法建立或更新資源,CDK CLI 將保留對該點所做的變更並傳回。這可能會在您快速迭代的開發環境中有所幫助。注意
何時
false
,導致資源取代的部署永遠會失敗。您只能將此值用於更新或建立新資源的部署。預設值:
true
--toolkit-stack-name
STRING
-
現有 CDK 工具組堆疊的名稱。
此選項僅適用於使用舊式合成的 CDK 應用程式。
範例
觀看帶有邏輯 ID DevelopmentStack 的 CDK 堆棧以進行更改
$
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.json 文件Java在部署之前使用構建 CDK 項目
{ "app": "mvn -e -q exec:java", "build": "mvn package", "watch": { "include": "src/main/**", "exclude": "target/*" } }