쿠키 기본 설정 선택

당사는 사이트와 서비스를 제공하는 데 필요한 필수 쿠키 및 유사한 도구를 사용합니다. 고객이 사이트를 어떻게 사용하는지 파악하고 개선할 수 있도록 성능 쿠키를 사용해 익명의 통계를 수집합니다. 필수 쿠키는 비활성화할 수 없지만 '사용자 지정' 또는 ‘거부’를 클릭하여 성능 쿠키를 거부할 수 있습니다.

사용자가 동의하는 경우 AWS와 승인된 제3자도 쿠키를 사용하여 유용한 사이트 기능을 제공하고, 사용자의 기본 설정을 기억하고, 관련 광고를 비롯한 관련 콘텐츠를 표시합니다. 필수가 아닌 모든 쿠키를 수락하거나 거부하려면 ‘수락’ 또는 ‘거부’를 클릭하세요. 더 자세한 내용을 선택하려면 ‘사용자 정의’를 클릭하세요.

CloudFormation IaC 파일용 파라미터 필터

포커스 모드
CloudFormation IaC 파일용 파라미터 필터 - AWS Proton

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

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

AWS CloudFormation IaC 파일의 AWS Proton 매개변수를 참조할 때 필터라는 Jinja 수정자를 사용하여 렌더링된 템플릿에 삽입되기 전에 매개변수 값을 검증, 필터링 및 형식 지정할 수 있습니다. 구성 요소 생성 및 첨부는 개발자가 수행하므로 서비스 인스턴스 템플릿에서 구성 요소 출력을 사용하는 관리자는 구성 요소 출력 파라미터의 존재 여부와 유효성을 확인하고자 할 수 있으므로 필터 검증은 구성 요소 출력 파라미터를 참조할 때 특히 유용합니다. 하지만 Jinja IaC 파일에서는 필터를 사용할 수 있습니다.

다음 섹션에서는 사용 가능한 매개 변수 필터를 설명 및 정의하고 예제를 제공합니다. AWS Proton 이러한 필터의 대부분을 정의합니다. default은 Jinja 내장 필터입니다.

Amazon ECS 작업의 환경 속성 형식 지정

선언

dict → proton_cfn_ecs_task_definition_formatted_env_vars (raw: boolean = True) → YAML list of dicts

설명

이 필터는 Amazon Elastic Container Service(Amazon ECS) 태스크 정의 ContainerDefinition섹션의 환경 속성에 사용될 출력 목록의 형식을 지정합니다.

rawFalse로 설정하여 파라미터 값의 유효성도 확인합니다. 이 경우 값은 정규 표현식 ^[a-zA-Z0-9_-]*$과 일치해야 합니다. 값이 이 검증에 실패하면 템플릿 렌더링이 실패합니다.

다음과 같은 사용자 지정 구성 요소 템플릿 사용:

Resources: # ... Outputs: Output1: Description: "Example component output 1" Value: hello Output2: Description: "Example component output 2" Value: world

그리고 다음 서비스 템플릿:

Resources: TaskDefinition: Type: AWS::ECS::TaskDefinition Properties: # ... ContainerDefinitions: - Name: MyServiceName # ... Environment: {{ service_instance.components.default.outputs | proton_cfn_ecs_task_definition_formatted_env_vars }}

렌더링된 서비스 템플릿은 다음과 같습니다.

Resources: TaskDefinition: Type: AWS::ECS::TaskDefinition Properties: # ... ContainerDefinitions: - Name: MyServiceName # ... Environment: - Name: Output1 Value: hello - Name: Output2 Value: world

다음과 같은 사용자 지정 구성 요소 템플릿 사용:

Resources: # ... Outputs: Output1: Description: "Example component output 1" Value: hello Output2: Description: "Example component output 2" Value: world

그리고 다음 서비스 템플릿:

Resources: TaskDefinition: Type: AWS::ECS::TaskDefinition Properties: # ... ContainerDefinitions: - Name: MyServiceName # ... Environment: {{ service_instance.components.default.outputs | proton_cfn_ecs_task_definition_formatted_env_vars }}

렌더링된 서비스 템플릿은 다음과 같습니다.

Resources: TaskDefinition: Type: AWS::ECS::TaskDefinition Properties: # ... ContainerDefinitions: - Name: MyServiceName # ... Environment: - Name: Output1 Value: hello - Name: Output2 Value: world

Lambda 함수의 환경 속성 형식 지정

선언

dict → proton_cfn_lambda_function_formatted_env_vars (raw: boolean = True) → YAML dict

설명

이 필터는 AWS Lambda 함수 정의 Properties 섹션의 Environment 속성에 사용할 출력 목록의 형식을 지정합니다.

