

Pemberitahuan akhir dukungan: Pada 7 Oktober 2026, AWS akan mengakhiri dukungan untuk AWS Proton. Setelah 7 Oktober 2026, Anda tidak akan lagi dapat mengakses AWS Proton konsol atau AWS Proton sumber daya. Infrastruktur yang Anda gunakan akan tetap utuh. Untuk informasi selengkapnya, lihat Panduan [AWS Proton Pengakhiran Layanan dan Migrasi](https://docs.aws.amazon.com/proton/latest/userguide/proton-end-of-support.html).

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Detail dan contoh parameter file CloudFormation iAc komponen
<a name="comp-parameters"></a>

Anda dapat menentukan dan mereferensikan parameter dalam infrastruktur komponen Anda sebagai file kode (IAc). Untuk penjelasan rinci tentang AWS Proton parameter, jenis parameter, namespace parameter, dan cara menggunakan parameter dalam file IAC Anda, lihat. [AWS Proton parameter](parameters.md) Untuk informasi selengkapnya tentang komponen, lihat[AWS Proton komponen](ag-components.md).

## Tentukan parameter keluaran komponen
<a name="comp-parameters.define"></a>

Anda dapat menentukan parameter output dalam file iAc komponen Anda. Anda kemudian dapat merujuk ke output ini dalam file layanan IAC.

**catatan**  
Anda tidak dapat menentukan input untuk file komponen IAC. Komponen terlampir bisa mendapatkan masukan dari instance layanan yang mereka lampirkan. Komponen terpisah tidak memiliki input.

## Baca nilai parameter dalam file iAc komponen
<a name="comp-parameters.refer"></a>

Anda dapat membaca parameter yang terkait dengan komponen dan sumber daya lain dalam file komponen IAc. Anda membaca nilai parameter dengan mereferensikan nama parameter di namespace AWS Proton parameter.
+ **Parameter input** — Baca nilai input instance layanan terlampir dengan referensi`service_instance.inputs.input-name`.
+ **Parameter sumber daya** — Baca parameter AWS Proton sumber daya dengan mereferensikan nama seperti`component.name`,`service.name`,`service_instance.name`, dan`environment.name`.
+ **Parameter keluaran** — Baca output lingkungan dengan referensi`environment.outputs.output-name`.

## Contoh komponen dan layanan file IAc dengan parameter
<a name="comp-parameters.example"></a>

Contoh berikut menunjukkan komponen yang menyediakan bucket Amazon Simple Storage Service (Amazon S3) dan kebijakan akses terkait serta mengekspos Amazon Resource Names ARNs () dari kedua sumber daya sebagai output komponen. Template Service IAC menambahkan output komponen sebagai variabel lingkungan container dari tugas Amazon Elastic Container Service (Amazon ECS) untuk membuat output tersedia untuk kode yang berjalan di container, dan menambahkan kebijakan akses bucket ke peran tugas. Nama bucket didasarkan pada nama lingkungan, layanan, instance layanan, dan komponen, yang berarti bahwa bucket digabungkan dengan instance spesifik dari template komponen yang memperluas instance layanan tertentu. Pengembang dapat membuat beberapa komponen kustom berdasarkan templat komponen ini, untuk menyediakan bucket Amazon S3 untuk berbagai instans layanan dan kebutuhan fungsional.

Contoh menunjukkan bagaimana Anda menggunakan `{{ ... }}` sintaks Jinja untuk merujuk ke komponen dan parameter sumber daya lainnya dalam file iAc layanan Anda. Anda dapat menggunakan `{% if ... %}` pernyataan untuk menambahkan blok pernyataan hanya ketika komponen dilampirkan ke instance layanan. `proton_cfn_*`Kata kunci adalah *filter* yang dapat Anda gunakan untuk membersihkan dan memformat nilai parameter output. Untuk informasi lebih lanjut tentang filter, lihat [Filter parameter untuk CloudFormation file IAc](parameter-filters.md).

 Sebagai administrator, Anda membuat file template layanan IAC.

**Example layanan file CloudFormation iAc menggunakan komponen**  

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

Sebagai pengembang, Anda membuat file template komponen IAC.

**Example file komponen 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
```

Saat AWS Proton merender CloudFormation template untuk instance layanan Anda dan mengganti semua parameter dengan nilai aktual, template mungkin terlihat seperti file berikut.

**Example contoh layanan yang CloudFormation diberikan file 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:
      # ...
```