

지원 종료 알림: 2026년 10월 7일에 AWS 에 대한 지원이 종료됩니다 AWS Proton. 2026년 10월 7일 이후에는 AWS Proton 콘솔 또는 AWS Proton 리소스에 더 이상 액세스할 수 없습니다. 배포된 인프라는 그대로 유지됩니다. 자세한 내용은 [AWS Proton 서비스 사용 중단 및 마이그레이션 안내서](https://docs.aws.amazon.com/proton/latest/userguide/proton-end-of-support.html)를 참조하세요.

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

# 구성 요소 CloudFormation IaC 파일 파라미터 세부 정보 및 예제
<a name="comp-parameters"></a>

구성요소 코드형 인프라(IaC) 파일에서 파라미터를 정의하고 참조할 수 있습니다. AWS Proton 파라미터, 파라미터 유형, 파라미터 네임스페이스 및 IaC 파일에서 파라미터를 사용하는 방법에 대한 자세한 설명은 섹션을 참조하세요[AWS Proton 파라미터](parameters.md). 구성 요소에 대한 자세한 내용은 [AWS Proton 구성 요소](ag-components.md)를 참조하세요.

## 구성 요소 출력 파라미터를 정의합니다.
<a name="comp-parameters.define"></a>

구성 요소 IaC 파일에서 출력 파라미터를 정의할 수 있습니다. 다른 리소스의 서비스 IaC 파일에서 이러한 출력을 참조할 수 있습니다.

**참고**  
구성 요소 IaC 파일의 입력은 정의할 수 없습니다. 연결된 구성 요소는 연결된 서비스 인스턴스에서 입력을 가져올 수 있습니다. 분리된 구성 요소에는 입력이 없습니다.

## 구성 요소 IaC 파일에서 파라미터 값 읽기
<a name="comp-parameters.refer"></a>

구성 요소와 관련된 파라미터 및 구성 요소 IaC 파일에서 다른 리소스를 읽을 수 있습니다. 파라미터 네임스페이스에서 파라미터 이름을 참조하여 AWS Proton 파라미터 값을 읽습니다.
+ **입력 파라미터** - `service_instance.inputs.input-name`를 참조하여 첨부된 서비스 인스턴스 입력 값을 읽습니다.
+ **리소스 파라미터** - `component.name`, `service.name`, `service_instance.name`, 등의 이름을 참조하여 AWS Proton 리소스 파라미터를 읽습니다`environment.name`.
+ **출력 파라미터** - `environment.outputs.output-name` 참조를 통해 환경 출력을 읽습니다.

## 파라미터가 포함된 구성 요소 및 서비스 IaC 파일 예시
<a name="comp-parameters.example"></a>

다음 예에서는 Simple Storage Service(S3) 버킷과 관련 액세스 정책을 프로비저닝하고 두 리소스의 리소스 이름(ARN) 을 구성 요소 출력으로 노출하는 구성 요소를 보여줍니다. 서비스 IaC 템플릿은 구성 요소 출력을 Elastic Container Service(ECS) 작업의 컨테이너 환경 변수로 추가하여 컨테이너에서 실행 중인 코드에서 출력을 사용할 수 있도록 하고, 작업 역할에 버킷 액세스 정책을 추가합니다. 버킷 이름은 환경, 서비스, 서비스 인스턴스 및 구성 요소의 이름을 기반으로 합니다. 즉, 버킷은 특정 서비스 인스턴스를 확장하는 구성 요소 템플릿의 특정 인스턴스와 결합됩니다. 개발자는 이 구성 요소 템플릿을 기반으로 여러 사용자 지정 구성 요소를 생성하여 다양한 서비스 인스턴스 및 기능 요구 사항에 맞게 S3 버킷을 프로비저닝할 수 있습니다.

이 예제는 Jinja `{{ ... }}` 구문을 사용하여 서비스 IaC 파일의 구성 요소 및 기타 리소스 파라미터를 참조하는 방법을 보여줍니다. 구성 요소가 서비스 인스턴스에 연결된 경우에만 `{% if ... %}` 명령문을 사용하여 명령문 블록을 추가할 수 있습니다. `proton_cfn_*` 키워드는 출력 파라미터 값을 삭제하고 형식을 지정하는 데 사용할 수 있는 *필터*입니다. 필터에 대한 자세한 내용은 [CloudFormation IaC 파일용 파라미터 필터](parameter-filters.md) 단원을 참조하세요.

 관리자는 서비스 IaC 템플릿 파일을 작성합니다.

**Example 구성 요소를 사용한 서비스 CloudFormation IaC 파일**  

```
# service/instance_infrastructure/cloudformation.yaml

Resources: 
  TaskDefinition:
    Type: AWS::ECS::TaskDefinition
    Properties:
      TaskRoleArn: !Ref TaskRole
      ContainerDefinitions:
        - Name: '{{service_instance.name}}'
          # ...
          {% if service_instance.components.default.outputs | length > 0 %}
          Environment:
            {{ service_instance.components.default.outputs |
                proton_cfn_ecs_task_definition_formatted_env_vars }}
          {% endif %}

  # ...

  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:
      # ...
```

개발자는 구성 요소 IaC 템플릿 파일을 작성합니다.

**Example 컴포넌트 CloudFormation IaC 파일**  

```
# cloudformation.yaml

# A component that defines an S3 bucket and a policy for accessing the bucket.
Resources:
  S3Bucket:
    Type: AWS::S3::Bucket
    Properties:
      BucketName: '{{environment.name}}-{{service.name}}-{{service_instance.name}}-{{component.name}}'
  S3BucketAccessPolicy:
    Type: AWS::IAM::ManagedPolicy
    Properties:
      PolicyDocument:
        Version: "2012-10-17"		 	 	 
        Statement:
          - Effect: Allow
            Action:
              - 's3:Get*'
              - 's3:List*'
              - 's3:PutObject'
            Resource: !GetAtt S3Bucket.Arn
Outputs:
  BucketName:
    Description: "Bucket to access"
    Value: !GetAtt S3Bucket.Arn
  BucketAccessPolicyArn:
    Value: !Ref S3BucketAccessPolicy
```

가 서비스 인스턴스에 대한 CloudFormation 템플릿을 AWS Proton 렌더링하고 모든 파라미터를 실제 값으로 대체하는 경우 템플릿은 다음 파일과 같을 수 있습니다.

**Example 서비스 인스턴스 CloudFormation 렌더링 IaC 파일**  

```
Resources: 
  TaskDefinition:
    Type: AWS::ECS::TaskDefinition
    Properties:
      TaskRoleArn: !Ref TaskRole
      ContainerDefinitions:
        - Name: '{{service_instance.name}}'
          # ...
          Environment:
            - Name: BucketName
              Value: arn:aws:s3:us-east-1:123456789012:environment_name-service_name-service_instance_name-component_name
            - Name: BucketAccessPolicyArn
              Value: arn:aws:iam::123456789012:policy/cfn-generated-policy-name
  # ...

  TaskRole:
    Type: AWS::IAM::Role
    Properties:
      # ...
      ManagedPolicyArns:
        - !Ref BaseTaskRoleManagedPolicy
        - arn:aws:iam::123456789012:policy/cfn-generated-policy-name

  # Basic permissions for the task
  BaseTaskRoleManagedPolicy:
    Type: AWS::IAM::ManagedPolicy
    Properties:
      # ...
```