

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.

# Variables d'environnement et autres paramètres du logiciel
<a name="environments-cfg-softwaresettings"></a>

La page de configuration des **mises à jour, de la surveillance et de la journalisation** vous permet de configurer le logiciel sur les instances Amazon Elastic Compute Cloud (Amazon EC2) qui exécutent votre application. Vous pouvez configurer les variables d'environnement, le AWS X-Ray débogage, le stockage et le streaming des journaux d'instance, ainsi que les paramètres spécifiques à la plate-forme.

**Topics**
+ [Configurer les paramètres spécifiques à la plateforme](#environments-cfg-softwaresettings-specific)
+ [Configuration des propriétés de l'environnement (variables d'environnement)](#environments-cfg-softwaresettings-console)
+ [Espaces de noms des paramètres de logiciel](#environments-cfg-softwaresettings-configfiles)
+ [Accès aux propriétés de l'environnement](#environments-cfg-softwaresettings-accessing)
+ [Configuration du AWS X-Ray débogage](environment-configuration-debugging.md)
+ [Affichage de vos journaux d'environnement Elastic Beanstalk](environments-cfg-logging.md)

## Configurer les paramètres spécifiques à la plateforme
<a name="environments-cfg-softwaresettings-specific"></a>

Outre l'ensemble d'options standard disponibles pour tous les environnements, la plupart des plateformes Elastic Beanstalk vous permettent de spécifier des paramètres propres à une langue ou à l'infrastructure. Ils apparaissent dans la section **Logiciel de plateforme** de la page **Configurer les mises à jour, la surveillance et la journalisation** et peuvent prendre les formes suivantes.
+ **Propriétés de l'environnement prédéfinies** – La plateforme Ruby utilise des propriétés d'environnement pour les paramètres d'infrastructure comme `RACK_ENV` et `BUNDLE_WITHOUT`.
+ **Propriétés de l'environnement d'espace réservé** – La plateforme Tomcat définit une propriété d'environnement nommée `JDBC_CONNECTION_STRING` qui n'a aucune valeur définie. Ce type de paramètre était plus fréquent sur les anciennes versions de la plateforme.
+ **Options de configuration** – La plupart des plateformes définissent des [options de configuration](command-options.md) dans des espaces de noms propres à la plateforme ou partagés tels que `aws:elasticbeanstalk:xray` ou `aws:elasticbeanstalk:container:python`.

**Pour configurer les paramètres spécifiques à la plateforme dans la console Elastic Beanstalk**

1. Ouvrez la console [Elastic Beanstalk](https://console.aws.amazon.com/elasticbeanstalk), puis **dans la liste des régions, sélectionnez votre**. Région AWS

1. Dans le panneau de navigation, choisissez **Environments** (Environnements), puis choisissez le nom de votre environnement dans la liste.

1. Dans le panneau de navigation, choisissez **Configuration**.

1. Dans la catégorie de configuration **Mises à jour, surveillance et journalisation**, sélectionnez **Modifier**.

1. Sous **Logiciel de la plateforme**, apportez les modifications nécessaires aux paramètres des options.

1. Pour enregistrer les modifications, cliquez sur **Appliquer** en bas de la page.

Pour plus d'informations sur les options propres aux plateformes, et sur l'obtention des valeurs de propriété d'environnement dans votre code, reportez-vous à la rubrique relative à la plateforme pour votre langue ou votre infrastructure :
+ Docker – [Configuration des environnements Elastic Beanstalk Docker](create_deploy_docker.container.console.md)
+ Go – [Utilisation de la plateforme Go Elastic Beanstalk](go-environment.md)
+ Java SE – [Utilisation de la plateforme Java SE Elastic Beanstalk](java-se-platform.md)
+ Tomcat – [Utilisation de la plateforme Elastic Beanstalk Tomcat](java-tomcat-platform.md)
+ .NET Core sous Linux – [Utilisation du noyau d'Elastic Beanstalk .NET sur la plateforme Linux](dotnet-linux-platform.md)
+ .NET – [Utilisation de la plateforme Windows Elastic Beanstalk .NET](create_deploy_NET.container.console.md)
+ Node.js – [Utilisation de la plateforme Elastic Beanstalk Node.js](create_deploy_nodejs.container.md)
+ PHP – [Utilisation de la plateforme PHP Elastic Beanstalk](create_deploy_PHP.container.md)
+ Python – [Utilisation de la plateforme Python Elastic Beanstalk](create-deploy-python-container.md)
+ Ruby – [Utilisation de la plateforme Elastic Beanstalk Ruby](create_deploy_Ruby.container.md)

## Configuration des propriétés de l'environnement (variables d'environnement)
<a name="environments-cfg-softwaresettings-console"></a>

Vous pouvez utiliser les **propriétés d'environnement** (également appelées **variables d'environnement**) pour transmettre des points de terminaison, des paramètres de débogage et d'autres informations à votre application. Les variables d'environnement vous aident à exécuter votre application dans plusieurs environnements à des fins différentes, telles que le développement, les tests, la préparation et la production.

En outre, lorsque vous [ajoutez une base de données à votre environnement](using-features.managing.db.md), Elastic Beanstalk définit des variables d'environnement, `RDS_HOSTNAME` telles que celles que vous pouvez lire dans le code de votre application pour créer un objet ou une chaîne de connexion.

**Pour configurer les variables d'environnement dans la console Elastic Beanstalk**

1. Ouvrez la console [Elastic Beanstalk](https://console.aws.amazon.com/elasticbeanstalk), puis **dans la liste des régions, sélectionnez votre**. Région AWS

1. Dans le panneau de navigation, choisissez **Environments** (Environnements), puis choisissez le nom de votre environnement dans la liste.

1. Dans le panneau de navigation, choisissez **Configuration**.

1. Dans la catégorie de configuration **Mises à jour, surveillance et journalisation**, sélectionnez **Modifier**.

1. Faites défiler la page jusqu'à **Variables d'environnement d'exécution**.

1. Sélectionnez **Ajouter une variable d'environnement**.

1. Pour **Source**, sélectionnez **Texte brut**.
**Note**  
Les valeurs **Secrets Manager** et **SSM Parameter Store** de la liste déroulante permettent de configurer les variables d'environnement en tant que secrets pour stocker des données sensibles, telles que les informations d'identification et les clés d'API. Pour de plus amples informations, veuillez consulter [Utilisation d'Elastic AWS Secrets Manager AWS Systems Manager Beanstalk avec et Parameter Store](AWSHowTo.secrets.md). 

1. Entrez le **nom de la variable d'environnement** **et les paires de valeurs de la variable** d'environnement.

1. Si vous devez ajouter d'autres variables, répétez les **étapes 6** **à 8**.

1. Pour enregistrer les modifications, cliquez sur **Appliquer** en bas de la page.

**Limites des propriétés de l'environnement**
+ Les **clés** peuvent contenir des caractères alphanumériques et les symboles suivants : `_ . : / + \ - @`

  Les symboles répertoriés sont valides pour les clés de propriété d'environnement, mais peuvent ne pas être valides pour les noms de variable d'environnement sur la plateforme de votre environnement. Pour assurer une compatibilité avec toutes les plateformes, limitez les propriétés d'environnement au schéma suivant : `[A-Z_][A-Z0-9_]*`
+ Les **valeurs** peuvent contenir des caractères alphanumériques, des espaces et les symboles suivants : `_ . : / = + \ - @ ' "`
**Note**  
Certains caractères dans les valeurs de propriété d'environnement doivent être échappés. Utilisez le caractère barre oblique inverse (`\`) pour représenter certains caractères spéciaux et de contrôle. La liste suivante inclut des exemples de représentation de certains caractères devant être échappés :  
barre oblique inverse (`\`) – pour représenter l'utilisation `\\`
guillemet simple (`'`) – pour représenter l'utilisation `\'`
guillemet double (`"`) – pour représenter l'utilisation `\"`
+ Les **clés** et les **valeurs** sont sensibles à la casse.
+ La taille combinée de toutes les propriétés d'environnement ne peut pas dépasser 4 096 octets lorsqu'elles sont stockées sous forme de chaînes au format {{key}} =. {{value}}

## Espaces de noms des paramètres de logiciel
<a name="environments-cfg-softwaresettings-configfiles"></a>

Vous pouvez utiliser un [fichier de configuration](ebextensions.md) pour définir des options de configuration et exécuter d'autres tâches de configuration d'instance pendant les déploiements. Les options de configuration peuvent être [spécifiques à la plate-forme](command-options-specific.md) ou s'appliquer à [toutes les plateformes](command-options-general.md) du service Elastic Beanstalk dans son ensemble. Les options de configuration sont organisées en *espaces de noms.*

Vous pouvez utiliser des [fichiers de configuration](ebextensions.md) Elastic Beanstalk pour définir les propriétés de l'environnement et les options de configuration dans votre code source. Utilisez l'espace de noms [`aws:elasticbeanstalk:application:environment`](command-options-general.md#command-options-general-elasticbeanstalkapplicationenvironment) pour définir les propriétés de l'environnement.

**Example .ebextensions/options.config**  

```
option_settings:
  aws:elasticbeanstalk:application:environment:
    API_ENDPOINT: www.example.com/api
```

Si vous utilisez des fichiers de configuration ou des CloudFormation modèles pour créer [des ressources personnalisées](environment-resources.md), vous pouvez utiliser une CloudFormation fonction pour obtenir des informations sur la ressource et l'attribuer dynamiquement à une propriété d'environnement lors du déploiement. L'exemple suivant, tiré du [elastic-beanstalk-samples](https://github.com/awsdocs/elastic-beanstalk-samples/) GitHub référentiel, utilise la [fonction Ref](ebextensions-functions.md) pour obtenir l'ARN d'une rubrique Amazon SNS créée et l'affecte à une propriété d'environnement nommée. `NOTIFICATION_TOPIC`

**Remarques**  
Si vous utilisez une CloudFormation fonction pour définir une propriété d'environnement, la console Elastic Beanstalk affiche la valeur de la propriété avant que la fonction ne soit évaluée. Vous pouvez utiliser le [script de plateforme `get-config`](custom-platforms-scripts.md) pour confirmer les valeurs des propriétés d'environnement disponibles pour votre application. 
La plateforme [Docker Multicontainer](create_deploy_docker_ecs.md) n'est pas utilisée CloudFormation pour créer des ressources de conteneur. Par conséquent, cette plate-forme ne prend pas en charge la définition des propriétés de l'environnement à l'aide de CloudFormation fonctions.

**Example .Ebextensions/[sns-topic.config](https://github.com/awsdocs/elastic-beanstalk-samples/tree/main/configuration-files/aws-provided/resource-configuration/sns-topic.config)**  

```
Resources:
  NotificationTopic:
    Type: AWS::SNS::Topic

option_settings:
  aws:elasticbeanstalk:application:environment:
    NOTIFICATION_TOPIC: '`{"Ref" : "NotificationTopic"}`'
```

Vous pouvez également utiliser cette fonctionnalité pour propager les informations à partir des [pseudo-paramètres CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/pseudo-parameter-reference.html). Cet exemple obtient la région actuelle et l'affecte à une propriété nommée `AWS_REGION`.

**Example .Ebextensions/[env-regionname.config](https://github.com/awsdocs/elastic-beanstalk-samples/tree/main/configuration-files/aws-provided/instance-configuration/env-regionname.config)**  

```
option_settings:
  aws:elasticbeanstalk:application:environment:
    AWS_REGION: '`{"Ref" : "AWS::Region"}`'
```

La plupart des plateformes Elastic Beanstalk définissent des espaces de noms supplémentaires avec des options pour configurer le logiciel qui s'exécute sur l'instance, tel que le proxy inversé qui relaie des requêtes pour votre application. Pour plus d'informations sur les espaces de noms disponibles pour votre plateforme, consultez les ressources suivantes :
+ Go – [Espaces de noms de la configuration Go](go-environment.md#go-namespaces)
+ Java SE – [Espaces de noms de la configuration Java SE](java-se-platform.md#java-se-namespaces)
+ Tomcat – [Espaces de noms de la configuration Tomcat](java-tomcat-platform.md#java-tomcat-namespaces)
+ .NET Core sous Linux – [Espace de noms de la configuration .NET Core sous Linux](dotnet-linux-platform.md#dotnet-linux-namespace)
+ .NET – [Espace de noms aws:elasticbeanstalk:container:dotnet:apppool](create_deploy_NET.container.console.md#dotnet-namespaces)
+ Node.js – [Espaces de noms de la configuration Node.js](create_deploy_nodejs.container.md#nodejs-namespaces)
+ PHP – [Espaces de noms pour la configuration](create_deploy_PHP.container.md#php-namespaces)
+ Python – [Espaces de noms de la configuration Python](create-deploy-python-container.md#python-namespaces)
+ Ruby – [Espaces de noms de configuration Ruby](create_deploy_Ruby.container.md#ruby-namespaces)

Elastic Beanstalk fournit de nombreuses options de configuration pour personnaliser votre environnement. En plus des fichiers de configuration, vous pouvez également définir des options de configuration à l'aide de la console, de configurations enregistrées, de la CLI EB ou d' AWS CLI. Pour plus d’informations, consultez [Options de configuration](command-options.md).

## Accès aux propriétés de l'environnement
<a name="environments-cfg-softwaresettings-accessing"></a>

Dans la plupart des cas, vous accédez aux propriétés de l'environnement dans le code de votre application sous forme d'une variable d'environnement. Toutefois, les propriétés d'environnement sont généralement transmises uniquement à l'application et ne peuvent pas être affichées via une connexion à une instance dans votre environnement et l'exécution de `env`.
+ [Go](go-environment.md#go-options-properties) – `os.Getenv`

  ```
  endpoint := os.Getenv("API_ENDPOINT")
  ```
+ [Java SE](java-se-platform.md#java-se-options-properties) – `System.getenv`

  ```
  String endpoint = System.getenv("API_ENDPOINT");
  ```
+ [Tomcat](java-tomcat-platform.md#java-tomcat-options-properties) — et `System.getProperty` `System.getenv` 

  Les versions de la plateforme Tomcat publiées le [26 mars 2025](https://docs.aws.amazon.com/elasticbeanstalk/latest/relnotes/release-2025-03-26-windows.html) ou après cette date peuvent également être utilisées `System.getenv` pour accéder aux variables d'environnement en texte brut. Vous pouvez continuer à utiliser pour accéder `System.getProperty` aux variables d'environnement en texte brut. Cependant, les [variables d'environnement stockées sous forme de secrets](AWSHowTo.secrets.env-vars.md) ne sont disponibles qu'à l'aide de`System.getenv`.

  ```
  String endpoint = System.getProperty("API_ENDPOINT");
  ```

  ```
  String endpoint = System.getenv("API_ENDPOINT");
  ```
**Important**  
L'ajout de l'`System.getenv`accès aux variables d'environnement dans les versions de la plateforme Tomcat publiées le [26 mars 2025](https://docs.aws.amazon.com/elasticbeanstalk/latest/relnotes/release-2025-03-26-windows.html) ou après cette date peut provoquer un comportement inattendu dans les applications qui accordent la priorité aux variables d'environnement sur les propriétés du système Java ou lors du passage explicite de à`System.getProperty`. `System.getenv` Pour plus d'informations et les actions recommandées, consultez la section [Utilisation de la plateforme Elastic Beanstalk Tomcat](https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/java-tomcat-platform.html).
+ [.NET Core sous Linux](dotnet-linux-platform.md#dotnet-linux-options-properties) – `Environment.GetEnvironmentVariable`

  ```
  string endpoint = Environment.GetEnvironmentVariable("API_ENDPOINT");
  ```
+ [.NET](create_deploy_NET.container.console.md#dotnet-console-properties) – `appConfig`

  ```
  NameValueCollection appConfig = ConfigurationManager.AppSettings;
  string endpoint = appConfig["API_ENDPOINT"];
  ```
+ [Node.js](create_deploy_nodejs.container.md#nodejs-platform-console-envprops) : `process.env`

  ```
  var endpoint = process.env.API_ENDPOINT
  ```
+ [PHP](create_deploy_PHP.container.md#php-console-properties) – `$_SERVER`

  ```
  $endpoint = $_SERVER['API_ENDPOINT'];
  ```
+ [Python](create-deploy-python-container.md#create-deploy-python-custom-container-envprop) : `os.environ`

  ```
  import os
  endpoint = os.environ['API_ENDPOINT']
  ```
+ [Ruby](create_deploy_Ruby.container.md#create_deploy_Ruby.env.console.ruby.envprops) – `ENV`

  ```
  endpoint = ENV['API_ENDPOINT']
  ```

En dehors du code de l'application, par exemple dans un script exécuté pendant le déploiement, vous pouvez accéder aux propriétés de l'environnement avec le script de plateforme [`get-config`](custom-platforms-scripts.md). Consultez le [elastic-beanstalk-samples](https://github.com/awsdocs/elastic-beanstalk-samples/search?utf8=%E2%9C%93&q=get-config) GitHub référentiel pour des exemples de configurations qui utilisent`get-config`.