

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.

# Configuration globale AWS SDKs et outils
<a name="creds-config-files"></a>

Avec AWS SDKs d'autres AWS outils de développement, tels que le AWS Command Line Interface (AWS CLI), vous pouvez interagir avec le AWS service APIs. Avant d'essayer, vous devez toutefois configurer le SDK ou l'outil avec les informations dont il a besoin pour effectuer l'opération demandée. 

Ces informations incluent les éléments suivants :
+ **Informations d'identification** qui identifient la personne qui appelle l'API. Les informations d'identification sont utilisées pour chiffrer la demande adressée aux AWS serveurs. À l'aide de ces informations, vous AWS confirmez votre identité et pouvez récupérer les politiques d'autorisation qui y sont associées. Il peut ensuite déterminer les actions que vous êtes autorisé à effectuer.
+ **Autres détails de configuration** que vous utilisez pour indiquer au AWS CLI SDK comment traiter la demande, où envoyer la demande (à quel point de terminaison de AWS service) et comment interpréter ou afficher la réponse.

Chaque SDK ou outil prend en charge plusieurs sources que vous pouvez utiliser pour fournir les informations d'identification et de configuration requises. Certaines sources sont propres au SDK ou à l'outil, et vous devez consulter la documentation de cet outil ou de ce SDK pour savoir comment utiliser cette méthode.

Cependant, les outils AWS SDKs et prennent en charge les paramètres courants provenant de sources principales autres que le code lui-même. Cette section couvre les rubriques suivantes :

