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

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

組件基礎結構作為代碼文件

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

將參數與元件搭配使用

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

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

如需在元件與關聯服務 IaC 檔案中使用參數的詳細資訊,請參閱元件 CloudFormation IaC 文件參數的詳細信息和示例。」,取得的一般資訊AWS Proton參數和參數命名空間的完整引用,請參閱AWS Proton 參數

撰寫強大的 IaC 檔案

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

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

  • Proton 參數篩選— 當您參考組件輸出屬性時,可以使用參數篩選— 修飾符,驗證,過濾和格式化參數值。如需詳細資訊和範例,請參閱 參數篩選器 CloudFormation 合家歡的文件

  • 單一屬性預設— 當您參考元件的單一資源或輸出屬性時,您可以保證呈現服務範本不會失敗,方法是使用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 }}