

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Configuração AWS SDKs e ferramentas globais
<a name="creds-config-files"></a>

Com AWS SDKs outras ferramentas de AWS desenvolvedor, como a AWS Command Line Interface (AWS CLI), você pode interagir com o AWS serviço APIs. Antes de tentar isso, no entanto, você deve configurar o SDK ou a ferramenta com as informações necessárias para realizar a operação solicitada. 

Essas informações incluem os seguintes itens:
+ **Informações de credenciais** que identificam quem está chamando a API. As credenciais são usadas para criptografar a solicitação para os AWS servidores. Usando essas informações, AWS confirma sua identidade e pode recuperar as políticas de permissões associadas a ela. Em seguida, ele pode determinar quais ações você tem permissão para realizar.
+ **Outros detalhes de configuração** que você usa para informar ao SDK AWS CLI ou ao SDK como processar a solicitação, para onde enviar a solicitação (para qual endpoint de AWS serviço) e como interpretar ou exibir a resposta.

Cada SDK ou ferramenta oferece suporte a várias fontes que você pode usar para fornecer as informações de credenciais e de configuração necessárias. Algumas fontes são exclusivas do SDK ou da ferramenta, e você deve consultar a documentação dessa ferramenta ou do SDK para obter detalhes sobre como usar esse método.

No entanto, as ferramentas AWS SDKs e oferecem suporte a configurações comuns de fontes primárias além do próprio código. Esta seção abrange os seguintes tópicos:

**Topics**
+ [Usando `credentials` arquivos compartilhados `config` para configurar AWS SDKs e ferramentas globalmente](file-format.md)
+ [Localizando e alterando a localização dos arquivos compartilhados, dos `credentials` arquivos `config` AWS SDKs e das ferramentas](file-location.md)
+ [Usando variáveis de ambiente para configuração AWS SDKs e ferramentas globais](environment-variables.md)
+ [Usando propriedades do sistema JVM para configurar e AWS SDK para Java AWS SDK para Kotlin](jvm-system-properties.md)

# Usando `credentials` arquivos compartilhados `config` para configurar AWS SDKs e ferramentas globalmente
<a name="file-format"></a>

O compartilhamento AWS `config` e `credentials` os arquivos são a forma mais comum de especificar a autenticação e a configuração em um AWS SDK ou ferramenta.

Os arquivos compartilhados `config` e `credentials` contêm um conjunto de perfis. Um perfil é um conjunto de definições de configuração, em pares chave-valor, usado pelo AWS SDKs AWS Command Line Interface (AWS CLI) e por outras ferramentas. Os valores de configuração são anexados a um perfil para configurar algum aspecto do SDK/tool quando esse perfil é usado. Esses arquivos são “compartilhados”, pois os valores entram em vigor em qualquer aplicativo, processo ou SDKs no ambiente local de um usuário.

