組件基礎結構作為代碼文 - AWS Proton

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

組件基礎結構作為代碼文

組件基礎結構代碼(IaC)文件類似於其他AWS Proton資源。在這裡了解一些特定於組件的詳細信息。若要取得有關為的編寫 IaC 檔案的完整資訊AWS Proton,請參閱編寫範本和建立套裝軟體 AWS Proton

搭配元件使用參數

AWS Proton參數命名空間包括一些參數,服務 IaC 文件可以引用以獲取關聯組件的名稱和輸出。命名空間還包括組件 IaC 文件可以參考的參數,以從組件相關聯的環境,服務和服務實例中獲取輸入,輸出和資源值。

組件沒有自己的輸入-它從連接到的服務實例獲取其輸入。組件也可以讀取環境輸出。

如需有關在元件和相關服務 IaC 檔案中使用參數的更多資訊,請參閱組件 CloudFormation IaC 文件參數的詳細信息和示例。如需有關AWS Proton參數的一般資訊和參數命名空間的完整參考,請參閱AWS Proton 參數

撰寫強大的 IaC 檔案

身為管理員,當您建立服務範本版本時,您可以決定是否要允許從範本版本建立的服務執行個體附加元件。請參閱 API supportedComponentSources資料中 CreateServiceTemplateVersionAPI 動作的參數。AWS Proton不過,對於任何 future 的服務執行個體,建立執行個體的人員決定是否要將元件附加至該執行個體,而且 (如果是直接定義的元件) 編寫元件 IaC 通常是不同的人員,也就是使用您的服務範本的開發人員。因此,您無法保證元件會附加至服務執行個體。您也無法保證特定元件輸出名稱是否存在,或是這些輸出值的有效性和安全性。

AWS Proton而 Jinja 語法可協助您解決這些問題,並透過下列方式撰寫強大的服務範本,這些範本不會失敗地呈現:

  • AWS Proton參數篩選器 — 當您參照元件輸出屬性時,您可以使用參數篩選器 — 驗證、篩選和格式化參數值的修飾符。如需詳細資訊和範例,請參閱 CloudFormation IaC 檔案的參數篩選器

  • 單一屬性預設值 — 當您參考組件的單一資源或輸出屬性時,您可以保證使用default篩選器呈現服務範本不會失敗,不論是否為預設值。如果組件或您引用的特定輸出參數不存在,則會改為呈現默認值(或空字符串,如果尚未指定默認值),並且渲染成功。如需詳細資訊,請參閱 為不存在的參照提供預設值

    範例:

    • {{ service_instance.components.default.name | default("") }}

    • {{ service_instance.components.default.outputs.my-output | default("17") }}

    注意

    請勿將指定直接定義之元件的命名空間.default部分與篩選器混淆,default篩選器會在參考的屬性不存在時提供預設值。

  • 整個物件參考 — 當您參考整個組件或組件輸出的集合時,會AWS Proton傳回空白物件{},並因此保證呈現服務範本不會失敗。因此您不一定要使用任何篩選條件。請務必在可以取得空物件的前後關聯中建立參考,或使用{{ if .. }}條件來測試空白物件。

    範例:

    • {{ service_instance.components.default }}

    • {{ service_instance.components.default.outputs }}