rawFalse로 설정하여 파라미터 값의 유효성도 확인합니다. 이 경우 값은 정규 표현식 ^[a-zA-Z0-9_-]*$과 일치해야 합니다. 값이 이 검증에 실패하면 템플릿 렌더링이 실패합니다.

다음과 같은 사용자 지정 구성 요소 템플릿 사용:

Resources: # ... Outputs: Output1: Description: "Example component output 1" Value: hello Output2: Description: "Example component output 2" Value: world

그리고 다음 서비스 템플릿:

Resources: Lambda: Type: AWS::Lambda::Function Properties: Environment: Variables: {{ service_instance.components.default.outputs | proton_cfn_lambda_function_formatted_env_vars }}

렌더링된 서비스 템플릿은 다음과 같습니다.

Resources: Lambda: Type: AWS::Lambda::Function Properties: Environment: Variables: Output1: hello Output2: world

다음과 같은 사용자 지정 구성 요소 템플릿 사용:

Resources: # ... Outputs: Output1: Description: "Example component output 1" Value: hello Output2: Description: "Example component output 2" Value: world

그리고 다음 서비스 템플릿:

Resources: Lambda: Type: AWS::Lambda::Function Properties: Environment: Variables: {{ service_instance.components.default.outputs | proton_cfn_lambda_function_formatted_env_vars }}

렌더링된 서비스 템플릿은 다음과 같습니다.

Resources: Lambda: Type: AWS::Lambda::Function Properties: Environment: Variables: Output1: hello Output2: world

IAM 정책 ARN을 추출하여 IAM 역할에 포함시킵니다.

선언

dict → proton_cfn_iam_policy_arns → YAML list

설명

이 필터는 AWS Identity and Access Management (IAM) 역할 정의 Properties 섹션의 ManagedPolicyArns 속성에 사용할 출력 목록의 형식을 지정합니다. 필터는 정규 표현식 ^arn:[a-zA-Z-]+:iam::\d{12}:policy/을 사용하여 출력 파라미터 목록에서 유효한 IAM 정책 ARN을 추출합니다. 이 필터를 사용하여 출력 파라미터 값의 정책을 서비스 템플릿의 IAM 역할 정의에 추가할 수 있습니다.

다음과 같은 사용자 지정 구성 요소 템플릿 사용:

Resources: # ... ExamplePolicy1: Type: AWS::IAM::ManagedPolicy Properties: # ... ExamplePolicy2: Type: AWS::IAM::ManagedPolicy Properties: # ... # ... Outputs: Output1: Description: "Example component output 1" Value: hello Output2: Description: "Example component output 2" Value: world PolicyArn1: Description: "ARN of policy 1" Value: !Ref ExamplePolicy1 PolicyArn2: Description: "ARN of policy 2" Value: !Ref ExamplePolicy2

그리고 다음 서비스 템플릿:

Resources: # ... TaskRole: Type: AWS::IAM::Role Properties: # ... ManagedPolicyArns: - !Ref BaseTaskRoleManagedPolicy {{ service_instance.components.default.outputs | proton_cfn_iam_policy_arns }} # Basic permissions for the task BaseTaskRoleManagedPolicy: Type: AWS::IAM::ManagedPolicy Properties: # ...

렌더링된 서비스 템플릿은 다음과 같습니다.

Resources: # ... TaskRole: Type: AWS::IAM::Role Properties: # ... ManagedPolicyArns: - !Ref BaseTaskRoleManagedPolicy - arn:aws:iam::123456789012:policy/cfn-generated-policy-name-1 - arn:aws:iam::123456789012:policy/cfn-generated-policy-name-2 # Basic permissions for the task BaseTaskRoleManagedPolicy: Type: AWS::IAM::ManagedPolicy Properties: # ...

다음과 같은 사용자 지정 구성 요소 템플릿 사용:

Resources: # ... ExamplePolicy1: Type: AWS::IAM::ManagedPolicy Properties: # ... ExamplePolicy2: Type: AWS::IAM::ManagedPolicy Properties: # ... # ... Outputs: Output1: Description: "Example component output 1" Value: hello Output2: Description: "Example component output 2" Value: world PolicyArn1: Description: "ARN of policy 1" Value: !Ref ExamplePolicy1 PolicyArn2: Description: "ARN of policy 2" Value: !Ref ExamplePolicy2

그리고 다음 서비스 템플릿:

Resources: # ... TaskRole: Type: AWS::IAM::Role Properties: # ... ManagedPolicyArns: - !Ref BaseTaskRoleManagedPolicy {{ service_instance.components.default.outputs | proton_cfn_iam_policy_arns }} # Basic permissions for the task BaseTaskRoleManagedPolicy: Type: AWS::IAM::ManagedPolicy Properties: # ...

렌더링된 서비스 템플릿은 다음과 같습니다.

