코드 파일로서의 구성 요소 인프라 - AWS Proton

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

코드 파일로서의 구성 요소 인프라

코드 (IaC) 파일로서의 구성 요소 인프라는 다른AWS Proton 리소스의 구성 요소 인프라와 유사합니다. 여기에서 구성 요소와 관련된 몇 가지 세부 정보를 알아보세요. 의 IaC 파일 작성에 대한 자세한 내용은AWS Proton 을 참조하십시오템플릿 작성 및 번들 생성AWS Proton.

구성 요소와 함께 매개 변수 사용

AWS Proton매개 변수 네임스페이스에는 서비스 IaC 파일이 관련 구성 요소의 이름과 출력을 가져오기 위해 참조할 수 있는 일부 매개 변수가 포함됩니다. 네임스페이스에는 구성 요소 IaC 파일이 참조하여 구성 요소가 연결된 환경, 서비스 및 서비스 인스턴스에서 입력, 출력 및 리소스 값을 가져올 수 있는 매개 변수도 포함됩니다.

구성 요소에는 자체 입력이 없으며 연결된 서비스 인스턴스에서 입력을 가져옵니다. 컴포넌트는 환경 출력도 읽을 수 있습니다.

구성 요소 및 관련 서비스 IaC 파일의 매개변수 사용에 대한 자세한 내용은 을 참조하십시오컴포넌트 CloudFormation IaC 파일 파라미터 세부 정보 및 예제. AWS Proton매개 변수에 대한 일반 정보 및 매개 변수 네임스페이스에 대한 전체 참조는 를 참조하십시오AWS Proton parameters.

강력한 IaC 파일 작성

관리자는 서비스 템플릿 버전을 생성할 때 템플릿 버전에서 생성된 서비스 인스턴스에 구성 요소를 연결하도록 허용할지 여부를 결정할 수 있습니다. API 참조에서 CreateServiceTemplateVersionAPI 작업의 supportedComponentSources파라미터를 참조하십시오.AWS Proton 그러나 future 서비스 인스턴스의 경우 인스턴스를 만들고 구성 요소를 연결할지 여부를 결정하고 (직접 정의된 구성 요소의 경우) 구성 요소 IaC를 작성한 사람은 일반적으로 다른 사람, 즉 서비스 템플릿을 사용하는 개발자입니다. 따라서 구성 요소가 서비스 인스턴스에 연결된다고 보장할 수 없습니다. 또한 특정 구성 요소 출력 이름의 존재 또는 이러한 출력 값의 유효성 및 안전성을 보장할 수 없습니다.

AWS ProtonJinja 구문은 이러한 문제를 해결하고 다음과 같은 방식으로 오류 없이 렌더링되는 강력한 서비스 템플릿을 작성하는 데 도움이 됩니다.

  • 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 }}