

Avis de fin de support : le 7 octobre 2026, AWS le support de AWS Proton. Après le 7 octobre 2026, vous ne pourrez plus accéder à la AWS Proton console ni aux AWS Proton ressources. Votre infrastructure déployée restera intacte. Pour plus d'informations, consultez le Guide [AWS Proton de dépréciation et de migration des services](https://docs.aws.amazon.com/proton/latest/userguide/proton-end-of-support.html).

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Filtres de paramètres pour les fichiers CloudFormation IaC
<a name="parameter-filters"></a>

Lorsque vous faites référence à des [AWS Proton paramètres](parameters.md) dans vos fichiers AWS CloudFormation iAc, vous pouvez utiliser des modificateurs Jinja appelés *filtres* pour valider, filtrer et formater les valeurs des paramètres avant qu'elles ne soient insérées dans le modèle de rendu. [Les validations de filtres sont particulièrement utiles lorsqu'il s'agit de faire référence aux paramètres de sortie des composants, car la création et l'attachement des composants sont effectués par les développeurs, et un administrateur utilisant les sorties des composants dans un modèle d'instance de service peut souhaiter vérifier leur existence et leur validité.](ag-components.md) Cependant, vous pouvez utiliser des filtres dans n'importe quel fichier Jinja iAc.

Les sections suivantes décrivent et définissent les filtres de paramètres disponibles, et fournissent des exemples. AWS Proton définit la plupart de ces filtres. Le `default` filtre est un filtre intégré à Jinja.

## Formater les propriétés de l'environnement pour les tâches Amazon ECS
<a name="parameter-filters.proton.cfn-ecs"></a>

**Déclaration**

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

**Description**

Ce filtre met en forme une liste de sorties à utiliser dans une [propriété d'environnement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdefinitions.html#cfn-ecs-taskdefinition-containerdefinition-environment) dans la `ContainerDefinition` section d'une définition de tâche Amazon Elastic Container Service (Amazon ECS).

Définissez `raw` sur `False` pour valider également la valeur du paramètre. Dans ce cas, la valeur doit correspondre à l'expression régulière`^[a-zA-Z0-9_-]*$`. Si la valeur échoue à cette validation, le rendu du modèle échoue.

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

Avec le modèle de composant personnalisé suivant :

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

Et le modèle de service suivant :

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

Le modèle de service rendu est le suivant :

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

## Propriétés de l'environnement de formatage pour les fonctions Lambda
<a name="parameter-filters.proton.cfn-lambda"></a>

**Déclaration**

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

**Description**

Ce filtre met en forme une liste de sorties à utiliser dans une [propriété d'environnement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-environment) dans la `Properties` section de définition d'une AWS Lambda fonction.

Définissez `raw` sur `False` pour valider également la valeur du paramètre. Dans ce cas, la valeur doit correspondre à l'expression régulière`^[a-zA-Z0-9_-]*$`. Si la valeur échoue à cette validation, le rendu du modèle échoue.

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

Avec le modèle de composant personnalisé suivant :

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

Et le modèle de service suivant :

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

Le modèle de service rendu est le suivant :

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

## Extraire la politique IAM ARNs à inclure dans les rôles IAM
<a name="parameter-filters.proton.cfn-policy-arns"></a>

**Déclaration**

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

**Description**

Ce filtre met en forme une liste de sorties à utiliser dans une [ManagedPolicyArns propriété](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html#cfn-iam-role-managepolicyarns) dans la `Properties` section de définition d'un rôle Gestion des identités et des accès AWS (IAM). Le filtre utilise l'expression régulière `^arn:[a-zA-Z-]+:iam::\d{12}:policy/` pour extraire la politique IAM valide ARNs de la liste des paramètres de sortie. Vous pouvez utiliser ce filtre pour ajouter des politiques dans les valeurs des paramètres de sortie à une définition de rôle IAM dans un modèle de service.

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

Avec le modèle de composant personnalisé suivant :

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

Et le modèle de service suivant :

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

Le modèle de service rendu est le suivant :

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

## Nettoyez les valeurs des propriétés
<a name="parameter-filters.proton.cfn-sanitize"></a>

**Déclaration**

```
string → proton_cfn_sanitize → string
```

**Description**

Il s'agit d'un filtre à usage général. Utilisez-le pour valider la sécurité d'une valeur de paramètre. Le filtre vérifie que la valeur correspond à l'expression régulière `^[a-zA-Z0-9_-]*$` ou qu'il s'agit d'un Amazon Resource Name (ARN) valide. Si la valeur échoue à cette validation, le rendu du modèle échoue.

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

Avec le modèle de composant personnalisé suivant :

```
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}}
```
+ La référence suivante dans un modèle de service :

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

  S'affiche comme suit :

  ```
  # ...
    This-is_valid_37
  ```
+ La référence suivante dans un modèle de service :

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

  Résultats avec l'erreur de rendu suivante :

  ```
  Illegal character(s) detected in "this::is::incorrect". Must match regex ^[a-zA-Z0-9_-]*$ or be a valid ARN
  ```
+ La référence suivante dans un modèle de service :

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

  S'affiche comme suit :

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

## Fournir des valeurs par défaut pour les références inexistantes
<a name="parameter-filters.proton.default"></a>

**Description**

Le `default` filtre fournit une valeur par défaut lorsqu'il n'existe aucune référence à un espace de noms. Utilisez-le pour écrire des modèles robustes qui peuvent être rendus sans échec même lorsque le paramètre auquel vous faites référence est manquant.

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

La référence suivante dans un modèle de service entraîne l'échec du rendu du modèle si l'instance de service n'a pas de composant directement défini (par défaut) attaché, ou si le composant attaché n'a pas de sortie nommée`test`.

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

Pour éviter ce problème, ajoutez le `default` filtre.

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