

Avviso di fine del supporto: il 7 ottobre 2026, AWS terminerà il supporto per AWS Proton. Dopo il 7 ottobre 2026, non potrai più accedere alla AWS Proton console o AWS Proton alle risorse. L'infrastruttura implementata rimarrà intatta. Per ulteriori informazioni, consulta [AWS Proton Service Deprecation](https://docs.aws.amazon.com/proton/latest/userguide/proton-end-of-support.html) and Migration Guide.

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Dettagli ed esempi dei parametri del file CloudFormation IAc del componente
<a name="comp-parameters"></a>

È possibile definire e fare riferimento ai parametri nell'infrastruttura dei componenti come file di codice (IaC). Per una descrizione dettagliata dei AWS Proton parametri, dei tipi di parametri, dello spazio dei nomi dei parametri e di come utilizzare i parametri nei file IAc, vedere. [AWS Proton parametri](parameters.md) Per ulteriori informazioni sui componenti, vedere. [AWS Proton componenti](ag-components.md)

## Definire i parametri di output dei componenti
<a name="comp-parameters.define"></a>

È possibile definire i parametri di output nei file IAc dei componenti. È quindi possibile fare riferimento a queste uscite nei file IAc di servizio.

**Nota**  
Non è possibile definire input per i file IAc dei componenti. I componenti collegati possono ricevere input dall'istanza di servizio a cui sono collegati. I componenti scollegati non dispongono di input.

## Leggi i valori dei parametri nei file IAc dei componenti
<a name="comp-parameters.refer"></a>

È possibile leggere i parametri relativi al componente e ad altre risorse nei file IAc dei componenti. È possibile leggere il valore di un parametro facendo riferimento al nome del parametro nello spazio dei nomi del AWS Proton parametro.
+ **Parametri di input**: legge il valore di input di un'istanza di servizio allegata mediante riferimento. `service_instance.inputs.input-name`
+ **Parametri** AWS Proton delle risorse: legge i parametri delle risorse facendo riferimento a nomi come`component.name`, `service.name``service_instance.name`, e. `environment.name`
+ **Parametri di output**: legge gli output dell'ambiente mediante riferimento. `environment.outputs.output-name`

## File IAc di esempio per componenti e servizi con parametri
<a name="comp-parameters.example"></a>

L'esempio seguente mostra un componente che fornisce un bucket Amazon Simple Storage Service (Amazon S3) e la relativa policy di accesso ed espone gli Amazon Resource Names ARNs () di entrambe le risorse come output dei componenti. Un modello IAc di servizio aggiunge gli output dei componenti come variabili di ambiente del contenitore di un'attività Amazon Elastic Container Service (Amazon ECS) per rendere gli output disponibili per il codice in esecuzione nel contenitore e aggiunge la policy di accesso al bucket al ruolo dell'attività. Il nome del bucket si basa sui nomi dell'ambiente, del servizio, dell'istanza del servizio e del componente, il che significa che il bucket è associato a un'istanza specifica del modello di componente che estende un'istanza di servizio specifica. Gli sviluppatori possono creare più componenti personalizzati basati su questo modello di componenti, per fornire bucket Amazon S3 per diverse istanze di servizio ed esigenze funzionali.

L'esempio mostra come utilizzare la `{{ ... }}` sintassi Jinja per fare riferimento ai parametri dei componenti e ad altri parametri di risorse nel file IAc del servizio. È possibile utilizzare `{% if ... %}` le istruzioni per aggiungere blocchi di istruzioni solo quando un componente è collegato all'istanza del servizio. Le `proton_cfn_*` parole chiave sono *filtri* che è possibile utilizzare per disinfettare e formattare i valori dei parametri di output. Per ulteriori informazioni sui filtri, consultare [filtri parametrici per CloudFormation file IAc](parameter-filters.md).

 In qualità di amministratore, sei l'autore del file modello IAc del servizio.

**Example file CloudFormation IAc di servizio che utilizza un componente**  

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

In qualità di sviluppatore, sei l'autore del file modello IAc del componente.

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

Quando AWS Proton esegue il rendering di un CloudFormation modello per l'istanza del servizio e sostituisce tutti i parametri con valori effettivi, il modello potrebbe avere l'aspetto del file seguente.

**Example l'istanza di servizio ha CloudFormation reso il 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:
      # ...
```