選取您的 Cookie 偏好設定

我們使用提供自身網站和服務所需的基本 Cookie 和類似工具。我們使用效能 Cookie 收集匿名統計資料,以便了解客戶如何使用我們的網站並進行改進。基本 Cookie 無法停用,但可以按一下「自訂」或「拒絕」以拒絕效能 Cookie。

如果您同意,AWS 與經核准的第三方也會使用 Cookie 提供實用的網站功能、記住您的偏好設定,並顯示相關內容,包括相關廣告。若要接受或拒絕所有非必要 Cookie,請按一下「接受」或「拒絕」。若要進行更詳細的選擇,請按一下「自訂」。

cdk deploy

焦點模式
cdk deploy - AWS Cloud Development Kit (AWS CDK) v2

這是 AWS CDK v2 開發人員指南。較舊的 CDK v1 已於 2022 年 6 月 1 日進入維護,並於 2023 年 6 月 1 日結束支援。

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

這是 AWS CDK v2 開發人員指南。較舊的 CDK v1 已於 2022 年 6 月 1 日進入維護,並於 2023 年 6 月 1 日結束支援。

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

在您的 AWS 環境中部署一或多個 AWS CDK 堆疊。

在部署期間,CDK CLI會輸出進度指標,類似於可從 AWS CloudFormation 主控台觀察到的項目。

如果 AWS 環境未引導,則只會在 51,200 個位元組以下,使用沒有資產和合成範本的堆疊成功部署。

用量

$ cdk deploy <arguments> <options>

引數

CDK 堆疊 ID

要部署之應用程式中 CDK 堆疊的建構 ID。

類型:字串

必要:否

選項

如需適用於所有 CDK CLI命令的全域選項清單,請參閱 全域選項

--all BOOLEAN

在 CDK 應用程式中部署所有堆疊。

預設值false

--asset-parallelism BOOLEAN

指定是否平行建置和發佈資產。

--asset-prebuild BOOLEAN

指定是否要在部署第一個堆疊之前建置所有資產。此選項適用於失敗的Docker組建。

預設值true

--build-exclude, -E ARRAY

請勿使用指定的 ID 重建資產。

此選項可在單一命令中指定多次。

預設值[]

--change-set-name STRING

要建立 AWS CloudFormation 的變更集名稱。

此選項與 不相容--method='direct'

--concurrency NUMBER

平行部署多個堆疊,同時考慮堆疊間相依性。使用此選項可加速部署。您仍然必須將 AWS CloudFormation 和其他 AWS 帳戶 速率限制納入考量。

提供數字以指定要同時執行的部署數目上限 (依存性允許)。

預設值1

--exclusively, -e BOOLEAN

僅部署請求的堆疊,不包含相依性。

--force, -f BOOLEAN

當您部署 以更新現有堆疊時,CDK CLI會將已部署堆疊的範本和標籤與即將部署的堆疊進行比較。如果未偵測到任何變更,CDK CLI會略過部署。

若要覆寫此行為並一律部署堆疊,即使未偵測到任何變更,請使用此選項。

預設值false

--help, -h BOOLEAN

顯示命令的cdk deploy命令參考資訊。

--hotswap BOOLEAN

熱插拔部署可加快開發速度。如果可能,此選項會嘗試執行更快速的熱插拔部署。例如,如果您在 CDK 應用程式中修改 Lambda 函數的程式碼,CDK CLI將透過服務 APIs直接更新資源,而不是執行 CloudFormation 部署。

如果 CDK CLI偵測到不支援熱插拔的變更,則會忽略這些變更,並顯示訊息。如果您偏好在回復時執行完整的 CloudFormation 部署,請--hotswap-fallback改用 。

CDK CLI會使用您目前的 AWS 登入資料來執行 API 呼叫。即使@aws-cdk/core:newStyleStackSynthesis功能旗標設定為 ,也不會擔任引導堆疊中的角色true。這些角色沒有直接更新 AWS 資源的必要許可,無需使用 CloudFormation。因此,請確定您的登入資料與您執行熱插拔部署的 AWS 帳戶 堆疊相同,而且它們具有更新資源所需的 IAM 許可。

下列變更目前支援熱插拔:

  • Lambda 函數的程式碼資產 (包括Docker映像和內嵌程式碼)、標籤變更和組態變更 (僅支援描述和環境變數)。

  • Lambda 版本和別名變更。

  • AWS Step Functions 狀態機器的定義變更。

  • Amazon ECS 服務的容器資產變更。

  • Amazon S3 儲存貯體部署的網站資產變更。

  • AWS CodeBuild 專案的來源和環境變更。

  • AWS AppSync 解析程式和函數的 VTL 映射範本變更。

  • APIs結構描述變更 AWS AppSync GraphQL。

在熱插拔部署中,支援使用特定 CloudFormation 內部函數。其中包含:

  • Ref

  • Fn::GetAtt – 僅部分支援。如需支援的資源和屬性,請參閱此實作

  • Fn::ImportValue

  • Fn::Join

  • Fn::Select

  • Fn::Split

  • Fn::Sub

