AWS Proton 參數 - AWS Proton

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

AWS Proton 參數

您可以定義並使用基礎設施中的參數做為程式碼 (IaC) 檔案,讓它們具有彈性且可重複使用。您可以參考參數 AWS Proton 命名空間中的參數名稱來讀取 IaC 檔案中的參數值。 會將參數值 AWS Proton 插入其在資源佈建期間產生的轉譯 IaC 檔案中。若要處理 AWS CloudFormation IaC 參數, AWS Proton 請使用 Jinja。若要處理 Terraform IaC 參數, AWS Proton 會產生 Terraform 參數值檔案,並依賴內建於 HCL 的參數化功能。

使用 CodeBuild 佈建, AWS Proton 產生您的程式碼可以匯入的輸入檔案。檔案是 JSON 或 HCL 檔案,取決於範本資訊清單中的屬性。如需詳細資訊,請參閱CodeBuild 佈建參數詳細資訊和範例

您可以參考環境、服務和元件 IaC 檔案中的參數,或具有下列需求的佈建程式碼:

  • 每個參數名稱的長度不超過 100 個字元。

  • 合併的參數命名空間和資源名稱的長度不超過資源名稱的字元限制。

AWS Proton 如果超過這些配額,佈建會失敗。

參數類型

下列參數類型可供您在 AWS Proton IaC 檔案中參考:

輸入參數

環境和服務執行個體可以採用您在與環境或服務範本建立關聯的結構描述檔案中定義的輸入參數。您可以在資源的 IaC 檔案中參考資源的輸入參數。元件 IaC 檔案可以參考元件所連接之服務執行個體的輸入參數。

AWS Proton 會根據您的結構描述檔案檢查輸入參數名稱,並將其與 IaC 檔案中參考的參數相符,以在資源佈建期間注入您在規格檔案中提供的輸入值。

輸出參數

您可以在任何 IaC 檔案中定義輸出。輸出可以是範本佈建之其中一個資源的名稱、ID 或 ARN,也可以是傳遞其中一個範本輸入的方式。您可以在其他資源的 IaC 檔案中參考這些輸出。

在 CloudFormation IaC 檔案中,定義 Outputs:區塊中的輸出參數。在 Terraform IaC 檔案中,使用 output陳述式定義每個輸出參數。

資源參數

AWS Proton 會自動建立 AWS Proton 資源參數。這些參數會公開 AWS Proton 資源物件的屬性。資源參數的範例為 environment.name

在 IaC 檔案中使用 AWS Proton 參數

若要讀取 IaC 檔案中的參數值,您可以參考參數命名空間中的 AWS Proton 參數名稱。對於 AWS CloudFormation IaC 檔案,您可以使用 Jinja 語法,並以一對大括號和引號括住 參數。

下表顯示每個支援範本語言的參考語法,其中包含 範例。

範本語言 語法 範例:名為 "VPC" 的環境輸入

CloudFormation

"{{ parameter-name }}"

"{{ environment.inputs.VPC }}"

Terraform

var.parameter-name

var.environment.inputs.VPC

產生的 Terraform 變數定義

注意

如果您在 IaC 檔案中使用 CloudFormation 動態參數,您必須逸出這些參數,以防止 Jinja 誤判錯誤。如需詳細資訊,請參閱故障診斷 AWS Proton

下表列出所有 AWS Proton 資源參數的命名空間名稱。每個範本檔案類型都可以使用參數命名空間的不同子集。

範本檔案 參數類型 參數名稱 描述

環境

資源

environment.name

環境名稱

input

environment.inputs.input-name

結構描述定義的環境輸入

服務

資源

environment.name

environment.account_id

環境名稱和 AWS 帳戶 ID

output

environment.outputs.output-name

環境 IaC 檔案輸出

資源

service.branch_name

service.name

service.repository_connection_arn

service.repository_id

服務名稱和程式碼儲存庫

資源

service_instance.name

服務執行個體名稱

input

service_instance.inputs.input-name

結構描述定義的服務執行個體輸入

資源

service_instance.components.default.name

連接的預設元件名稱

output

service_instance.components.default.outputs.output-name

連接的預設元件 IaC 檔案輸出

管道

資源

service_instance.environment.name

service_instance.environment.account_id

服務執行個體環境名稱和 AWS 帳戶 ID

output

service_instance.environment.outputs.output-name

服務執行個體環境 IaC 檔案輸出

input

pipeline.inputs.input-name

結構描述定義的管道輸入

資源

service.branch_name

service.name

service.repository_connection_arn

service.repository_id

服務名稱和程式碼儲存庫

input

service_instance.inputs.input-name

結構描述定義的服務執行個體輸入

集合

{% for service_instance in service_instances %}...{% endfor %}

您可以循環的服務執行個體集合

元件

資源

environment.name

environment.account_id

環境名稱和 AWS 帳戶 帳戶 ID

output

environment.outputs.output-name

環境 IaC 檔案輸出

資源

service.branch_name

service.name

service.repository_connection_arn

service.repository_id

服務名稱和程式碼儲存庫 (連接的元件)

資源

service_instance.name

服務執行個體名稱 (連接的元件)

input

service_instance.inputs.input-name

結構描述定義的服務執行個體輸入 (連接的元件)

資源

component.name

元件名稱

如需詳細資訊和範例,請參閱不同資源類型和範本語言的 IaC 範本檔案中參數的相關子主題。