Tanto os arquivos `config` quanto `credentials` compartilhados são arquivos de texto simples que contêm somente caracteres ASCII (codificados em UTF-8). Eles assumem a forma do que geralmente é chamado de [arquivos INI](https://wikipedia.org/wiki/INI_file).

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

As configurações nos arquivos `config` e `credentials` compartilhados estão associadas a um perfil específico. Vários perfis podem ser definidos no arquivo para criar diferentes configurações que serão aplicadas em diferentes ambientes de desenvolvimento.

 O perfil `[default]` contém os valores que são usados por uma operação de SDK ou ferramenta se um perfil nomeado específico não for especificado. Você também pode criar perfis separados aos quais você pode referenciar explicitamente pelo nome. Cada perfil pode usar configurações e valores diferentes conforme necessário para a aplicação e o cenário. 

**nota**  
`[default]` é simplesmente um perfil sem nome. Esse perfil é nomeado `default` porque é o perfil padrão usado pelo SDK se o usuário não especificar um perfil. Ele não fornece valores padrão herdados para outros perfis. Se você definir algo no perfil `[default]` e não definir em um perfil nomeado, o valor não estará definido quando você usar o perfil nomeado. 

### Definir um perfil nomeado
<a name="set-named-profile"></a>

O perfil `[default]` e vários perfis nomeados podem existir no mesmo arquivo. Use a configuração a seguir para selecionar quais configurações do perfil serão usadas pelo SDK ou ferramenta ao executar o código. Os perfis também podem ser selecionados dentro do código ou por comando ao trabalhar com a AWS CLI. 

Configure essa funcionalidade definindo uma das seguintes opções:

**`AWS_PROFILE`- variável de ambiente**  
Quando essa variável de ambiente é definida como um perfil nomeado ou “padrão”, todos os códigos e AWS CLI comandos do SDK usam as configurações desse perfil.  
Exemplo de configuração de variáveis de ambiente para Linux/macOS por meio da linha de comando:  

```
export AWS_PROFILE="my_default_profile_name";
```
Exemplo do Windows de configuração de variáveis de ambiente por meio da linha de comando:  

```
setx AWS_PROFILE "my_default_profile_name"
```

**`aws.profile`: propriedade do sistema de JVM**  
Para o SDK para Kotlin na JVM e o SDK para Java 2.x, você pode [definir a propriedade do sistema `aws.profile`](jvm-system-properties.md#jvm-sys-props-set). Quando o SDK cria um cliente de serviço, ele usa as configurações no perfil nomeado, a menos que a configuração seja substituída no código. O SDK para Java 1.x não é compatível com essa propriedade do sistema.

**nota**  
Recomendamos que você sempre use perfis nomeados em vez do perfil padrão se a aplicação estiver em um servidor executando várias aplicações. O perfil padrão é automaticamente selecionado por qualquer AWS aplicativo no ambiente e compartilhado entre eles. Portanto, se alguém atualizar o perfil padrão de sua própria aplicação, isso poderá involuntariamente afetar as outras. Para evitar isso, defina um perfil nomeado no arquivo compartilhado `config` e use esse perfil nomeado em sua aplicação ao configurar o perfil nomeado em seu código. Use a variável de ambiente ou a propriedade do sistema de JVM para definir o perfil nomeado se souber que seu escopo afeta apenas sua aplicação.

## Formato do arquivo de configuração
<a name="file-format-config"></a>

O arquivo `config` é organizado em seções. Uma seção é um conjunto nomeado de configurações e continua até que outra linha de definição de seção seja encontrada.

O arquivo `config` é um arquivo de texto simples que usam o seguinte formato:
+ Todas as entradas em uma seção assumem a forma geral de `setting-name=value`.
+ As linhas podem ser comentadas iniciando-as com um caractere de hashtag (`#`).

### Tipos de seção
<a name="section-types"></a>

Uma definição de seção é uma linha que aplica um nome a uma coleção de configurações. As linhas de definição de seção começam e terminam com colchetes (`[` `]`). Dentro dos colchetes, há um identificador de tipo de seção e um nome personalizado para a seção. Você pode usar letras, números, hífens ( `-` ) e sublinhados ( `_` ), mas sem espaços.

#### Tipo de seção: `default`
<a name="section-default"></a>

Exemplo de linha de definição de seção: `[default]`

 `[default]` é o único perfil que não exige o identificador de seção `profile`. 

O exemplo a seguir mostra um arquivo `config` básico com um perfil `[default]`. Ele define a configuração [`region`](feature-region.md). Todas as configurações depois dessa linha, até outra definição de seção ser encontrada, fazem parte desse perfil. 

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

#### Tipo de seção: `profile`
<a name="section-profile"></a>

Exemplo de linha de definição de seção: `[profile dev]`

A linha de definição de sessão `profile` é um agrupamento nomeado de configurações que você pode aplicar a diferentes cenários de desenvolvimento. Para entender melhor os perfis nomeados, consulte a seção anterior sobre Perfis. 

O exemplo a seguir mostra um arquivo `config` com uma linha de definição de seção `profile` e um perfil nomeado denominado `foo`. Todas as configurações depois dessa linha, até outra definição de seção ser encontrada, fazem parte desse perfil nomeado. 

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

Algumas configurações têm seu próprio grupo aninhado de subconfigurações, como a configuração e as subconfigurações de `s3` no exemplo a seguir. Associe as subconfigurações ao grupo recuando-as com um ou mais espaços.

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

#### Tipo de seção: `sso-session`
<a name="section-session"></a>

Exemplo de linha de definição de seção: `[sso-session my-sso]`

A linha de definição da `sso-session` seção nomeia um grupo de configurações que você usa para configurar um perfil para resolver AWS as credenciais usando Centro de Identidade do AWS IAM. Para obter mais informações sobre como configurar a autenticação de login único, consulte [Usando o IAM Identity Center para autenticar o AWS SDK e as ferramentas](access-sso.md). Um perfil é vinculado a uma seção `sso-session` por um par de valores-chave em que `sso-session` é a chave e o nome da sua seção `sso-session` é o valor, como `sso-session = <name-of-sso-session-section>`. 

O exemplo a seguir configura um perfil que obterá AWS credenciais de curto prazo para a função do IAM "SampleRole" na conta “111122223333" usando um token do “my-sso”. A seção `sso-session` “my-sso” é referenciada na seção `profile` pelo nome usando a chave `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 seção: `services`
<a name="section-services"></a>

Exemplo de linha de definição de seção: `[services dev]`

**nota**  
A `services` seção oferece suporte a personalizações de endpoints específicos do serviço e está disponível somente nas ferramentas que incluem esse SDKs recurso. Para ver se esse atributo está disponível para seu SDK, consulte [Support by AWS SDKs and tools](feature-ss-endpoints.md#ss-endpoints-sdk-compat) para ver os endpoints específicos do serviço.

A linha de definição da `services` seção nomeia um grupo de configurações que configura endpoints personalizados para AWS service (Serviço da AWS) solicitações. Um perfil é vinculado a uma seção `services` por um par de valores-chave em que `services` é a chave e o nome da sua seção `services` é o valor, como `services = <name-of-services-section>`. 

 A `services` seção é ainda separada em subseções por `<SERVICE> = ` linhas, onde `<SERVICE>` está a chave AWS service (Serviço da AWS) identificadora. O AWS service (Serviço da AWS) identificador é baseado no modelo de API, substituindo todos os espaços `serviceId` por sublinhados e colocando todas as letras em minúsculas. Para obter uma lista de todas as chaves de identificação de serviço a serem usadas na seção `services`, consulte [Identificadores para endpoints específicos de serviço](ss-endpoints-table.md). A chave de identificação de serviço é seguida por configurações aninhadas, cada uma em sua própria linha e recuada por dois espaços. 

 O exemplo a seguir usa uma definição `services` para configurar o endpoint a ser usado para solicitações feitas somente para o serviço do Amazon DynamoDB . A seção `services` `"local-dynamodb"` é referenciada na seção `profile` pelo nome usando a chave `services`. A chave AWS service (Serviço da AWS) identificadora é`dynamodb`. A subseção de Amazon DynamoDB serviço começa na linha`dynamodb = `. Todas as linhas imediatamente seguintes que estejam recuadas são incluídas nessa subseção e se aplicam a esse serviço. 

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

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

Para obter mais informações sobre a configuração de endpoint personalizado, consulte [Endpoints específicos de serviço](feature-ss-endpoints.md).

## Formato do arquivo de credenciais
<a name="file-format-creds"></a>

As regras para o arquivo `credentials` geralmente são idênticas às do arquivo `config`, exceto que as seções do perfil não começam com a palavra `profile`. Use apenas o nome do perfil em si entre colchetes. O exemplo a seguir mostra um arquivo `credentials` com uma seção de perfil nomeado denominado `foo`. 

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

Somente as seguintes configurações consideradas "secretas" ou confidenciais podem ser armazenadas no arquivo `credentials`: `aws_access_key_id`, `aws_secret_access_key` e `aws_session_token`. Embora essas configurações possam ser colocadas alternativamente no arquivo compartilhado `config`, recomendamos que você mantenha esses valores confidenciais no arquivo `credentials` separado. Dessa forma, você pode fornecer permissões separadas para cada arquivo, se necessário.

O exemplo a seguir mostra um arquivo `credentials` básico com um perfil `[default]`. Ele define as configurações globais [`aws_access_key_id`, `aws_secret_access_key` e `aws_session_token`](feature-static-credentials.md).

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

Independentemente de você usar um perfil nomeado ou "`default`" no arquivo `credentials`, todas as configurações aqui serão combinadas com as configurações do arquivo `config` que usarem o mesmo nome de perfil. Se houver credenciais nos dois arquivos para um perfil que compartilhe o mesmo nome, as chaves no arquivo de credenciais terão precedência. 

# Localizando e alterando a localização dos arquivos compartilhados, dos `credentials` arquivos `config` AWS SDKs e das ferramentas
<a name="file-location"></a>

Os `credentials` arquivos compartilhados AWS `config` e são arquivos de texto simples que contêm informações de configuração das ferramentas AWS SDKs e. Os arquivos residem localmente em seu ambiente e são usados automaticamente pelo código do SDK ou pelos AWS CLI comandos que você executa nesse ambiente. Por exemplo, em seu próprio computador ou ao desenvolver em uma instância do Amazon Elastic Compute Cloud. 

Quando o SDK ou a ferramenta são executados, eles verificam esses arquivos e carregam todas as configurações disponíveis. Se os arquivos ainda não existirem, um arquivo básico será criado automaticamente pelo SDK ou pela ferramenta.

Por padrão, os arquivos estão em uma pasta denominada `.aws` que é colocada na sua pasta `home` ou na pasta do usuário. 


| Sistema operacional | Local padrão e nome dos arquivos | 
| --- | --- | 
| Linux e macOS |  `~/.aws/config` `~/.aws/credentials`  | 
| Windows |  `%USERPROFILE%\.aws\config` `%USERPROFILE%\.aws\credentials`  | 

## Resolução do diretório inicial
<a name="homeDirRes"></a>

`~` é usado para resolução do diretório inicial apenas quando:
+ Inicia o caminho
+ É seguido imediatamente por `/` ou por um separador específico da plataforma. No Windows, `~/` e `~\` são resolvidos para o diretório inicial. 

Ao definir o diretório inicial, as seguintes variáveis são verificadas:
+ (Todas as plataformas) A variável de ambiente `HOME`
+ (Plataformas Windows) A variável de ambiente `USERPROFILE`
+ (Plataformas Windows) A concatenação das variáveis de ambiente `HOMEDRIVE` e `HOMEPATH` (`$HOMEDRIVE$HOMEPATH`)
+ (Opcional por SDK ou ferramenta) Um SDK ou função de resolução de caminho inicial específica do SDK ou da ferramenta

Quando possível, se o diretório inicial de um usuário for especificado no início do caminho (por exemplo, `~username/`), ele será resolvido no diretório inicial do nome de usuário solicitado (por exemplo, `/home/username/.aws/config`).

## Alterar a localização padrão desses arquivos
<a name="file-location-change"></a>

Você pode usar qualquer uma das opções a seguir para substituir onde esses arquivos são carregados pelo SDK ou pela ferramenta.

### Use variáveis de ambiente
<a name="file-location-change-envar"></a>

As seguintes variáveis de ambiente podem ser definidas para alterar a localização ou o nome desses arquivos do valor padrão para um valor personalizado:
+ Arquivo de variável de ambiente `config`: **`AWS_CONFIG_FILE`**
+ Arquivo de variável de ambiente `credentials`: **`AWS_SHARED_CREDENTIALS_FILE`**

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

Você pode especificar um local alternativo executando os seguintes comandos de [exportação](https://linuxconfig.org/learning-linux-commands-export) no Linux ou no 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 ]

Você pode especificar um local alternativo executando os seguintes comandos [setx](https://docs.microsoft.com/windows-server/administration/windows-commands/setx) no 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 obter mais informações sobre a configuração do sistemas usando variáveis de ambiente, consulte [Usando variáveis de ambiente para configuração AWS SDKs e ferramentas globais](environment-variables.md).

### Usar propriedade do sistema de JVM
<a name="file-location-change-jvmSysProp"></a>

No SDK para Kotlin em execução na JVM e no SDK para Java 2.x, você pode definir as seguintes propriedades de sistema de JVM para alterar a localização ou o nome desses arquivos do valor padrão para um valor personalizado:
+ Propriedade do sistema de JVM do arquivo `config`: **`aws.configFile`**
+ Arquivo de variável de ambiente `credentials`: **`aws.sharedCredentialsFile`**

Para obter instruções sobre como definir as propriedades e sistema de JVM, consulte [Como definir as propriedades do sistema em JVM](jvm-system-properties.md#jvm-sys-props-set). O SDK para Java 1.x não é compatível com essas propriedades de sistema.

# Usando variáveis de ambiente para configuração AWS SDKs e ferramentas globais
<a name="environment-variables"></a>

As variáveis de ambiente fornecem outra maneira de especificar as opções e credenciais de configuração ao usar AWS SDKs as ferramentas. As variáveis de ambiente podem ser úteis para criar scripts ou definir temporariamente um perfil nomeado como padrão. Para obter a lista das variáveis de ambiente suportadas pela maioria SDKs, consulte[Lista de variáveis de ambiente](settings-reference.md#EVarSettings).

**Precedência de opções**
+ Se você especificar uma configuração usando sua variável de ambiente, ela substituirá qualquer valor carregado de um perfil nos arquivos compartilhados AWS `config` e`credentials`. 
+ Se você especificar uma configuração usando um parâmetro na linha de AWS CLI comando, ela substituirá qualquer valor da variável de ambiente correspondente ou de um perfil no arquivo de configuração.

## Como definir variáveis de ambiente
<a name="envvars-set"></a>

Os exemplos a seguir mostram como configurar variáveis de ambiente para o usuário padrão.

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

Configurar a variável de ambiente altera o valor usado até o final da sua sessão de shell ou até que você defina a variável como um valor diferente. Você pode tornar as variáveis persistentes em sessões futuras definindo-as no script de inicialização do 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
```

O uso de `[set](https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/set_1)` para definir uma variável de ambiente altera o valor usado até o final da atual sessão de prompt de comando ou até que você defina a variável como um valor diferente. O 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 definir uma variável de ambiente altera o valor usado na sessão atual de prompt de comando e todas as sessões de prompt de comando que você criar após a execução do comando. ***Não*** afeta outros shells de comando que já estejam em execução no momento em que você executar o 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"
```

Se você definir uma variável de ambiente no PowerShell prompt, conforme mostrado nos exemplos anteriores, ela salvará o valor somente durante a sessão atual. Para tornar a configuração da variável de ambiente persistente em todas as sessões PowerShell e nas sessões do Prompt de Comando, armazene-a usando o aplicativo **Sistema** no **Painel de Controle**. Como alternativa, você pode definir a variável para todas as PowerShell sessões futuras adicionando-a ao seu PowerShell perfil. Consulte a [PowerShell documentação](https://docs.microsoft.com/powershell/module/microsoft.powershell.core/about/about_environment_variables) para obter mais informações sobre como armazenar variáveis de ambiente ou persisti-las nas sessões.

------

## Configuração de variável de ambiente sem servidor
<a name="serverless"></a>

 Se você usa uma arquitetura sem servidor para desenvolvimento, você tem outras opções para definir variáveis de ambiente. Dependendo do seu contêiner, você pode usar estratégias diferentes de execução de código nesses contêineres para ver e acessar as variáveis de ambiente, semelhantes a ambientes fora da nuvem. 

Por exemplo, com AWS Lambda, você pode definir diretamente as variáveis de ambiente. Para obter detalhes, consulte [Usando variáveis de AWS Lambda ambiente](https://docs.aws.amazon.com/lambda/latest/dg/configuration-envvars.html) no *Guia do AWS Lambda desenvolvedor*. 

No Serverless Framework, geralmente você pode definir variáveis de ambiente do SDK no arquivo `serverless.yml` sob a chave do provedor na configuração do ambiente. Para obter informações sobre o arquivo `serverless.yml`, consulte [Configurações gerais da função](https://www.serverless.com/framework/docs/providers/aws/guide/serverless.yml#general-function-settings) na documentação do Serverless Framework. 

Independentemente do mecanismo usado para definir variáveis de ambiente de contêiner, há algumas que são reservadas pelo contêiner, como aquelas documentadas para Lambda em [Defined runtime environment variables](https://docs.aws.amazon.com/lambda/latest/dg/configuration-envvars.html#configuration-envvars-runtime). Sempre consulte a documentação oficial do contêiner que você está usando para determinar como as variáveis de ambiente são tratadas e se há alguma restrição. 

# Usando propriedades do sistema JVM para configurar e AWS SDK para Java AWS SDK para Kotlin
<a name="jvm-system-properties"></a>

[As propriedades do sistema JVM](https://docs.oracle.com/javase/tutorial/essential/environment/sysprop.html) fornecem outra maneira de especificar as opções de configuração e as credenciais para SDKs execução na JVM, como a e a. AWS SDK para Java AWS SDK para Kotlin Para obter uma lista das propriedades do sistema JVM suportadas pelo SDKs, consulte Referência de [configurações](settings-reference.md#JVMSettings).

**Precedência de opções**
+ Se você especificar uma configuração usando a propriedade do sistema de JVM, ela substituirá qualquer valor encontrado em variáveis de ambiente ou carregado de um perfil nos arquivos compartilhados `config` e `credentials` da AWS.
+ Se você especificar uma configuração usando sua variável de ambiente, ela substituirá qualquer valor carregado de um perfil nos arquivos compartilhados `config` e `credentials` da AWS.

## Como definir as propriedades do sistema em JVM
<a name="jvm-sys-props-set"></a>

Você pode definir propriedades de sistema em JV de várias maneiras.

### Na linha de comando
<a name="jvm-sys-props-set-cl"></a>

Defina as propriedades de sistema de JVM na linha de comando ao invocar o comando `java` usando a opção `-D`. O comando a seguir configura a Região da AWS de maneira global para todos os clientes de serviço, a menos que você substitua explicitamente o valor no código.

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

Se você precisar definir várias propriedades de sistema de JVM, especifique a opção `-D` várias vezes.

### Com uma variável de ambiente
<a name="jvm-sys-props-set-evar"></a>

Se não conseguir acessar a linha de comando para invocar a JVM para executar a aplicação, você poderá usar a variável de ambiente `JAVA_TOOL_OPTIONS` para configurar as opções da linha de comando. Essa abordagem é útil em situações como a execução de uma função do AWS Lambda em runtime Java ou a execução de código em uma JVM incorporada.

O exemplo a seguir configura Região da AWS globalmente para todos os clientes de serviço, a menos que você substitua explicitamente o valor no código.

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

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

Configurar a variável de ambiente altera o valor usado até o final da sua sessão de shell ou até que você defina a variável como um valor diferente. Você pode tornar as variáveis persistentes em sessões futuras definindo-as no script de inicialização do shell.

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

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

O uso de `[set](https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/set_1)` para definir uma variável de ambiente altera o valor usado até o final da atual sessão de prompt de comando ou até que você defina a variável como um valor diferente. O 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 definir uma variável de ambiente altera o valor usado na sessão atual de prompt de comando e todas as sessões de prompt de comando que você criar após a execução do comando. ***Não*** afeta outros shells de comando que já estejam em execução no momento em que você executar o comando.

------

### Em runtime
<a name="jvm-sys-props-set-runtime"></a>

Você também pode definir as propriedades de sistema de JVM em runtime no código usando o método `System.setProperty` conforme mostrado no exemplo a seguir.

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

**Importante**  
Defina todas as propriedades de sistema de JVM *antes * de inicializar os clientes de serviço do SDK; caso contrário, os clientes de serviço poderão usar outros valores.