此選項也與巢狀堆疊相容。

注意
  • 此選項刻意在 CloudFormation 堆疊中引入偏離,以加速部署。因此,請僅將其用於開發目的。請勿將此選項用於您的生產部署。

  • 此選項被視為實驗性,未來可能會有重大變更。

  • 某些參數的預設值可能與 hotswap 參數不同。例如,Amazon ECS 服務的運作狀態百分比下限目前將設定為 0。如果發生這種情況,請相應地檢閱來源。

預設值false

--hotswap-fallback BOOLEAN

此選項類似於 --hotswap。如果偵測到需要它的變更,則 --hotswap-fallback會回復為執行完整的 CloudFormation 部署。

如需有關此選項的詳細資訊,請參閱 --hotswap

預設值false

--ignore-no-stacks BOOLEAN

即使您的 CDK 應用程式不包含任何堆疊,也請執行部署。

此選項在下列案例中很有用:您可能有一個應用程式具有多個環境,例如 devprod。開始開發時,您的 prod 應用程式可能沒有任何資源,或者資源可能會遭到註解。這將導致部署錯誤,並顯示訊息指出應用程式沒有堆疊。使用 --ignore-no-stacks 略過此錯誤。

預設值false

--import-existing-resources BOOLEAN

從 匯入現有、未受管 AWS CloudFormation 的資源 AWS 帳戶。

當您使用此選項時,來自您合成 AWS CloudFormation 範本的資源,其自訂名稱與相同帳戶中現有的未受管資源相同,將會匯入您的堆疊。

您可以使用此選項將現有資源匯入新的或現有的堆疊。

您可以在相同的cdk deploy命令中匯入現有資源並部署新資源。

若要進一步了解自訂名稱,請參閱AWS CloudFormation 《 使用者指南》中的名稱類型

若要進一步了解 ImportExistingResources CloudFormation 參數,請參閱AWS CloudFormation 使用 ChangeSets 的新參數簡化資源匯入

如需使用此選項的詳細資訊,請參閱 aws-cdk-cli GitHub儲存庫中的匯入現有資源

--logs BOOLEAN

在標準輸出 (stdout) 中顯示來自所選堆疊中所有資源的所有事件的 Amazon CloudWatch 日誌。

此選項僅與 相容--watch

預設值true

--method, -m STRING

設定 方法來執行部署。

  • change-set – 預設方法。CDK CLI會使用將部署的變更建立 CloudFormation 變更集,然後執行部署。

  • direct – 請勿建立變更集。反之,請立即套用變更。這通常比建立變更集更快,但您會遺失進度資訊。

  • prepare-change-set – 建立變更集,但不執行部署。如果您有會檢查變更集的外部工具,或如果您有變更集的核准程序,這非常有用。

有效值change-setdirectprepare-change-set

預設值change-set

--notification-arns ARRAY

CloudFormation 將針對堆疊相關事件通知的 Amazon SNS 主題 ARNs。

--outputs-file, -O STRING

要從部署寫入堆疊輸出的路徑。

部署之後,堆疊輸出會以 JSON 格式寫入指定的輸出檔案。

您可以在專案的 cdk.json 檔案或本機開發機器~/.cdk.json的 中設定此選項:

{ "app": "npx ts-node bin/myproject.ts", // ... "outputsFile": "outputs.json" }

如果部署多個堆疊,輸出會寫入相同的輸出檔案,由代表堆疊名稱的索引鍵組織。

--parameters ARRAY

在部署期間將其他參數傳遞至 CloudFormation。

此選項接受以下格式的陣列:STACK:KEY=VALUE

  • STACK – 要與參數建立關聯的堆疊名稱。

  • KEY – 堆疊中的 參數名稱。

  • VALUE – 部署時傳遞的值。

如果未提供堆疊名稱,或*提供 做為堆疊名稱,參數將套用至正在部署的所有堆疊。如果堆疊未使用 參數,部署將會失敗。

參數不會傳播至巢狀堆疊。若要將參數傳遞至巢狀堆疊,請使用 NestedStack 建構。

預設值{}

--previous-parameters BOOLEAN

使用現有參數的先前值。

此選項設定為 時false,您必須指定每個部署的所有參數。

預設值true

--progress STRING

設定 CDK CLI顯示部署進度的方式。

  • bar – 將堆疊部署事件顯示為進度列,其中資源的事件目前正在部署。

  • events – 提供完整的歷史記錄,包括所有 CloudFormation 事件。

您也可以在專案的 cdk.json 檔案或本機開發機器~/.cdk.json的 中設定此選項:

{ "progress": "events" }

有效值barevents

預設值bar

--require-approval STRING

指定哪些安全敏感變更需要手動核准。

  • any-change – 任何堆疊變更都需要手動核准。

  • broadening – 如果變更涉及許可或安全群組規則的擴大,則需要手動核准。

  • never – 不需要核准。

有效值any-changebroadeningnever

預設值broadening

--rollback | --no-rollback, -R

在部署期間,如果資源無法建立或更新,部署將在 CDK CLI傳回之前回復至最新穩定狀態。在該時間點之前所做的所有變更都會復原。已建立的資源將被刪除,而所做的更新將會復原。

指定 --no-rollback以關閉此行為。如果資源無法建立或更新,CDK CLI會保留到該時間點所做的變更並傳回。這將使您的部署處於失敗、暫停狀態。從這裡,您可以更新程式碼,並再次嘗試部署。這在您快速反覆運算的開發環境中可能很有幫助。

如果使用 執行的部署--no-rollback失敗,且您決定要轉返部署,您可以使用 cdk rollback命令。如需詳細資訊,請參閱cdk rollback

注意

使用 --no-rollback時,導致資源取代的部署一律會失敗。您只能將此選項值用於更新或建立新資源的部署。

預設值--rollback

--toolkit-stack-name STRING

現有 CDK Toolkit 堆疊的名稱。

根據預設, 會將名為 cdk bootstrap 的堆疊部署CDKToolkit到指定的 AWS 環境中。使用此選項為您的引導堆疊提供不同的名稱。

CDK CLI使用此值來驗證您的引導堆疊版本。

--watch BOOLEAN

持續觀察 CDK 專案檔案,並在偵測到變更時自動部署指定的堆疊。

根據預設--hotswap,此選項表示 。

此選項具有同等的 CDK CLI命令。如需詳細資訊,請參閱cdk watch

範例

部署名為 MyStackName 的堆疊

$ cdk deploy MyStackName --app='node bin/main.js'

在應用程式中部署多個堆疊

使用 cdk list 列出您的堆疊:

$ cdk list CdkHelloWorldStack CdkStack2 CdkStack3

若要部署所有堆疊,請使用 --all選項:

$ cdk deploy --all

若要選擇要部署的堆疊,請提供堆疊名稱做為引數:

$ cdk deploy CdkHelloWorldStack CdkStack3

部署管道堆疊

使用 cdk list 將堆疊名稱顯示為路徑,顯示它們在管道階層中的位置:

$ cdk list PipelineStack PiplelineStack/Prod PipelineStack/Prod/MyService

使用 --all選項或萬用字元*來部署所有堆疊。如果您有上述的堆疊階層, --all *只會比對頂層的堆疊。若要符合階層中的所有堆疊,請使用 **

您可以結合這些模式。下列 會部署Prod階段中的所有堆疊:

$ cdk deploy PipelineStack/Prod/**

在部署時傳遞參數

在 CDK 堆疊中定義參數。以下是為 Amazon SNS TopicNameParam 主題建立名為 參數的範例:

new sns.Topic(this, 'TopicParameter', { topicName: new cdk.CfnParameter(this, 'TopicNameParam').value.toString() });

若要提供 的參數值parameterized,請執行下列動作:

$ cdk deploy --parameters "MyStackName:TopicNameParam=parameterized"

您可以使用 --force選項覆寫參數值。以下是從先前部署覆寫主題名稱的範例:

$ cdk deploy --parameters "MyStackName:TopicNameParam=parameterName" --force

部署後將堆疊輸出寫入檔案

在 CDK 堆疊檔案中定義輸出。以下是為函數 ARN 建立輸出的範例:

const fn = new lambda.Function(this, "fn", { handler: "index.handler", code: lambda.Code.fromInline(`exports.handler = \${handler.toString()}`), runtime: lambda.Runtime.NODEJS_LATEST }); new cdk.CfnOutput(this, 'FunctionArn', { value: fn.functionArn, });

部署堆疊並將輸出寫入 outputs.json

$ cdk deploy --outputs-file outputs.json

以下是部署outputs.json後 的範例:

{ "MyStack": { "FunctionArn": "arn:aws:lambda:us-east-1:123456789012:function:MyStack-fn5FF616E3-G632ITHSP5HK" } }

在此範例中,金鑰FunctionArn對應至CfnOutput執行個體的邏輯 ID。

以下是outputs.json部署多個堆疊後部署 的範例:

{ "MyStack": { "FunctionArn": "arn:aws:lambda:us-east-1:123456789012:function:MyStack-fn5FF616E3-G632ITHSP5HK" }, "AnotherStack": { "VPCId": "vpc-z0mg270fee16693f" } }

修改部署方法

若要在不使用變更集的情況下更快速地部署,請使用 --method='direct'

$ cdk deploy --method='direct'

若要建立變更集但不部署,請使用 --method='prepare-change-set'。根據預設,cdk-deploy-change-set將會建立名為 的變更集。如果具有此名稱的先前變更集存在,則會將其覆寫。如果未偵測到任何變更,仍會建立空白的變更集。

您也可以為變更集命名。以下是範例:

$ cdk deploy --method='prepare-change-set' --change-set-name='MyChangeSetName'

在本頁面

下一個主題:

cdk destroy

上一個主題:

cdk context
隱私權網站條款Cookie 偏好設定
© 2025, Amazon Web Services, Inc.或其附屬公司。保留所有權利。