Resources: # ... TaskRole: Type: AWS::IAM::Role Properties: # ... ManagedPolicyArns: - !Ref BaseTaskRoleManagedPolicy - arn:aws:iam::123456789012:policy/cfn-generated-policy-name-1 - arn:aws:iam::123456789012:policy/cfn-generated-policy-name-2 # Basic permissions for the task BaseTaskRoleManagedPolicy: Type: AWS::IAM::ManagedPolicy Properties: # ...

속성 값 삭제

선언

string → proton_cfn_sanitize → string

설명

범용 필터입니다. 이를 사용하여 파라미터 값의 안전성을 검증할 수 있습니다. 필터는 값이 정규 표현식 ^[a-zA-Z0-9_-]*$과 일치하는지 또는 유효한 Amazon 리소스 이름(ARN) 인지 확인합니다. 값이 이 검증에 실패하면 템플릿 렌더링이 실패합니다.

다음과 같은 사용자 지정 구성 요소 템플릿 사용:

Resources: # ... Outputs: Output1: Description: "Example of valid output" Value: "This-is_valid_37" Output2: Description: "Example incorrect output" Value: "this::is::incorrect" SomeArn: Description: "Example ARN" Value: arn:aws:some-service::123456789012:some-resource/resource-name
  • 서비스 템플릿의 다음 참조:

    # ... {{ service_instance.components.default.outputs.Output1 | proton_cfn_sanitize }}

    다음과 같이 렌더링됩니다.

    # ... This-is_valid_37
  • 서비스 템플릿의 다음 참조:

    # ... {{ service_instance.components.default.outputs.Output2 | proton_cfn_sanitize }}

    다음과 같은 렌더링 오류가 발생한 결과:

    Illegal character(s) detected in "this::is::incorrect". Must match regex ^[a-zA-Z0-9_-]*$ or be a valid ARN
  • 서비스 템플릿의 다음 참조:

    # ... {{ service_instance.components.default.outputs.SomeArn | proton_cfn_sanitize }}

    다음과 같이 렌더링됩니다.

    # ... arn:aws:some-service::123456789012:some-resource/resource-name

다음과 같은 사용자 지정 구성 요소 템플릿 사용:

Resources: # ... Outputs: Output1: Description: "Example of valid output" Value: "This-is_valid_37" Output2: Description: "Example incorrect output" Value: "this::is::incorrect" SomeArn: Description: "Example ARN" Value: arn:aws:some-service::123456789012:some-resource/resource-name
  • 서비스 템플릿의 다음 참조:

    # ... {{ service_instance.components.default.outputs.Output1 | proton_cfn_sanitize }}

    다음과 같이 렌더링됩니다.

    # ... This-is_valid_37
  • 서비스 템플릿의 다음 참조:

    # ... {{ service_instance.components.default.outputs.Output2 | proton_cfn_sanitize }}

    다음과 같은 렌더링 오류가 발생한 결과:

    Illegal character(s) detected in "this::is::incorrect". Must match regex ^[a-zA-Z0-9_-]*$ or be a valid ARN
  • 서비스 템플릿의 다음 참조:

    # ... {{ service_instance.components.default.outputs.SomeArn | proton_cfn_sanitize }}

    다음과 같이 렌더링됩니다.

    # ... arn:aws:some-service::123456789012:some-resource/resource-name

존재하지 않는 참조에 대한 기본값 제공

설명

default 필터는 네임스페이스 참조가 없는 경우 기본값을 제공합니다. 이를 사용하여 참조하는 파라미터가 누락된 경우에도 오류 없이 렌더링할 수 있는 강력한 템플릿을 작성할 수 있습니다.

서비스 템플릿의 다음 참조를 사용하면 서비스 인스턴스에 직접 정의된 (기본) 구성 요소가 첨부되어 있지 않거나 연결된 구성 요소에 이름이 지정된 test 출력이 없는 경우 템플릿 렌더링이 실패합니다.

# ... {{ service_instance.components.default.outputs.test }}

이 문제를 방지하려면 default 필터를 추가합니다.

# ... {{ service_instance.components.default.outputs.test | default("[optional-value]") }}

서비스 템플릿의 다음 참조를 사용하면 서비스 인스턴스에 직접 정의된 (기본) 구성 요소가 첨부되어 있지 않거나 연결된 구성 요소에 이름이 지정된 test 출력이 없는 경우 템플릿 렌더링이 실패합니다.

# ... {{ service_instance.components.default.outputs.test }}

이 문제를 방지하려면 default 필터를 추가합니다.

# ... {{ service_instance.components.default.outputs.test | default("[optional-value]") }}
프라이버시사이트 이용 약관쿠키 기본 설정
© 2025, Amazon Web Services, Inc. 또는 계열사. All rights reserved.