

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Configuración AWS SDKs y herramientas globales
<a name="creds-config-files"></a>

Con AWS SDKs otras herramientas para AWS desarrolladores, como AWS Command Line Interface (AWS CLI), puede interactuar con el AWS servicio APIs. Sin embargo, antes de intentarlo, debes configurar el SDK o la herramienta con la información necesaria para realizar la operación solicitada. 

La información incluye los siguientes elementos:
+ **Información de credenciales** que identifica quién llama a la API. Las credenciales se utilizan para cifrar la solicitud a los AWS servidores. Con esta información, AWS confirma su identidad y puede recuperar las políticas de permisos asociadas a ella. Luego, puede determinar qué acciones puedes realizar.
+ **Otros detalles de configuración** que se utilizan para indicar al SDK AWS CLI o al software cómo procesar la solicitud, dónde enviarla (a qué punto final del AWS servicio) y cómo interpretar o mostrar la respuesta.

Cada SDK o herramienta admite varias fuentes que puede utilizar para proporcionar las credenciales y la información de configuración necesarias. Algunas fuentes son exclusivas del SDK o la herramienta, y debes consultar la documentación de esa herramienta o SDK para obtener más información sobre cómo usar ese método.

Sin embargo, las herramientas AWS SDKs y las herramientas admiten configuraciones comunes de fuentes primarias más allá del propio código. Esta sección abarca los siguientes temas:

**Topics**
+ [Uso de `credentials` archivos `config` y compartidos para configurar AWS SDKs y herramientas de forma global](file-format.md)
+ [Buscar y cambiar la ubicación de los `credentials` archivos compartidos `config` AWS SDKs y las herramientas](file-location.md)
+ [Uso de variables de entorno para configurar AWS SDKs y herramientas de forma global](environment-variables.md)
+ [Uso de las propiedades del sistema JVM para configurar AWS SDK para Java globalmente y AWS SDK para Kotlin](jvm-system-properties.md)

# Uso de `credentials` archivos `config` y compartidos para configurar AWS SDKs y herramientas de forma global
<a name="file-format"></a>

Los `credentials` archivos AWS `config` y compartidos son la forma más común de especificar la autenticación y la configuración de un AWS SDK o una herramienta.

Los archivos `config` y `credentials` compartidos contienen un conjunto de perfiles. Un perfil es un conjunto de opciones de configuración, en pares clave-valor, que utilizan AWS SDKs, the AWS Command Line Interface (AWS CLI) y otras herramientas. Los valores de configuración se adjuntan a un perfil para configurar algún aspecto del uso SDK/tool de ese perfil. Estos archivos se «comparten», ya que los valores se aplican a cualquier aplicación, proceso o SDKs entorno local del usuario.

