

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à.

# filtri parametrici per CloudFormation file IAc
<a name="parameter-filters"></a>

Quando si fanno riferimenti ai [AWS Proton parametri](parameters.md) nei file AWS CloudFormation IAc, è possibile utilizzare i modificatori Jinja noti come *filtri* per convalidare, filtrare e formattare i valori dei parametri prima che vengano inseriti nel modello renderizzato. Le convalide dei filtri sono particolarmente utili quando si fa riferimento ai parametri di output dei [componenti](ag-components.md), poiché la creazione e il collegamento dei componenti vengono eseguiti dagli sviluppatori e un amministratore che utilizza gli output dei componenti in un modello di istanza di servizio potrebbe volerne verificare l'esistenza e la validità. Tuttavia, puoi utilizzare i filtri in qualsiasi file Jinja IAc.

Le sezioni seguenti descrivono e definiscono i filtri parametrici disponibili e forniscono esempi. AWS Proton definisce la maggior parte di questi filtri. Il `default` filtro è un filtro integrato Jinja.

## Proprietà dell'ambiente di formattazione per le attività di Amazon ECS
<a name="parameter-filters.proton.cfn-ecs"></a>

**Dichiarazione**

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

**Descrizione**

Questo filtro formatta un elenco di output da utilizzare in una [proprietà Environment nella `ContainerDefinition` sezione di una definizione](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdefinitions.html#cfn-ecs-taskdefinition-containerdefinition-environment) di attività Amazon Elastic Container Service (Amazon ECS) Elastic Container Service (Amazon ECS).

Imposta su `raw` per `False` convalidare anche il valore del parametro. In questo caso, è necessario che il valore corrisponda all'espressione `^[a-zA-Z0-9_-]*$` regolare. Se il valore non supera questa convalida, il rendering del modello fallisce.

### Esempio
<a name="parameter-filters.proton.cfn-ecs.example"></a>

Con il seguente modello di componente personalizzato:

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

E il seguente modello di servizio:

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

Il modello di servizio reso è il seguente:

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

## Proprietà di ambiente di formattazione per le funzioni Lambda
<a name="parameter-filters.proton.cfn-lambda"></a>

**Dichiarazione**

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

**Descrizione**

Questo filtro formatta un elenco di output da utilizzare in una [proprietà Environment](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-environment) nella `Properties` sezione di una definizione di AWS Lambda funzione.

Imposta su `raw` `False` per convalidare anche il valore del parametro. In questo caso, è necessario che il valore corrisponda all'espressione `^[a-zA-Z0-9_-]*$` regolare. Se il valore non supera questa convalida, il rendering del modello fallisce.

### Esempio
<a name="parameter-filters.proton.cfn-lambda.example"></a>

Con il seguente modello di componente personalizzato:

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

E il seguente modello di servizio:

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

Il modello di servizio reso è il seguente:

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

## Estrai la policy IAM ARNs da includere nei ruoli IAM
<a name="parameter-filters.proton.cfn-policy-arns"></a>

**Dichiarazione**

```
dict → proton_cfn_iam_policy_arns → YAML list
```

**Descrizione**

Questo filtro formatta un elenco di output da utilizzare in una [ManagedPolicyArns proprietà](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html#cfn-iam-role-managepolicyarns) nella `Properties` sezione di una definizione di ruolo AWS Identity and Access Management (IAM). Il filtro utilizza l'espressione regolare `^arn:[a-zA-Z-]+:iam::\d{12}:policy/` per estrarre una politica IAM valida ARNs dall'elenco dei parametri di output. È possibile utilizzare questo filtro per aggiungere le politiche nei valori dei parametri di output a una definizione di ruolo IAM in un modello di servizio.

### Esempio
<a name="parameter-filters.proton.cfn-policy-arns.example"></a>

Con il seguente modello di componente personalizzato:

```
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
```

E il seguente modello di servizio:

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

Il modello di servizio reso è il seguente:

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

## Disinfetta i valori delle proprietà
<a name="parameter-filters.proton.cfn-sanitize"></a>

**Dichiarazione**

```
string → proton_cfn_sanitize → string
```

**Descrizione**

Si tratta di un filtro generico. Utilizzatelo per convalidare la sicurezza del valore di un parametro. Il filtro verifica che il valore corrisponda all'espressione regolare `^[a-zA-Z0-9_-]*$` o sia un Amazon Resource Name (ARN) valido. Se il valore non supera questa convalida, il rendering del modello non riesce.

### Esempio
<a name="parameter-filters.proton.cfn-sanitize.example"></a>

Con il seguente modello di componente personalizzato:

```
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
```
+ Il seguente riferimento in un modello di servizio:

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

  Viene visualizzato come segue:

  ```
  # ...
    This-is_valid_37
  ```
+ Il seguente riferimento in un modello di servizio:

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

  Risultati con il seguente errore di rendering:

  ```
  Illegal character(s) detected in "this::is::incorrect". Must match regex ^[a-zA-Z0-9_-]*$ or be a valid ARN
  ```
+ Il seguente riferimento in un modello di servizio:

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

  Viene visualizzato come segue:

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

## Fornite valori predefiniti per riferimenti inesistenti
<a name="parameter-filters.proton.default"></a>

**Descrizione**

Il `default` filtro fornisce un valore predefinito quando non esiste un riferimento allo spazio dei nomi. Utilizzatelo per scrivere modelli robusti in grado di eseguire il rendering senza errori anche quando manca il parametro a cui fate riferimento.

### Esempio
<a name="parameter-filters.default.example"></a>

Il riferimento seguente in un modello di servizio fa sì che il rendering del modello non riesca se all'istanza del servizio non è associato un componente definito direttamente (predefinito) o se il componente allegato non ha un output denominato`test`.

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

Per evitare questo problema, aggiungi il `default` filtro.

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