這是 AWS CDK v2 開發人員指南。較舊的 CDK v1 已於 2022 年 6 月 1 日進入維護,並於 2023 年 6 月 1 日結束支援。
本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
cdk watch
持續監看本機 AWS CDK 專案是否有變更,以執行部署和熱交換。
此命令類似於 cdk deploy
,但可以透過單一命令執行連續部署和熱換片。
此命令是 的捷徑cdk deploy --watch
。
若要結束cdk watch
工作階段,請按 以中斷程序Ctrl+C
。
觀察到的檔案取決於檔案中"watch"
的設定cdk.json
。它有兩個子索引鍵 "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 部署。偵測到無法透過 hotswap 更新的任何變更都會遭到忽略。預設值:
true
--hotswap-fallback
BOOLEAN
-
根據預設, 會
cdk watch
嘗試執行熱插拔部署,並忽略需要 CloudFormation 部署的變更。如果熱插拔部署失敗,請提供--hotswap-fallback
以復原並執行完整的 CloudFormation 部署。 --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 Toolkit 堆疊的名稱。
根據預設, 會將名為
cdk bootstrap
的堆疊部署CDKToolkit
到指定的 AWS 環境中。使用此選項為您的引導堆疊提供不同的名稱。CDK CLI使用此值來驗證您的引導堆疊版本。
範例
使用邏輯 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/*" } }