**Topics**
+ [Utilisation du partage `config` et `credentials` des fichiers pour une configuration globale AWS SDKs et des outils](file-format.md)
+ [Recherche et modification de l'emplacement du partage, des `credentials` fichiers `config` AWS SDKs et des outils](file-location.md)
+ [Utilisation de variables d'environnement pour une configuration globale AWS SDKs et des outils](environment-variables.md)
+ [Utilisation des propriétés du système JVM pour configurer AWS SDK pour Java globalement et AWS SDK pour Kotlin](jvm-system-properties.md)

# Utilisation du partage `config` et `credentials` des fichiers pour une configuration globale AWS SDKs et des outils
<a name="file-format"></a>

Le partage AWS `config` et `credentials` les fichiers constituent le moyen le plus courant de spécifier l'authentification et la configuration d'un AWS SDK ou d'un outil.

Les `credentials` fichiers partagés `config` contiennent un ensemble de profils. Un profil est un ensemble de paramètres de configuration, sous forme de paires clé-valeur, utilisé par AWS SDKs, the AWS Command Line Interface (AWS CLI) et d'autres outils. Les valeurs de configuration sont associées à un profil afin de configurer certains aspects du SDK/tool moment où ce profil est utilisé. Ces fichiers sont « partagés » dans la mesure où les valeurs ont un effet sur les applications, les processus ou SDKs sur l'environnement local d'un utilisateur.

Les fichiers partagés `config` et `credentials` les fichiers sont des fichiers en texte brut contenant uniquement des caractères ASCII (encodés en UTF-8). Ils prennent la forme de ce que l'on appelle généralement des [fichiers INI](https://wikipedia.org/wiki/INI_file).

## Profils
<a name="file-format-profile"></a>

Les paramètres du partage `config` et `credentials` des fichiers sont associés à un profil spécifique. Plusieurs profils peuvent être définis dans le fichier afin de créer différentes configurations de paramètres à appliquer dans différents environnements de développement.

 Le `[default]` profil contient les valeurs utilisées par un SDK ou une opération d'outil si aucun profil nommé spécifique n'est spécifié. Vous pouvez également créer des profils distincts auxquels vous pouvez explicitement faire référence par leur nom. Chaque profil peut utiliser des paramètres et des valeurs différents selon les besoins de votre application et de votre scénario. 

**Note**  
`[default]`est simplement un profil anonyme. Ce profil est nommé `default` car il s'agit du profil par défaut utilisé par le SDK si l'utilisateur ne spécifie aucun profil. Il ne fournit pas de valeurs par défaut héritées aux autres profils. Si vous définissez un élément dans le `[default]` profil et que vous ne le définissez pas dans un profil nommé, la valeur n'est pas définie lorsque vous utilisez le profil nommé. 

### Définissez un profil nommé
<a name="set-named-profile"></a>

Le `[default]` profil et plusieurs profils nommés peuvent exister dans le même fichier. Utilisez le paramètre suivant pour sélectionner les paramètres du profil utilisés par votre SDK ou votre outil lors de l'exécution de votre code. Les profils peuvent également être sélectionnés dans le code ou par commande lorsque vous travaillez avec le AWS CLI. 

Configurez cette fonctionnalité en définissant l'une des options suivantes :

**`AWS_PROFILE`- variable d'environnement**  
Lorsque cette variable d'environnement est définie sur un profil nommé ou « par défaut », tous les codes et AWS CLI commandes du SDK utilisent les paramètres de ce profil.  
Exemple Linux/macOS de définition de variables d'environnement via la ligne de commande :  

```
export AWS_PROFILE="my_default_profile_name";
```
Exemple Windows de définition de variables d'environnement via la ligne de commande :  

```
setx AWS_PROFILE "my_default_profile_name"
```

**`aws.profile`- Propriété du système JVM**  
[Pour le SDK pour Kotlin sur la JVM et le SDK pour Java 2.x, vous pouvez définir la propriété du système. `aws.profile`](jvm-system-properties.md#jvm-sys-props-set) Lorsque le SDK crée un client de service, il utilise les paramètres du profil nommé, sauf si le paramètre est remplacé dans le code. Le SDK pour Java 1.x ne prend pas en charge cette propriété système.

**Note**  
Si votre application se trouve sur un serveur exécutant plusieurs applications, nous vous recommandons de toujours utiliser des profils nommés plutôt que le profil par défaut. Le profil par défaut est automatiquement sélectionné par n'importe quelle AWS application de l'environnement et est partagé entre elles. Ainsi, si quelqu'un d'autre met à jour le profil par défaut de son application, cela peut avoir un impact involontaire sur les autres. Pour éviter cela, définissez un profil nommé dans le `config` fichier partagé, puis utilisez-le dans votre application en définissant le profil nommé dans votre code. Vous pouvez utiliser la variable d'environnement ou la propriété du système JVM pour définir le profil nommé si vous savez que sa portée n'affecte que votre application.

## Format du fichier de configuration
<a name="file-format-config"></a>

Le `config` fichier est organisé en sections. Une section est une collection nommée de paramètres qui continue jusqu’à ce qu’une autre ligne de définition de section soit rencontrée.

Le `config` fichier est un fichier en texte brut qui utilise le format suivant :
+ Toutes les entrées d’une section prennent la forme générale `setting-name=value`.
+ Les lignes peuvent être commentées en commençant par un hashtag (`#`).

### Types de sections
<a name="section-types"></a>

Une définition de section est une ligne qui donne un nom à un ensemble de paramètres. Les lignes de définition de section commencent et se terminent par des crochets (`[``]`). À l'intérieur des crochets, il y a un identifiant de type de section et un nom personnalisé pour la section. Vous pouvez utiliser des lettres, des chiffres, des traits d'union (`-`) et des traits de soulignement (`_`), mais pas d'espaces.

#### Type de section : `default`
<a name="section-default"></a>

Exemple de ligne de définition de section : `[default]`

 `[default]`est le seul profil qui ne nécessite pas l'identifiant de `profile` section. 

L'exemple suivant montre un `config` fichier de base avec un `[default]` profil. Il définit le [`region`](feature-region.md)réglage. Tous les paramètres qui suivent cette ligne, jusqu'à ce qu'une autre définition de section soit trouvée, font partie de ce profil. 

```
[default]
#Full line comment, this text is ignored.
region = us-east-2
```

#### Type de section : `profile`
<a name="section-profile"></a>

Exemple de ligne de définition de section : `[profile dev]`

La ligne de définition de `profile` section est un groupe de configuration nommé que vous pouvez appliquer à différents scénarios de développement. Pour mieux comprendre les profils nommés, consultez la section précédente sur les profils. 

L'exemple suivant montre un `config` fichier avec une ligne de définition de `profile` section et un profil nommé appelé`foo`. Tous les paramètres qui suivent cette ligne, jusqu'à ce qu'une autre définition de section soit trouvée, font partie de ce profil nommé. 

```
[profile foo]
...settings...
```

Certains paramètres possèdent leur propre groupe imbriqué de sous-paramètres, tels que le `s3` paramètre et les sous-paramètres de l'exemple suivant. Associez les sous-paramètres au groupe en les indentant d'un ou de plusieurs espaces.

```
[profile test]
region = us-west-2
s3 =
    max_concurrent_requests=10
    max_queue_size=1000
```

#### Type de section : `sso-session`
<a name="section-session"></a>

Exemple de ligne de définition de section : `[sso-session my-sso]`

La ligne de définition de `sso-session` section nomme un groupe de paramètres que vous utilisez pour configurer un profil afin de résoudre les AWS informations d'identification utilisées AWS IAM Identity Center. Pour plus d'informations sur la configuration de l'authentification unique, consultez[Utilisation d'IAM Identity Center pour authentifier le AWS SDK et les outils](access-sso.md). Un profil est lié à une `sso-session` section par une paire clé-valeur où `sso-session` est la clé et le nom de votre `sso-session` section est la valeur, par exemple. `sso-session = <name-of-sso-session-section>` 

L'exemple suivant configure un profil qui obtiendra des informations d' AWS identification à court terme pour le rôle IAM « SampleRole » dans le compte « 111122223333 » à l'aide d'un jeton du « my-sso ». La section « my-sso » est référencée dans la `sso-session` `profile` section par son nom à l'aide de la `sso-session` clé. 

```
[profile dev]
sso_session = my-sso
sso_account_id = 111122223333
sso_role_name = SampleRole

[sso-session my-sso]
sso_region = us-east-1
sso_start_url = https://my-sso-portal.awsapps.com/start
```

#### Type de section : `services`
<a name="section-services"></a>

Exemple de ligne de définition de section : `[services dev]`

**Note**  
La `services` section prend en charge les personnalisations de point de terminaison spécifiques au service et n'est disponible que dans les SDKs outils qui incluent cette fonctionnalité. Pour savoir si cette fonctionnalité est disponible pour votre SDK, consultez la section relative aux points de terminaison [Support par AWS SDKs et outils](feature-ss-endpoints.md#ss-endpoints-sdk-compat) spécifiques au service.

La ligne de définition de `services` section nomme un groupe de paramètres qui configurent les points de terminaison personnalisés pour les Service AWS demandes. Un profil est lié à une `services` section par une paire clé-valeur où `services` est la clé et le nom de votre `services` section est la valeur, par exemple. `services = <name-of-services-section>` 

 La `services` section est ensuite séparée en sous-sections par des `<SERVICE> = ` lignes, où se `<SERVICE>` trouve la clé d' Service AWS identification. L' Service AWS identifiant est basé sur le modèle d'API `serviceId` en remplaçant tous les espaces par des traits de soulignement et en minuscules toutes les lettres. Pour obtenir la liste de toutes les clés d’identification de service à utiliser dans la section `services`, consultez [Identifiants pour les points de terminaison spécifiques au service](ss-endpoints-table.md). La clé d’identification du service est suivie de paramètres imbriqués, chacun sur sa propre ligne et indenté de deux espaces. 

 L'exemple suivant utilise une `services` définition pour configurer le point de terminaison à utiliser pour les demandes adressées uniquement au Amazon DynamoDB service. La `"local-dynamodb"` `services` section est référencée dans la `profile` section par son nom à l'aide de la `services` clé. La clé Service AWS d'identification est`dynamodb`. La sous-section des Amazon DynamoDB services commence sur la ligne`dynamodb = `. Toutes les lignes indentées qui suivent immédiatement sont incluses dans cette sous-section et s’appliquent à ce service. 

```
[profile dev]
services = local-dynamodb

[services local-dynamodb]
dynamodb = 
  endpoint_url = http://localhost:8000
```

Pour plus d'informations sur la configuration personnalisée des points de terminaison, consultez[Points de terminaison spécifiques au service](feature-ss-endpoints.md).

## Format du fichier d'informations d'identification
<a name="file-format-creds"></a>

Les règles du `credentials` fichier sont généralement identiques à celles du `config` fichier, sauf que les sections du profil ne commencent pas par le mot`profile`. Utilisez uniquement le nom du profil lui-même entre crochets. L'exemple suivant montre un `credentials` fichier dont la section de profil nommée est appelée`foo`. 

```
[foo]
...credential settings...
```

Seuls les paramètres considérés comme « secrets » ou sensibles peuvent être enregistrés dans le `credentials` fichier :`aws_access_key_id`,`aws_secret_access_key`, et`aws_session_token`. Bien que ces paramètres puissent également être placés dans le `config` fichier partagé, nous vous recommandons de conserver ces valeurs sensibles dans un `credentials` fichier distinct. Ainsi, vous pouvez fournir des autorisations distinctes pour chaque fichier, si nécessaire.

L'exemple suivant montre un `credentials` fichier de base avec un `[default]` profil. Il définit les paramètres [`aws_access_key_id``aws_secret_access_key`, et `aws_session_token`](feature-static-credentials.md) globaux.

```
[default]
aws_access_key_id=AKIAIOSFODNN7EXAMPLE
aws_secret_access_key=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
aws_session_token=IQoJb3JpZ2luX2IQoJb3JpZ2luX2IQoJb3JpZ2luX2IQoJb3JpZ2luX2IQoJb3JpZVERYLONGSTRINGEXAMPLE
```

Que vous utilisiez un profil nommé ou un « `default` » dans votre `credentials` fichier, tous les paramètres de ce fichier seront combinés avec ceux de votre `config` fichier qui utilisent le même nom de profil. S’il existe des informations d’identification dans les deux fichiers pour un profil partageant le même nom, les clés du fichier d’informations d’identification ont priorité. 

# Recherche et modification de l'emplacement du partage, des `credentials` fichiers `config` AWS SDKs et des outils
<a name="file-location"></a>

Les fichiers partagés sont AWS `config` des `credentials` fichiers en texte brut contenant des informations de configuration pour les outils AWS SDKs et. Les fichiers résident localement dans votre environnement et sont utilisés automatiquement par le code du SDK ou par AWS CLI les commandes que vous exécutez dans cet environnement. Par exemple, sur votre propre ordinateur ou lors du développement sur une instance Amazon Elastic Compute Cloud. 

Lorsque le SDK ou l'outil s'exécute, il vérifie la présence de ces fichiers et charge tous les paramètres de configuration disponibles. Si les fichiers n'existent pas déjà, un fichier de base est automatiquement créé par le SDK ou l'outil.

Par défaut, les fichiers se trouvent dans un dossier nommé `.aws` qui est placé dans votre dossier `home` ou dans celui de l'utilisateur. 


| Système d’exploitation | Emplacement et nom par défaut des fichiers | 
| --- | --- | 
| Linux et macOS |  `~/.aws/config` `~/.aws/credentials`  | 
| Windows |  `%USERPROFILE%\.aws\config` `%USERPROFILE%\.aws\credentials`  | 

## Résolution du répertoire personnel
<a name="homeDirRes"></a>

`~`n'est utilisé pour la résolution du répertoire personnel que lorsqu'il :
+ Démarre le chemin
+ Est immédiatement suivi par `/` ou par un séparateur spécifique à la plate-forme. Sous Windows, `~/` et `~\` les deux se résolvent dans le répertoire de base. 

Lors de la détermination du répertoire de base, les variables suivantes sont vérifiées :
+ (Toutes les plateformes) La variable d'`HOME`environnement
+ (Plateformes Windows) La variable d'`USERPROFILE`environnement
+ (Plateformes Windows) La concaténation de variables d'`HOMEPATH`environnement `HOMEDRIVE` et de variables d'environnement () `$HOMEDRIVE$HOMEPATH`
+ (Facultatif par SDK ou outil) Fonction ou variable de résolution du chemin d'accueil spécifique au SDK ou à l'outil

Dans la mesure du possible, si le répertoire personnel d'un utilisateur est spécifié au début du chemin (par exemple,`~username/`), il est résolu dans le répertoire personnel du nom d'utilisateur demandé (par exemple,`/home/username/.aws/config`).

## Modifier l'emplacement par défaut de ces fichiers
<a name="file-location-change"></a>

Vous pouvez utiliser l'une des méthodes suivantes pour modifier l'emplacement à partir duquel ces fichiers sont chargés par le SDK ou l'outil.

### Utiliser des variables d'environnement
<a name="file-location-change-envar"></a>

Les variables d'environnement suivantes peuvent être définies pour modifier l'emplacement ou le nom de ces fichiers de la valeur par défaut à une valeur personnalisée :
+ `config`variable d'environnement de fichier : **`AWS_CONFIG_FILE`**
+ `credentials`variable d'environnement de fichier : **`AWS_SHARED_CREDENTIALS_FILE`**

------
#### [ Linux/macOS ]

Vous pouvez spécifier un autre emplacement en exécutant les commandes [d'exportation](https://linuxconfig.org/learning-linux-commands-export) suivantes sous Linux ou macOS.

```
$ export AWS_CONFIG_FILE=/some/file/path/on/the/system/config-file-name
$ export AWS_SHARED_CREDENTIALS_FILE=/some/other/file/path/on/the/system/credentials-file-name
```

------
#### [ Windows ]

Vous pouvez spécifier un autre emplacement en exécutant les commandes [setx](https://docs.microsoft.com/windows-server/administration/windows-commands/setx) suivantes sous Windows.

```
C:\> setx AWS_CONFIG_FILE c:\some\file\path\on\the\system\config-file-name
C:\> setx AWS_SHARED_CREDENTIALS_FILE c:\some\other\file\path\on\the\system\credentials-file-name
```

------

Pour plus d'informations sur la configuration de votre système à l'aide de variables d'environnement, consultez[Utilisation de variables d'environnement pour une configuration globale AWS SDKs et des outils](environment-variables.md).

### Utiliser les propriétés du système JVM
<a name="file-location-change-jvmSysProp"></a>

Pour le SDK pour Kotlin exécuté sur la JVM et pour le SDK for Java 2.x, vous pouvez définir les propriétés du système JVM suivantes pour modifier l'emplacement ou le nom de ces fichiers de la valeur par défaut à une valeur personnalisée :
+ `config`propriété du système JVM de fichiers : **`aws.configFile`**
+ `credentials`variable d'environnement de fichier : **`aws.sharedCredentialsFile`**

Pour obtenir des instructions sur la façon de définir les propriétés du système JVM, consultez[Comment définir les propriétés du système JVM](jvm-system-properties.md#jvm-sys-props-set). Le SDK pour Java 1.x ne prend pas en charge ces propriétés système.

# Utilisation de variables d'environnement pour une configuration globale AWS SDKs et des outils
<a name="environment-variables"></a>

Les variables d'environnement constituent un autre moyen de spécifier les options de configuration et les informations d'identification lors de l'utilisation AWS SDKs d'outils. Les variables d'environnement peuvent être utiles pour créer des scripts ou définir temporairement un profil nommé par défaut. Pour la liste des variables d'environnement prises en charge par la plupart SDKs, consultez[Liste des variables d'environnement](settings-reference.md#EVarSettings).

**Priorité d’options**
+ Si vous spécifiez un paramètre à l'aide de sa variable d'environnement, il remplace toute valeur chargée à partir d'un profil dans le partage AWS `config` et `credentials` les fichiers. 
+ Si vous spécifiez un paramètre à l'aide d'un paramètre sur la ligne de AWS CLI commande, il remplace toute valeur de la variable d'environnement correspondante ou d'un profil du fichier de configuration.

## Comment définir les variables d’environnement
<a name="envvars-set"></a>

Les exemples suivants montrent comment vous pouvez configurer des variables d’environnement pour l’utilisateur par défaut.

------
#### [ Linux, macOS, or Unix ]

```
$ export AWS_ACCESS_KEY_ID=AKIAIOSFODNN7EXAMPLE
$ export AWS_SECRET_ACCESS_KEY=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
$ export AWS_SESSION_TOKEN=AQoEXAMPLEH4aoAH0gNCAPy...truncated...zrkuWJOgQs8IZZaIv2BXIa2R4Olgk
$ export AWS_REGION=us-west-2
```

La définition de la variable d’environnement permet de modifier la valeur utilisée jusqu’à la fin de votre session shell, ou jusqu’à ce que vous définissiez la variable sur une autre valeur. Vous pouvez rendre les variables persistantes dans de futures sessions en les définissant dans votre script de démarrage de shell.

------
#### [ Windows Command Prompt ]

```
C:\> setx AWS_ACCESS_KEY_ID AKIAIOSFODNN7EXAMPLE
C:\> setx AWS_SECRET_ACCESS_KEY wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
C:\> setx AWS_SESSION_TOKEN AQoEXAMPLEH4aoAH0gNCAPy...truncated...zrkuWJOgQs8IZZaIv2BXIa2R4Olgk
C:\> setx AWS_REGION us-west-2
```

L'utilisation `[set](https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/set_1)` pour définir une variable d'environnement modifie la valeur utilisée jusqu'à la fin de la session d'invite de commande en cours ou jusqu'à ce que vous définissiez une valeur différente pour la variable. Le fait [https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/setx](https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/setx)de définir une variable d'environnement modifie la valeur utilisée à la fois dans la session d'invite de commande en cours et dans toutes les sessions d'invite de commandes que vous créez après avoir exécuté la commande. Cela ***n’affecte pas*** les autres shells de commande qui sont déjà en cours d’exécution lorsque vous exécutez la commande.

------
#### [ PowerShell ]

```
PS C:\> $Env:AWS_ACCESS_KEY_ID="AKIAIOSFODNN7EXAMPLE"
PS C:\> $Env:AWS_SECRET_ACCESS_KEY="wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY"
PS C:\> $Env:AWS_SESSION_TOKEN="AQoEXAMPLEH4aoAH0gNCAPy...truncated...zrkuWJOgQs8IZZaIv2BXIa2R4Olgk"
PS C:\> $Env:AWS_REGION="us-west-2"
```

Si vous définissez une variable d'environnement à l' PowerShell invite, comme indiqué dans les exemples précédents, elle enregistre la valeur uniquement pendant la durée de la session en cours. Pour que le paramètre de variable d'environnement soit persistant dans toutes les sessions PowerShell et dans les sessions d'invite de commande, stockez-le à l'aide de l'application **système** du **Panneau de configuration**. Vous pouvez également définir la variable pour toutes les PowerShell sessions futures en l'ajoutant à votre PowerShell profil. Consultez la [PowerShell documentation](https://docs.microsoft.com/powershell/module/microsoft.powershell.core/about/about_environment_variables) pour plus d'informations sur le stockage des variables d'environnement ou leur persistance d'une session à l'autre.

------

## Configuration de variables d'environnement sans serveur
<a name="serverless"></a>

 Si vous utilisez une architecture sans serveur pour le développement, vous disposez d'autres options pour définir les variables d'environnement. En fonction de votre conteneur, vous pouvez utiliser différentes stratégies pour exécuter le code dans ces conteneurs afin de voir et d'accéder aux variables d'environnement, comme dans les environnements non cloud. 

Par exemple, avec AWS Lambda, vous pouvez définir directement des variables d'environnement. Pour plus de détails, consultez la section [Utilisation de variables d' AWS Lambda environnement](https://docs.aws.amazon.com/lambda/latest/dg/configuration-envvars.html) dans le *Guide du AWS Lambda développeur*. 

Dans Serverless Framework, vous pouvez souvent définir des variables d'environnement du SDK dans le `serverless.yml` fichier sous la clé du fournisseur sous le paramètre d'environnement. Pour plus d'informations sur le `serverless.yml` fichier, consultez la section [Paramètres généraux des fonctions](https://www.serverless.com/framework/docs/providers/aws/guide/serverless.yml#general-function-settings) dans la documentation du Serverless Framework. 

Quel que soit le mécanisme que vous utilisez pour définir les variables d'environnement du conteneur, certaines sont réservées par le conteneur, comme celles décrites pour Lambda dans la section Variables [d'environnement d'exécution définies](https://docs.aws.amazon.com/lambda/latest/dg/configuration-envvars.html#configuration-envvars-runtime). Consultez toujours la documentation officielle du conteneur que vous utilisez pour déterminer comment les variables d'environnement sont traitées et s'il existe des restrictions. 

# Utilisation des propriétés du système JVM pour configurer AWS SDK pour Java globalement et AWS SDK pour Kotlin
<a name="jvm-system-properties"></a>

[Les propriétés du système JVM](https://docs.oracle.com/javase/tutorial/essential/environment/sysprop.html) fournissent un autre moyen de spécifier les options de configuration et les informations d'identification pour SDKs celles exécutées sur la JVM, telles que le AWS SDK pour Java et le. AWS SDK pour Kotlin Pour obtenir la liste des propriétés du système JVM prises en charge par SDKs, consultez la section [Référence des paramètres](settings-reference.md#JVMSettings).

**Priorité d’options**
+ Si vous spécifiez un paramètre à l'aide de sa propriété système JVM, il remplace toute valeur trouvée dans les variables d'environnement ou chargée à partir d'un profil dans l'AWS `config` et `credentials` les fichiers partagés.
+ Si vous spécifiez un paramètre à l'aide de sa variable d'environnement, il remplace toute valeur chargée à partir d'un profil dans l'AWS `config` et `credentials` les fichiers partagés.

## Comment définir les propriétés du système JVM
<a name="jvm-sys-props-set"></a>

Vous pouvez définir les propriétés du système JVM de plusieurs manières.

### Sur la ligne de commande
<a name="jvm-sys-props-set-cl"></a>

Définissez les propriétés du système JVM sur la ligne de commande lorsque vous appelez la `java` commande à l'aide du commutateur. `-D` La commande suivante configure le Région AWS globalement pour tous les clients du service, sauf si vous remplacez explicitement la valeur dans le code.

```
java -Daws.region=us-east-1 -jar <your_application.jar> <other_arguments>
```

Si vous devez définir plusieurs propriétés du système JVM, spécifiez le `-D` commutateur plusieurs fois.

### Avec une variable d'environnement
<a name="jvm-sys-props-set-evar"></a>

Si vous ne pouvez pas accéder à la ligne de commande pour appeler la machine virtuelle Java afin d'exécuter votre application, vous pouvez utiliser la variable d'`JAVA_TOOL_OPTIONS`environnement pour configurer les options de ligne de commande. Cette approche est utile dans des situations telles que l'exécution d'une AWS Lambda fonction sur le runtime Java ou l'exécution de code dans une machine virtuelle Java intégrée.

L'exemple suivant configure le Région AWS globalement pour tous les clients du service, sauf si vous remplacez explicitement la valeur dans le code.

------
#### [ Linux, macOS, or Unix ]

```
$ export JAVA_TOOL_OPTIONS="-Daws.region=us-east-1"
```

La définition de la variable d’environnement permet de modifier la valeur utilisée jusqu’à la fin de votre session shell, ou jusqu’à ce que vous définissiez la variable sur une autre valeur. Vous pouvez rendre les variables persistantes dans de futures sessions en les définissant dans votre script de démarrage de shell.

------
#### [ Windows Command Prompt ]

```
C:\> setx JAVA_TOOL_OPTIONS -Daws.region=us-east-1
```

L'utilisation `[set](https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/set_1)` pour définir une variable d'environnement modifie la valeur utilisée jusqu'à la fin de la session d'invite de commande en cours ou jusqu'à ce que vous définissiez une valeur différente pour la variable. Le fait [https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/setx](https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/setx)de définir une variable d'environnement modifie la valeur utilisée à la fois dans la session d'invite de commande en cours et dans toutes les sessions d'invite de commandes que vous créez après avoir exécuté la commande. Cela ***n’affecte pas*** les autres shells de commande qui sont déjà en cours d’exécution lorsque vous exécutez la commande.

------

### Au moment de l'exécution
<a name="jvm-sys-props-set-runtime"></a>

Vous pouvez également définir les propriétés du système JVM lors de l'exécution dans le code en utilisant la `System.setProperty` méthode illustrée dans l'exemple suivant.

```
System.setProperty("aws.region", "us-east-1");
```

**Important**  
Définissez les propriétés du système JVM *avant* d'initialiser les clients du service SDK, sinon les clients de service peuvent utiliser d'autres valeurs.