Propriétés de l'environnement et autres paramètres de logiciel - AWS Elastic Beanstalk

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.

Propriétés de l'environnement et autres paramètres de logiciel

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 (AmazonEC2) qui exécutent votre application. Vous pouvez configurer les propriétés de l'environnement, AWS X-Ray le débogage, le stockage et le streaming des journaux d'instance, et les paramètres spécifiques à la plate-forme.

Configurer les paramètres spécifiques à la plateforme

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 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, puis dans la liste des régions, sélectionnez votre Région AWS.

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

    Note

    Si vous avez plusieurs environnements, utilisez la barre de recherche pour filtrer la liste des environnements.

  3. Dans le panneau de navigation, choisissez Configuration.

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

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

  6. 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 :

Configuration des propriétés de l'environnement (variables d'environnement)

Vous pouvez utiliser des propriétés d'environnement (également appelées variables d'environnement) pour transmettre des secrets, des points de terminaison, des paramètres de débogage et d'autres informations à votre application. Les propriétés d'environnement vous aident à exécuter votre application dans plusieurs environnements et pour différents objectifs tels que le développement, le test, la phase intermédiaire et la production.

En outre, lorsque vous ajoutez une base de données à votre environnement, Elastic Beanstalk définit les propriétés d'environnement, comme RDS_HOSTNAME, que vous pouvez lire dans le code de votre application pour construire un objet ou une chaîne de connexion.

Variables d'environnement

Dans la plupart des cas, les propriétés d'environnement sont transmises à votre application sous forme de variables d'environnement, mais le comportement dépend de la plateforme. Par exemple, la plateforme Java SE définit des variables d'environnement que vous récupérez avec System.getenv, tandis que la plateforme Tomcat définit des propriétés système Java que vous récupérez avec System.getProperty. En général, les propriétés ne sont pas visibles si vous vous connectez à une instance et exécutez env.

Pour configurer les propriétés d'environnement dans la console Elastic Beanstalk
  1. Ouvrez la console Elastic Beanstalk, puis dans la liste des régions, sélectionnez votre Région AWS.

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

    Note

    Si vous avez plusieurs environnements, utilisez la barre de recherche pour filtrer la liste des environnements.

  3. Dans le panneau de navigation, choisissez Configuration.

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

  5. Faites défiler la page jusqu'à Propriétés de l'environnement.

  6. Sélectionnez Ajouter une propriété d'environnement.

  7. Saisissez les paires Nom et Valeur de la propriété.

  8. Si vous devez ajouter d'autres variables, répétez l'étape 6 et l'étape 7.

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

Vous pouvez utiliser un fichier de configuration 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 ou s'appliquer à toutes les plateformes 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 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 pour définir les propriétés de l'environnement.

Exemple .ebextensions/options.config
option_settings: aws:elasticbeanstalk:application:environment: API_ENDPOINT: www.example.com/api

Si vous utilisez des fichiers de configuration ou AWS CloudFormation modèles pour créer des ressources personnalisées, vous pouvez utiliser un AWS CloudFormation fonction permettant d'obtenir des informations sur la ressource et de l'attribuer dynamiquement à une propriété d'environnement lors du déploiement. L'exemple suivant, tiré du elastic-beanstalk-samples GitHub référentiel, utilise la fonction Ref pour obtenir le nom ARN d'une SNS rubrique Amazon créée et l'affecte à une propriété d'environnement nomméeNOTIFICATION_TOPIC.

Remarques
  • Si vous utilisez un AWS 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 pour confirmer les valeurs des propriétés d'environnement disponibles pour votre application.

  • La plateforme Docker Multicontainer n'utilise pas AWS CloudFormation pour créer des ressources de conteneurs. Par conséquent, cette plate-forme ne prend pas en charge la définition des propriétés de l'environnement à l'aide de AWS CloudFormation fonctions.

Exemple .Ebextensions/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 des informations à partir de AWS CloudFormation pseudo-paramètres. Cet exemple obtient la région actuelle et l'affecte à une propriété nommée AWS_REGION.

Exemple .Ebextensions/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 :

Elastic Beanstalk fournit de nombreuses options de configuration pour personnaliser votre environnement. Outre les fichiers de configuration, vous pouvez également définir les options de configuration à l'aide de la console, des configurations enregistrées, de l'EB CLI ou du AWS CLI. Voir Options de configuration pour plus d'informations.

Accès aux propriétés de l'environnement

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.

  • Goos.Getenv

    endpoint := os.Getenv("API_ENDPOINT")
  • Java SESystem.getenv

    String endpoint = System.getenv("API_ENDPOINT");
  • Tomcat : System.getProperty

    String endpoint = System.getProperty("API_ENDPOINT");
  • . NETCore sous LinuxEnvironment.GetEnvironmentVariable

    string endpoint = Environment.GetEnvironmentVariable("API_ENDPOINT");
  • .NETappConfig

    NameValueCollection appConfig = ConfigurationManager.AppSettings; string endpoint = appConfig["API_ENDPOINT"];
  • Node.js : process.env

    var endpoint = process.env.API_ENDPOINT
  • PHP$_SERVER

    $endpoint = $_SERVER['API_ENDPOINT'];
  • Python : os.environ

    import os endpoint = os.environ['API_ENDPOINT']
  • RubyENV

    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. Consultez le elastic-beanstalk-samples GitHub référentiel pour des exemples de configurations qui utilisentget-config.