翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
Component Infrastructure as Code ファイル
コンポーネントInfrastructure as Code (IaC) ファイルは、他の AWS Proton リソースのファイルと似ています。コンポーネント固有の詳細についてはこちらをご覧ください。の IaC ファイルの作成の詳細については AWS Proton、「」を参照してくださいのテンプレートの作成とバンドルの作成 AWS Proton。
コンポーネントでのパラメータの使用
AWS Proton パラメータ名前空間には、関連するコンポーネントの名前と出力を取得するためにサービス IaC ファイルが参照できるいくつかのパラメータが含まれています。名前空間には、コンポーネントが関連付けられている環境、サービス、およびサービスインスタンスから入力、出力、およびリソース値を取得するためにコンポーネント IaC ファイルが参照できるパラメーターもあります。
コンポーネントに専用の入力はありません。アタッチ先のサービスインスタンスから入力を取得します。コンポーネントは環境出力も読み取ることができます。
コンポーネントと関連サービスの IaC ファイルにおけるパラメータの使用方法については、コンポーネント CloudFormation IaC ファイルパラメータの詳細と例 を参照してください。 AWS Proton パラメータの一般的な情報とパラメータ名前空間の完全なリファレンスについては、「」を参照してくださいAWS Proton パラメータ。
堅牢な IaC ファイルのオーサリング
あなたは、サービステンプレートバージョンの作成時に、そのテンプレートバージョンから作成したサービスインスタンスへのコンポーネントのアタッチを許可するかどうかを決定できます。AWS Proton API リファレンスの CreateServiceTemplateVersion API アクションの supportedComponentSources パラメータを参照してください。ただし、将来のサービスインスタンスでは、インスタンスを作成し、コンポーネントをそのインスタンスにアタッチするかどうかを決定し、(直接定義のコンポーネントの場合) コンポーネント IaC をオーサリングするユーザーは、通常、別の人、すなわち、あなたのサービステンプレートを使用する開発者です。したがって、コンポーネントがサービスインスタンスにアタッチされることを開発者は保証できません。また、特定のコンポーネント出力名の存在や、これらの出力の値の有効性と安全性を保証することもできません。
AWS Proton と Jinja 構文は、これらの問題を回避し、次の方法で障害なくレンダリングされる堅牢なサービステンプレートを作成するのに役立ちます。
-
AWS Proton パラメータフィルター – コンポーネント出力プロパティを参照する場合、パラメータフィルターを使用できます。パラメータフィルターは、パラメータ値を検証、フィルタリング、フォーマットする修飾子です。詳細な説明と例については、CloudFormation IaC ファイルのパラメータフィルター を参照してください。
-
単一プロパティデフォルト — コンポーネントの 1 つのリソースや出力プロパティを参照する場合、デフォルト値の有無にかかわらず、
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 }}
-