Tanto los archivos compartidos `config` como `credentials` son archivos de texto sin formato que contienen únicamente caracteres ASCII (codificados en UTF-8). Adoptan la forma de lo que generalmente se denomina [archivos INI](https://wikipedia.org/wiki/INI_file).

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

Los ajustes de los archivos compartidos `config` y `credentials` están asociados a un perfil específico. Se pueden definir varios perfiles en el archivo para crear diferentes ajustes de configuración y aplicarlas en diferentes entornos de desarrollo.

 El perfil `[default]` contiene los valores que utiliza un SDK o una operación de herramienta si no se especifica un perfil con nombre específico. También puede crear perfiles independientes a los que pueda hacer referencia de forma explícita por su nombre. Cada perfil puede usar diferentes configuraciones y valores según lo necesite la aplicación y la situación. 

**nota**  
`[default]` es simplemente un perfil sin nombre. Este perfil recibe su nombre `default` porque es el perfil predeterminado que usa el SDK si el usuario no especifica ningún perfil. No proporciona valores predeterminados heredados a otros perfiles. Si establece algo en el perfil `[default]` y no lo establece en un perfil con nombre, el valor no se establece cuando usa el perfil con nombre. 

### Establezca un perfil con nombre
<a name="set-named-profile"></a>

El perfil `[default]` y varios perfiles con nombre pueden existir en el mismo archivo. Use la siguiente configuración para seleccionar qué configuración de perfil usará su SDK o herramienta al ejecutar el código. Los perfiles también se pueden seleccionar dentro del código o por comando cuando se trabaja con la AWS CLI. 

Configure esta funcionalidad mediante los siguientes ajustes:

**`AWS_PROFILE`- variable de entorno**  
Cuando esta variable de entorno se establece en un perfil con nombre o «predeterminado», todos los AWS CLI comandos y códigos del SDK utilizan la configuración de ese perfil.  
Ejemplo de configuración de variables de entorno en Linux/macOS mediante la línea de comandos:  

```
export AWS_PROFILE="my_default_profile_name";
```
Ejemplo de configuración de variables de entorno en Windows mediante la línea de comandos:  

```
setx AWS_PROFILE "my_default_profile_name"
```

**`aws.profile`: propiedad del sistema JVM**  
Para el SDK para Kotlin en la JVM y el SDK para Java 2.x, puede [establecer la propiedad del sistema `aws.profile`](jvm-system-properties.md#jvm-sys-props-set). Cuando el SDK cree un cliente de servicio, utiliza la configuración del perfil indicado, a menos que la configuración se anule en el código. El SDK para Java 1.x no admite esta propiedad del sistema.

**nota**  
Si su aplicación está en un servidor que ejecuta varias aplicaciones, le recomendamos que utilice siempre perfiles con nombre en lugar del perfil predeterminado. El perfil predeterminado lo selecciona automáticamente cualquier AWS aplicación del entorno y lo comparte entre ellas. Por lo tanto, si otra persona actualiza el perfil predeterminado de su aplicación, puede afectar involuntariamente a los demás. Para evitarlo, defina un perfil con nombre en el archivo `config` compartido y, a continuación, utilice ese perfil con nombre en su aplicación configurándolo en su código. Puede usar la variable de entorno o la propiedad del sistema JVM para establecer el perfil con nombre si sabe que su alcance solo afecta a su aplicación.

## Formato del archivo de configuración
<a name="file-format-config"></a>

El archivo `config` está organizado en secciones. Una sección es una colección con nombre de configuraciones y continúa hasta que se encuentra otra línea de definición de sección.

El archivo `config` es un archivo de texto sin formato que utiliza el formato siguiente:
+ Todas las entradas de una sección adoptan el formato general de `setting-name=value`.
+ Las líneas se pueden comentar si se inician con un carácter de almohadilla (`#`).

### Tipo de sección
<a name="section-types"></a>

La definición de una sección es una línea que aplica un nombre a un conjunto de ajustes. Las líneas de definición de sección comienzan y terminan con corchetes (`[` `]`). Dentro de los corchetes, hay un identificador de tipo de sección y un nombre personalizado para la sección. Puede utilizar letras, números, guiones (`-`) y guiones bajos (`_`), pero no espacios.

#### Tipo de sección: `default`
<a name="section-default"></a>

Ejemplo de línea de definición de sección: `[default]`

 `[default]` es el único perfil que no requiere el identificador de sección `profile`. 

En el siguiente ejemplo, se muestra un archivo `config` con un perfil `[default]`. Establece la configuración [`region`](feature-region.md). Todos los ajustes que sigan esta línea, hasta que se encuentre otra definición de sección, se incluirán en este perfil. 

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

#### Tipo de sección: `profile`
<a name="section-profile"></a>

Ejemplo de línea de definición de sección: `[profile dev]`

La línea de definición de la sección `profile` es una agrupación de configuración con nombre que se puede aplicar a diferentes escenarios de desarrollo. Para conocer mejor los perfiles con nombre, consulte la sección anterior sobre Perfiles. 

El siguiente ejemplo muestra un archivo `config` con una línea de definición de sección `profile` y un perfil con nombre llamado `foo`. Todos los ajustes que sigan esta línea, hasta que se encuentre otra definición de sección, se incluirán en este perfil con nombre. 

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

Algunas configuraciones tienen su propio grupo anidado de subconfiguraciones, como la configuración `s3` y las subconfiguraciones del siguiente ejemplo. Para asociar los subajustes al grupo, indéntelos con uno o más espacios.

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

#### Tipo de sección: `sso-session`
<a name="section-session"></a>

Ejemplo de línea de definición de sección: `[sso-session my-sso]`

La línea de definición de la `sso-session` sección indica un grupo de ajustes que se utilizan para configurar un perfil con el que resolver AWS las credenciales AWS IAM Identity Center. Para obtener más información sobre la configuración de la autenticación de inicio de sesión único, consulte [Uso del Centro de identidades de IAM para autenticar el AWS SDK y las herramientas](access-sso.md). Un perfil está vinculado a una sección `sso-session` mediante un par clave-valor en el que `sso-session` es la clave y el nombre de la sección `sso-session` es el valor, como `sso-session = <name-of-sso-session-section>`. 

En el siguiente ejemplo, se configura un perfil que obtendrá AWS credenciales a corto plazo para el rol de IAM en la cuenta «111122223333" mediante un token de «my-sso». SampleRole La sección “my-sso” `sso-session` se menciona en la sección `profile` por su nombre mediante la clave `sso-session`. 

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

#### Tipo de sección: `services`
<a name="section-services"></a>

Ejemplo de línea de definición de sección: `[services dev]`

**nota**  
La `services` sección admite personalizaciones de terminales específicas del servicio y solo está disponible en las herramientas que incluyen esta función. SDKs Para ver si esta característica está disponible para tu SDK, consulta [Support by AWS SDKs and tools](feature-ss-endpoints.md#ss-endpoints-sdk-compat) para encontrar los puntos de conexión específicos del servicio.

La línea de definición de la `services` sección indica un grupo de ajustes que configuran puntos de enlace personalizados para las solicitudes. Servicio de AWS Un perfil está vinculado a una sección `services` mediante un par clave-valor en el que `services` es la clave y el nombre de la sección `services` es el valor, como `services = <name-of-services-section>`. 

 Además, la `services` sección está separada en subsecciones por `<SERVICE> = ` líneas, donde `<SERVICE>` está la Servicio de AWS clave identificadora. El Servicio de AWS identificador se basa en el modelo de la API, sustituyendo todos los espacios `serviceId` por guiones bajos y minúsculas todas las letras. Para obtener una lista de todas las claves de identificación de servicio que se van a utilizar en la sección de `services`, consulte [Identificadores de punto de conexión específicos del servicio](ss-endpoints-table.md). La clave del identificador del servicio va seguida de configuraciones anidadas, cada una en su propia línea y marcada con dos espacios. 

 En el siguiente ejemplo, se utiliza una definición de `services` para configurar el punto de conexión que se utilizará únicamente en las solicitudes realizadas únicamente al servicio Amazon DynamoDB . La sección `"local-dynamodb"` de `services` se menciona en la sección `profile` por su nombre mediante la clave `services`. La clave del Servicio de AWS identificador es. `dynamodb` La subsección de Amazon DynamoDB servicio comienza en la línea`dynamodb = `. Todas las líneas inmediatamente siguientes que estén sangradas se incluyen en esa subsección y se aplican a ese servicio. 

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

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

Para obtener más información sobre la configuración de punto de conexión, consulte [Puntos de conexión específicos del servicio](feature-ss-endpoints.md).

## Formato del archivo de credenciales
<a name="file-format-creds"></a>

Por lo general, las reglas del archivo `credentials` son idénticas a las del archivo `config`, con la salvedad de que las secciones del perfil no comienzan por la palabra “`profile`”. Utilice únicamente el nombre exclusivo del perfil entre corchetes. El siguiente ejemplo muestra un archivo `credentials` con una línea de definición de sección de perfil llamada `foo`. 

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

En el archivo `credentials` solo se pueden almacenar las siguientes configuraciones que se consideran “secretas” o confidenciales: `aws_access_key_id`, `aws_secret_access_key` y`aws_session_token`. Si bien estas configuraciones también se pueden colocar en el archivo `config` compartido, le recomendamos que mantenga estos valores confidenciales en un archivo `credentials` independiente. De esta forma, puede proporcionar permisos independientes para cada archivo, si es necesario.

En el siguiente ejemplo, se muestra un archivo `credentials` con un perfil `[default]`. Establece la configuración global de [`aws_access_key_id`, `aws_secret_access_key` y `aws_session_token`](feature-static-credentials.md).

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

Independientemente de si utiliza un perfil específico o “`default`“ en el archivo `config`, cualquier configuración que aparezca aquí se combinará con la configuración del archivo `credentials` que utilice el mismo nombre de perfil. Si hay credenciales en ambos archivos para un perfil que comparte el mismo nombre, las claves del archivo de credenciales tienen prioridad. 

# Buscar y cambiar la ubicación de los `credentials` archivos compartidos `config` AWS SDKs y las herramientas
<a name="file-location"></a>

Los `credentials` archivos AWS `config` y compartidos son archivos de texto sin formato que contienen información de configuración de las herramientas AWS SDKs y. Los archivos residen localmente en su entorno y el código del SDK o los AWS CLI comandos que ejecuta en ese entorno los utilizan automáticamente. Por ejemplo, en su propia computadora o al desarrollar en una instancia de Amazon Elastic Compute Cloud. 

Cuando se ejecuta el SDK o la herramienta, comprueba estos archivos y carga todos los ajustes de configuración disponibles. Si los archivos aún no existen, el SDK o la herramienta crea automáticamente un archivo básico.

De forma predeterminada, los archivos se encuentran en una carpeta con el nombre `.aws` que se encuentra en su carpeta `home` o en la de usuario. 


| Sistema operativo | Ubicación y nombre predeterminados de los archivos | 
| --- | --- | 
| Linux y macOS |  `~/.aws/config` `~/.aws/credentials`  | 
| Windows |  `%USERPROFILE%\.aws\config` `%USERPROFILE%\.aws\credentials`  | 

## Resolución del directorio de inicio
<a name="homeDirRes"></a>

`~` solo se utiliza para la resolución del directorio principal cuando:
+ Inicia la ruta
+ Va seguido inmediatamente por `/` o un separador específico de la plataforma. En Windows, tanto `~/` como `~\` se resuelven en el directorio de inicio. 

Al determinar el directorio de inicio, se comprueban las siguientes variables:
+ (Todas las plataformas) La variable de entorno `HOME`
+ (Plataformas Windows) La variable de entorno `USERPROFILE`
+ (Plataformas Windows) La concatenación de las variables de entorno `HOMEDRIVE` y `HOMEPATH` (`$HOMEDRIVE$HOMEPATH`)
+ (Opcional según el SDK o la herramienta) Una función o variable de resolución de la ruta de inicio específica del SDK o de la herramienta

Cuando sea posible, si el directorio principal de un usuario se especifica al principio de la ruta (por ejemplo, `~username/`), se resuelve en el directorio principal del nombre de usuario solicitado (por ejemplo, `/home/username/.aws/config`).

## Cambiar la ubicación predeterminada de estos archivos
<a name="file-location-change"></a>

Puede usar cualquiera de las siguientes opciones para anular el lugar desde el que el SDK o la herramienta cargan estos archivos.

### Utilización de variables de entorno
<a name="file-location-change-envar"></a>

Se pueden configurar las siguientes variables de entorno para cambiar la ubicación o el nombre de estos archivos del valor predeterminado a un valor personalizado:
+ Variable de entorno de archivo `config`: **`AWS_CONFIG_FILE`**
+ Variable de entorno de archivo `credentials`: **`AWS_SHARED_CREDENTIALS_FILE`**

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

Puede especificar una ubicación alternativa ejecutando los siguientes comandos de [export](https://linuxconfig.org/learning-linux-commands-export) en Linux o 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 ]

Puede especificar una ubicación alternativa ejecutando los siguientes comandos de [setx](https://docs.microsoft.com/windows-server/administration/windows-commands/setx) en 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
```

------

Para obtener más información acerca de la configuración del sistema con variables de entorno, consulte [Uso de variables de entorno para configurar AWS SDKs y herramientas de forma global](environment-variables.md).

### Uso de las propiedades del sistema JVM
<a name="file-location-change-jvmSysProp"></a>

Para el SDK de Kotlin que se ejecuta en JVM y el SDK de Java 2.x, puede configurar las siguientes propiedades del sistema JVM para cambiar la ubicación o el nombre de estos archivos del valor predeterminado a un valor personalizado:
+ Propiedad del sistema JVM del archivo `config`: **`aws.configFile`**
+ Variable de entorno de archivo `credentials`: **`aws.sharedCredentialsFile`**

Para obtener instrucciones sobre cómo configurar las propiedades del sistema JVM, consulte [Cómo establecer propiedades del sistema JVM](jvm-system-properties.md#jvm-sys-props-set). El SDK para Java 1.x no admite estas propiedades del sistema.

# Uso de variables de entorno para configurar AWS SDKs y herramientas de forma global
<a name="environment-variables"></a>

Las variables de entorno proporcionan otra forma de especificar las opciones de configuración y las credenciales al utilizar AWS SDKs las herramientas. Las variables de entorno pueden ser útiles para crear scripts o configurar temporalmente un perfil con nombre como predeterminado. Para ver la lista de variables de entorno compatibles con la mayoría SDKs, consulte[Lista de variables de entorno](settings-reference.md#EVarSettings).

**Prioridad de las opciones**
+ Si especifica una configuración mediante su variable de entorno, anulará cualquier valor cargado desde un perfil en los `credentials` archivos AWS `config` AND compartidos. 
+ Si especifica una configuración mediante un parámetro de la línea de AWS CLI comandos, anulará cualquier valor de la variable de entorno correspondiente o de un perfil del archivo de configuración.

## Cómo configurar las variables de entorno
<a name="envvars-set"></a>

En los siguientes ejemplos se muestra cómo se pueden configurar las variables de entorno para el usuario predeterminado.

------
#### [ 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 configuración de la variable de entorno cambia el valor usado hasta el final de su sesión del intérprete de comandos o hasta que otorgue a la variable un valor diferente. Puede hacer que las variables persistan en sesiones futuras configurándolas en el script de startup del intérprete de comandos.

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

El uso de `[set](https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/set_1)` para configurar una variable de entorno cambia el valor usado hasta que finalice la sesión de símbolo del sistema actual o hasta que otorgue a la variable un valor diferente. El uso de [https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/setx](https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/setx) para establecer una variable de entorno cambia el valor usado en la sesión de símbolo del sistema actual y en todas las sesiones de símbolo del sistema que cree después de ejecutar el comando. La operación ***no*** afecta a otros comandos del shell que ya se están ejecutando en el momento de ejecutar el comando.

------
#### [ 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 establece una variable de entorno en la PowerShell línea de comandos, como se muestra en los ejemplos anteriores, guardará el valor únicamente durante la sesión actual. Para que la configuración de la variable de entorno sea persistente en todas las sesiones PowerShell y en las de Command Prompt, guárdela mediante la aplicación **Sistema del** **Panel de control**. Como alternativa, puede configurar la variable para todas las PowerShell sesiones futuras añadiéndola a su PowerShell perfil. Consulte la [PowerShell documentación](https://docs.microsoft.com/powershell/module/microsoft.powershell.core/about/about_environment_variables) para obtener más información sobre cómo almacenar variables de entorno o cómo conservarlas en todas las sesiones.

------

## Configuración de variables de entorno sin servidor
<a name="serverless"></a>

 Si utiliza una arquitectura sin servidor para el desarrollo, tiene otras opciones para configurar las variables de entorno. En función del contenedor, puede usar diferentes estrategias para que el código que se ejecute en esos contenedores pueda ver las variables de entorno y acceder a ellas, de forma similar a lo que ocurre en los entornos que no son de nube. 

Por ejemplo, con AWS Lambda, puede configurar directamente las variables de entorno. Para obtener más información, consulte [Uso de variables de AWS Lambda entorno](https://docs.aws.amazon.com/lambda/latest/dg/configuration-envvars.html) en la *Guía para AWS Lambda desarrolladores*. 

En Serverless Framework, a menudo puede configurar las variables de entorno del SDK en el archivo `serverless.yml`, en la clave del proveedor, en la pestaña de configuración del entorno. Para obtener información sobre el archivo `serverless.yml`, consulte la [configuración general de las funciones](https://www.serverless.com/framework/docs/providers/aws/guide/serverless.yml#general-function-settings) en la documentación de Serverless Framework. 

Independientemente del mecanismo que utilice para establecer las variables de entorno del contenedor, hay algunas que están reservadas por el contenedor, como las documentadas para Lambda en las variables de [entorno de tiempo de ejecución definidas](https://docs.aws.amazon.com/lambda/latest/dg/configuration-envvars.html#configuration-envvars-runtime). Consulte siempre la documentación oficial del contenedor que utilice para determinar cómo se tratan las variables de entorno y si hay alguna restricción. 

# Uso de las propiedades del sistema JVM para configurar AWS SDK para Java globalmente y AWS SDK para Kotlin
<a name="jvm-system-properties"></a>

[Las propiedades del sistema JVM](https://docs.oracle.com/javase/tutorial/essential/environment/sysprop.html) proporcionan otra forma de especificar las opciones de configuración y las credenciales para SDKs que se ejecuten en la JVM, como la y la AWS SDK para Java . AWS SDK para Kotlin[Para obtener una lista de las propiedades del sistema JVM compatibles con SDKs, consulte la referencia de configuración.](settings-reference.md#JVMSettings)

**Prioridad de las opciones**
+ Si especifica una configuración mediante el uso de la propiedad de su sistema JVM, esto anula los valores que se encuentran en las variables del entorno o cualquier valor cargado desde un perfil en los archivos `config` y `credentials` de AWS compartidos.
+ Si especifica una configuración mediante su variable de entorno, esta anulará cualquier valor cargado desde un perfil en los archivos `config` y `credentials` de AWS compartidos.

## Cómo establecer propiedades del sistema JVM
<a name="jvm-sys-props-set"></a>

Puede definir las propiedades del sistema JVM de varias maneras.

### En la línea de comando
<a name="jvm-sys-props-set-cl"></a>

Establezca las propiedades del sistema JVM en la línea de comandos al invocar el comando `java` mediante el conmutador `-D`. El siguiente comando lo configura Región de AWS globalmente para todos los clientes del servicio, a menos que se anule explícitamente el valor del código.

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

Si necesita establecer varias propiedades del sistema JVM, especifique el conmutador `-D` varias veces.

### Con una variable de entorno
<a name="jvm-sys-props-set-evar"></a>

Si no puede acceder a la línea de comandos para invocar JVM para ejecutar la aplicación, puede usar la variable de entorno `JAVA_TOOL_OPTIONS` para configurar las opciones de la línea de comandos. Este enfoque resulta útil en situaciones como la ejecución de una función AWS Lambda en el tiempo de ejecución de Java o la ejecución de un código en una JVM incrustada.

En el siguiente ejemplo, se configura Región de AWS globalmente para todos los clientes del servicio, a menos que se anule explícitamente el valor del código.

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

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

La configuración de la variable de entorno cambia el valor usado hasta el final de su sesión del intérprete de comandos o hasta que otorgue a la variable un valor diferente. Puede hacer que las variables persistan en sesiones futuras configurándolas en el script de startup del intérprete de comandos.

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

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

El uso de `[set](https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/set_1)` para configurar una variable de entorno cambia el valor usado hasta que finalice la sesión de símbolo del sistema actual o hasta que otorgue a la variable un valor diferente. El uso de [https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/setx](https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/setx) para establecer una variable de entorno cambia el valor usado en la sesión de símbolo del sistema actual y en todas las sesiones de símbolo del sistema que cree después de ejecutar el comando. La operación ***no*** afecta a otros comandos del shell que ya se están ejecutando en el momento de ejecutar el comando.

------

### En el tiempo de ejecución
<a name="jvm-sys-props-set-runtime"></a>

También puede establecer las propiedades del sistema JVM en el tiempo de ejecución en el código mediante el método `System.setProperty` que se muestra en el ejemplo siguiente.

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

**importante**  
Establezca las propiedades del sistema JVM *antes* de inicializar los clientes del servicio del SDK; de lo contrario, los clientes del servicio podrían utilizar otros valores.