

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

# Opções de construtor de clientes para a AWS SDK para PHP versão 3
<a name="guide_configuration"></a>

Essas opções do construtor de cliente podem ser fornecidas em um construtor de cliente ou fornecidas à classe [https://docs.aws.amazon.com/aws-sdk-php/latest/class-Aws.Sdk.html](https://docs.aws.amazon.com/aws-sdk-php/latest/class-Aws.Sdk.html). A matriz de opções fornecidas a um tipo específico de cliente pode variar com base no cliente que você está criando. Essas opções de configuração personalizada de cliente são descritas na [documentação da API](https://docs.aws.amazon.com/aws-sdk-php/latest/) de cada cliente.

Se você não fornecer explicitamente as opções de construtor do cliente necessárias para o cliente, o SDK para PHP procurará valores de variáveis de ambiente ou de um arquivo de configuração. AWS Todos os clientes precisam de um valor de provedor de credenciais e um Região da AWS valor, então você deve definir esses valores como opções de construtor ou externamente.

Por padrão, o arquivo de configuração que está sendo verificado será `.aws/config` em seu diretório pessoal, normalmente `~/.aws/config`. No entanto, é possível usar a variável de ambiente `AWS_CONFIG_FILE` para definir onde será o local do arquivo de configuração padrão. Por exemplo, isso pode ser útil se você estiver restringindo o acesso a arquivos em determinados diretórios com `open_basedir`.

Para obter mais informações sobre a localização e a formatação dos `credentials` arquivos compartilhados AWS `config`, consulte [Configuração](https://docs.aws.amazon.com/sdkref/latest/guide/creds-config-files.html) no *Guia de referência de ferramentas AWS SDKs e ferramentas*.

Para obter detalhes sobre todas as configurações globais que você pode definir nos arquivos de AWS configuração ou como variáveis de ambiente, consulte a [referência de configurações e configurações de autenticação](https://docs.aws.amazon.com/sdkref/latest/guide/settings-reference.html) no *AWS SDKs Guia de referência de ferramentas*.

**Topics**
+ [api\$1provider](#api-provider)
+ [credenciais](#config_credentials)
+ [depurar](#debug)
+ [stats](#config-stats)
+ [endpoint](#endpoint)
+ [endpoint\$1provider](#endpoint-provider)
+ [endpoint\$1discovery](#endpoint-discovery)
+ [handler](#handler)
+ [http](#config-http)
+ [http\$1handler](#http-handler)
+ [perfil](#profile)
+ [region](#cfg-region)
+ [retries](#config-retries)
+ [scheme](#scheme)
+ [service](#service)
+ [signature\$1provider](#signature-provider)
+ [signature\$1version](#signature-version)
+ [ua\$1append](#ua-append)
+ [use\$1aws\$1shared\$1config\$1files](#use-aws-shared-config-files)
+ [validar](#validate)
+ [version](#cfg-version)

O exemplo a seguir mostra como passar opções para um construtor de cliente do Amazon S3.

```
use Aws\S3\S3Client;

$options = [
    'region'            => 'us-west-2',
    'version'           => '2006-03-01',
    'signature_version' => 'v4'
];

$s3Client = new S3Client($options);
```

Consulte o tópico [Criar um cliente de serviço básico](making-service-requests.md#creating-a-client) para obter mais informações sobre a construção de clientes.

## api\$1provider
<a name="api-provider"></a>

Tipo  
 `callable` 

Um PHP que pode ser chamado que aceita um argumento de tipo, serviço e versão e retorna uma matriz dos dados correspondentes da configuração. O valor do tipo pode ser `api`, `waiter` ou `paginator`.

Por padrão, o SDK usa uma instância de `Aws\Api\FileSystemApiProvider` que carrega arquivos da API da pasta `src/data` do SDK.

## credenciais
<a name="config_credentials"></a>

Tipo  
 `array|Aws\CacheInterface|Aws\Credentials\CredentialsInterface|bool|callable` 

Passe um objeto `Aws\Credentials\CredentialsInterface` para usar uma instância de credenciais específica. O seguinte especifica que o provedor de credenciais do Centro de Identidade do IAM deve ser usado. Esse provedor também é conhecido como provedor de credenciais de SSO.

```
$credentials = Aws\Credentials\CredentialProvider::sso('profile default');

$s3 = new Aws\S3\S3Client([
    'region'      => 'us-west-2',
    'credentials' => $credentials
]);
```

Se você usar um perfil nomeado, substitua o nome do seu perfil por “`default`” no exemplo anterior. Para saber mais sobre como configurar perfis nomeados, consulte [Compartilhados `config` e `credentials` arquivos](https://docs.aws.amazon.com/sdkref/latest/guide/file-format.html) no *Guia de referência de ferramentas AWS SDKs e ferramentas*.

Se você não especificar um provedor de credenciais para usar e confiar na cadeia de provedores de credenciais, a mensagem de erro resultante da falha na autenticação geralmente é genérica. Ele é gerado a partir do último provedor na lista de fontes que estão sendo verificadas quanto às credenciais válidas, que pode não ser o provedor que você está tentando usar. Quando você especifica qual provedor de credenciais usar, qualquer mensagem de erro resultante é mais útil e relevante porque resulta somente desse provedor. Para saber mais sobre a cadeia de fontes verificadas quanto às credenciais, consulte [Cadeia de fornecedores de credenciais no Guia](https://docs.aws.amazon.com/sdkref/latest/guide/standardized-credentials.html#credentialProviderChain) de *Referência de Ferramentas AWS SDKs e Ferramentas*.

Passe `false` para usar credenciais nulas e não assinar solicitações.

```
$s3 = new Aws\S3\S3Client([
    'region'      => 'us-west-2',
    'credentials' => false
]);
```

Passe uma função de [provedor de credenciais](guide_credentials.md#cred-provider-defn-php) que pode ser chamada para criar credenciais usando uma função.

```
use Aws\Credentials\CredentialProvider;

// Only load credentials from environment variables
$provider = CredentialProvider::env();

$s3 = new Aws\S3\S3Client([
    'region'      => 'us-west-2',
    'credentials' => $provider
]);
```

Transmita as credenciais armazenadas em cache a uma instância de `Aws\CacheInterface` para armazenar em cache os valores retornados pela cadeia de provedores padrão entre vários processos.

```
use Aws\Credentials\CredentialProvider;
use Aws\PsrCacheAdapter;
use Symfony\Component\Cache\Adapter\FilesystemAdapter;


$cache = new PsrCacheAdapter(new FilesystemAdapter);
$provider = CredentialProvider::defaultProvider();
$cachedProvider = CredentialProvider::cache($provider, $cache);

$s3 = new Aws\S3\S3Client([
    'region' => 'us-west-2',
    'credentials' => $cachedProvider
]);
```

Você pode encontrar mais informações sobre como fornecer credenciais a um cliente no guia [Credenciais para a AWS SDK para PHP versão 3](guide_credentials.md).

**nota**  
As credenciais são carregados e validadas lentamente quando são usadas.

## depurar
<a name="debug"></a>

Tipo  
 `bool|array` 

Fornece informações de depuração sobre cada transferência. As informações de depuração contêm informações sobre cada alteração de estado de uma transação conforme ela é preparada e enviada pela rede. Também estão incluídas na saída da depuração as informações sobre o manipulador HTTP específico usado por um cliente (por exemplo, saída de cURL da depuração).

Defina como `true` para exibir informações de depuração ao enviar solicitações.

```
$s3 = new Aws\S3\S3Client([
    'region'  => 'us-west-2',
    'debug'   => true
]);

// Perform an operation to see the debug output
$s3->listBuckets();
```

Como alternativa, você pode fornecer uma matriz associativa com as seguintes chaves.

**logfn (callable)**  
Função que é invocada com mensagens de log. Por padrão, a função `echo` do PHP é usada.

**stream\$1size (int)**  
Quando o tamanho de um fluxo for maior que esse número, os dados do fluxo não serão registrados em log. Defina como `0` para não registrar em log nenhum dado de fluxo.

**scrub\$1auth (bool)**  
Defina como `false` para desativar a depuração dos dados de autenticação das mensagens registradas (o que significa que o ID da chave de AWS acesso e a assinatura serão passados para o). `logfn`

**http (bool)**  
Defina como `false` para desabilitar o recurso "debug" de manipuladores HTTP de nível inferior (por exemplo, saída detalhada de cURL).

**auth\$1headers (matriz)**  
Defina como um mapeamento de chave-valor de cabeçalhos que você deseja substituir mapeados para o valor pelo qual você deseja substitui-los. Esses valores não serão usados, a menos que `scrub_auth` esteja definido como `true`.

**auth\$1strings (matriz)**  
Defina como um mapeamento de chave-valor de expressões regulares a serem mapeadas para suas substituições. Esses valores serão usados pelo programa de limpeza de dados de autenticação se `scrub_auth` estiver definido como `true`.

```
$s3 = new Aws\S3\S3Client([
    'region'  => 'us-west-2',
    'debug'   => [
        'logfn'        => function ($msg) { echo $msg . "\n"; },
        'stream_size'  => 0,
        'scrub_auth'   => true,
        'http'         => true,
        'auth_headers' => [
            'X-My-Secret-Header' => '[REDACTED]',
        ],
        'auth_strings' => [
            '/SuperSecret=[A-Za-z0-9]{20}/i' => 'SuperSecret=[REDACTED]',
        ],
    ]
]);

// Perform an operation to see the debug output
$s3->listBuckets();
```

**nota**  
Essa opção também gera as informações subjacentes do manipulador HTTP produzidas pela opção de depuração de `http`. A saída da depuração é extremamente útil ao diagnosticar problemas no AWS SDK para PHP. Forneça a saída da depuração de um caso de falha isolada ao abrir problemas no SDK.

## stats
<a name="config-stats"></a>

Tipo  
 `bool|array` 

Vincula as estatísticas de transferência aos erros e resultados retornados pelas operações do SDK.

Defina como `true` para coletar estatísticas de transferências sobre solicitações enviadas.

```
$s3 = new Aws\S3\S3Client([
    'region'  => 'us-west-2',
    'stats'   => true
]);

// Perform an operation
$result = $s3->listBuckets();
// Inspect the stats
$stats = $result['@metadata']['transferStats'];
```

Como alternativa, você pode fornecer uma matriz associativa com as seguintes chaves.

**retries (bool)**  
Defina como `false` para desabilitar a geração de relatórios sobre novas tentativas realizadas. As estatísticas de novas tentativas são coletadas por padrão e retornadas.

**http (bool)**  
Defina como `true` para permitir a coleta de estatísticas de adaptadores HTTP de nível inferior (por exemplo, valores retornados). GuzzleHttpTransferStats Os manipuladores HTTP devem ser compatíveis com uma opção \$1\$1on\$1transfer\$1stats para que isso tenha efeito. As estatísticas do HTTP são retornadas como uma matriz indexada de matrizes associativas. Cada matriz associativa contém as estatísticas de transferência retornadas para uma solicitação pelo manipulador HTTP do cliente. Desabilitado por padrão.  
Se uma solicitação for repetida, as estatísticas da transferência de cada solicitação serão retornadas com `$result['@metadata']['transferStats']['http'][0]` contendo as estatísticas da primeira solicitação, `$result['@metadata']['transferStats']['http'][1]` contendo as estatísticas da segunda solicitação, e assim por diante.

**timer (bool)**  
Defina como `true` para habilitar um temporizador de comando que relata o tempo total gasto em uma operação em segundos. Desabilitado por padrão.

```
$s3 = new Aws\S3\S3Client([
    'region'  => 'us-west-2',
    'stats'   => [
        'retries'      => true,
        'timer'        => false,
        'http'         => true,
    ]
]);

// Perform an operation
$result = $s3->listBuckets();
// Inspect the HTTP transfer stats
$stats = $result['@metadata']['transferStats']['http'];
// Inspect the number of retries attempted
$stats = $result['@metadata']['transferStats']['retries_attempted'];
// Inspect the total backoff delay inserted between retries
$stats = $result['@metadata']['transferStats']['total_retry_delay'];
```

## endpoint
<a name="endpoint"></a>

Tipo  
 `string` 

O URI completo do serviço web. Isso é necessário para serviços, como [AWS Elemental MediaConvert](https://docs.aws.amazon.com/mediaconvert/latest/ug/), que usam endpoints específicos da conta. Para esses serviços, solicite esse endpoint usando o método `describeEndpoints`.

Isso só é necessário ao conectar-se a um endpoint personalizado (por exemplo, uma versão local do Amazon S3 ou o [Amazon DynamoDB Local](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/DynamoDBLocal.html)).

Este é um exemplo de como conectar-se ao Amazon DynamoDB Local:

```
$client = new Aws\DynamoDb\DynamoDbClient([
    'version'  => '2012-08-10',
    'region'   => 'us-east-1',
    'endpoint' => 'http://localhost:8000'
]);
```

Consulte as [AWS regiões e endpoints](https://docs.aws.amazon.com/general/latest/gr/rande.html) para obter uma lista das AWS regiões e endpoints disponíveis.

## endpoint\$1provider
<a name="endpoint-provider"></a>

Tipo  
 `Aws\EndpointV2\EndpointProviderV2|callable` 

Uma instância opcional de EndpointProvider V2 ou PHP chamável que aceita um hash de opções, incluindo uma chave de “serviço” e “região”. Ele retorna `NULL` ou um hash de dados de endpoint, dos quais a chave do "endpoint" é necessária.

Este é um exemplo de como criar um provedor de endpoint mínimo.

```
$provider = function (array $params) {
    if ($params['service'] == 'foo') {
        return ['endpoint' => $params['region'] . '.example.com'];
    }
    // Return null when the provider cannot handle the parameters
    return null;
});
```

## endpoint\$1discovery
<a name="endpoint-discovery"></a>

Tipo  
 `array|Aws\CacheInterface|Aws\EndpointDiscovery\ConfigurationInterface|callable` 

A descoberta de endpoint identifica e se conecta ao endpoint correto para a API de um serviço que ofereça suporte à descoberta de endpoint. Para serviços que oferecem suporte, mas que não exigem a descoberta de endpoint, habilite `endpoint_discovery` durante a criação do cliente. Se um serviço não oferecer suporte à descoberta de endpoint, essa configuração será ignorada.

 `Aws\EndpointDiscovery\ConfigurationInterface` 

Um provedor de configuração opcional que permite a conexão automática ao endpoint apropriado da API de um serviço para operações que o serviço especifica.

O objeto `Aws\EndpointDiscovery\Configuration` aceita duas opções, incluindo um valor booliano, "habilitado", que indica se a descoberta de endpoint está habilitada, e um número inteiro "cache\$1limit" que indica o número máximo de chaves no cache do endpoint.

Para cada cliente criado, transmita um objeto `Aws\EndpointDiscovery\Configuration` para usar uma configuração específica para a descoberta de endpoint.

```
use Aws\EndpointDiscovery\Configuration;
use Aws\S3\S3Client;

$enabled = true;
$cache_limit = 1000;

$config = new Aws\EndpointDiscovery\Configuration (
    $enabled,
    $cache_limit
);

$s3 = new Aws\S3\S3Client([
    'region' => 'us-east-2',
    'endpoint_discovery' => $config,

]);
```

Transmita uma instância de `Aws\CacheInterface` para armazenar em cache os valores retornados pela descoberta de endpoint em vários processos.

```
use Aws\DoctrineCacheAdapter;
use Aws\S3\S3Client;
use Doctrine\Common\Cache\ApcuCache;

$s3 = new S3Client([
    'region'      => 'us-west-2',
    'endpoint_discovery' => new DoctrineCacheAdapter(new ApcuCache),
]);
```

Transmita uma matriz para a descoberta de endpoint.

```
use Aws\S3\S3Client;

$s3 = new S3Client([
    'region'      => 'us-west-2',
    'endpoint_discovery' => [
        'enabled' => true,
        'cache_limit' => 1000
    ],
]);
```

## handler
<a name="handler"></a>

Tipo  
 `callable` 

Um manipulador que aceita um objeto de comando e um objeto de solicitação e retorna uma promessa (`GuzzleHttp\Promise\PromiseInterface`) que é cumprida com um objeto `Aws\ResultInterface` ou rejeitada com uma `Aws\Exception\AwsException`. Um manipulador não aceita um próximo manipulador pois ele é terminal e espera-se que cumpra um comando. Se nenhum manipulador for fornecido, um manipulador Guzzle padrão será usado.

Você pode usar o `Aws\MockHandler` para retornar resultados simulados ou gerar exceções simuladas. Você enfileira resultados ou exceções e eles os MockHandler desenfileirarão na ordem FIFO.

```
use Aws\Result;
use Aws\MockHandler;
use Aws\DynamoDb\DynamoDbClient;
use Aws\CommandInterface;
use Psr\Http\Message\RequestInterface;
use Aws\Exception\AwsException;

$mock = new MockHandler();

// Return a mocked result
$mock->append(new Result(['foo' => 'bar']));

// You can provide a function to invoke; here we throw a mock exception
$mock->append(function (CommandInterface $cmd, RequestInterface $req) {
    return new AwsException('Mock exception', $cmd);
});

// Create a client with the mock handler
$client = new DynamoDbClient([
    'region' => 'us-east-1',
    'handler' => $mock
]);

// Result object response will contain ['foo' => 'bar']
$result = $client->listTables();

// This will throw the exception that was enqueued
$client->listTables();
```

## http
<a name="config-http"></a>

Tipo  
 `array` 

Defina como uma matriz de opções HTTP que são aplicadas a solicitações e transferências HTTP criadas pelo SDK.

O SDK oferece suporte às seguintes opções de configuração:

### cert
<a name="http-cert"></a>

Tipo  
 `string|array` 

Especifique o certificado do lado do cliente em formato PEM.
+ Defina como uma string para o caminho apenas para o arquivo do certificado.

```
use Aws\S3\S3Client;

$client = new S3Client([
    'region'  => 'us-west-2',
    'http'    => ['cert' => '/path/to/cert.pem']
]);
```
+ Defina como uma matriz com o caminho e a senha.

```
use Aws\S3\S3Client;

$client = new S3Client([
    'region'  => 'us-west-2',
    'http'    => [
        'cert' => ['/path/to/cert.pem', 'password']
    ]
]);
```

### connect\$1timeout
<a name="http-connect-timeout"></a>

Um float que descreve o número de segundos de espera ao tentar conectar-se a um servidor. Use `0` para esperar indefinidamente (o comportamento padrão).

```
use Aws\DynamoDb\DynamoDbClient;

// Timeout after attempting to connect for 5 seconds
$client = new DynamoDbClient([
    'region'  => 'us-west-2',
    'http'    => [
        'connect_timeout' => 5
    ]
]);
```

### depurar
<a name="http-debug"></a>

Tipo  
 `bool|resource` 

Instrui o manipulador HTTP subjacente a gerar informações de depuração. As informações de depuração fornecidas por diferentes manipuladores HTTP são variáveis.
+ Passe `true` para gravar a saída da depuração em STDOUT.
+ Passe um `resource` conforme retornado pelo `fopen` para gravar a saída da depuração em um determinado recurso de fluxo do PHP.

### decode\$1content
<a name="http-decode-content"></a>

Tipo  
 `bool` 

Instrui o manipulador HTTP subjacente a inflar o corpo de respostas compactadas. Quando não habilitada, os corpos de respostas compactadas podem ser inflados com um `GuzzleHttp\Psr7\InflateStream`.

**nota**  
A decodificação do conteúdo é habilitada por padrão no manipulador HTTP padrão do SDK. Por motivo compatibilidade com versões anteriores, esse padrão não pode ser alterado. Se você armazenar arquivos compactados no Amazon S3, recomendamos desativar a decodificação de conteúdo no nível do cliente do S3.  

```
use Aws\S3\S3Client;
use GuzzleHttp\Psr7\InflateStream;

$client = new S3Client([
    'region'  => 'us-west-2',
    'http'    => ['decode_content' => false],
]);

$result = $client->getObject([
    'Bucket' => 'amzn-s3-demo-bucket',
    'Key'    => 'massize_gzipped_file.tgz'
]);

$compressedBody = $result['Body']; // This content is still gzipped
$inflatedBody = new InflateStream($result['Body']); // This is now readable
```

### delay
<a name="http-delay"></a>

Tipo  
 `int` 

O número de milissegundos de atraso antes de enviar a solicitação. Isso muitas vezes é usado como o atraso antes de repetir uma solicitação.

### expect
<a name="http-expect"></a>

Tipo  
 `bool|string` 

Essa opção é transmitida para o manipulador HTTP subjacente. Por padrão, o cabeçalho Expect: 100-Continue é definido quando o corpo da solicitação excede 1 MB. `true` ou `false` habilita ou desabilita o cabeçalho em todas as solicitações. Se um número inteiro for usado, somente as solicitações com corpos que excedam essa configuração usarão o cabeçalho. Quando usado como um número inteiro, se o tamanho do corpo for desconhecido, o cabeçalho Expect será enviado.

**Atenção**  
Desabilitar o cabeçalho Expect pode impedir que o serviço retorne a autenticação ou causar outros erros. Essa opção deve ser configurada com cuidado.

### progresso
<a name="http-progress"></a>

Tipo  
 `callable` 

Define uma função para invocar quando o progresso da transferência é feito. A função aceita os seguintes argumentos:

1. O número total de bytes esperado para download.

1. O número de bytes obtidos por download até agora.

1. O número de bytes esperado para upload.

1. O número de bytes obtidos por upload até agora.

```
use Aws\S3\S3Client;

$client = new S3Client([
    'region'  => 'us-west-2'
]);

// Apply the http option to a specific command using the "@http"
// command parameter
$result = $client->getObject([
    'Bucket' => 'amzn-s3-demo-bucket',
    'Key'    => 'large.mov',
    '@http' => [
        'progress' => function ($expectedDl, $dl, $expectedUl, $ul) {
            printf(
                "%s of %s downloaded, %s of %s uploaded.\n",
                $expectedDl,
                $dl,
                $expectedUl,
                $ul
            );
        }
    ]
]);
```

### proxy
<a name="http-proxy"></a>

Tipo  
 `string|array` 

Você pode se conectar a um AWS serviço por meio de um proxy usando a `proxy` opção.
+ Forneça um valor de string para se conectar a um proxy para todos os tipos de URIs. O valor de sequência do proxy pode conter um esquema, um nome de usuário e uma senha. Por exemplo, .`"http://username:password@192.168.16.1:10"`
+ Forneça uma matriz associativa de configurações de proxy em que a chave é o esquema do URI, e o valor é o proxy do URI fornecido (ou seja, você pode fornecer diferentes proxies para endpoints "http" e "https").

```
use Aws\DynamoDb\DynamoDbClient;

// Send requests through a single proxy
$client = new DynamoDbClient([
    'region'  => 'us-west-2',
    'http'    => [
        'proxy' => 'http://192.168.16.1:10'
    ]
]);

// Send requests through a different proxy per scheme
$client = new DynamoDbClient([
    'region'  => 'us-west-2',
    'http'    => [
        'proxy' => [
            'http' => 'tcp://192.168.16.1:10',
            'https' => 'tcp://192.168.16.1:11',
        ]
    ]
]);
```

Você pode usar a variável de ambiente `HTTP_PROXY` para configurar um proxy específico ao protocolo "http", e a variável de ambiente `HTTPS_PROXY` para configurar um proxy específico ao "https".

### sink
<a name="http-sink"></a>

Tipo  
 `resource|string|Psr\Http\Message\StreamInterface` 

A opção `sink` controla onde o download dos dados da resposta de uma operação é feito.
+ Forneça um `resource` conforme retornado por `fopen` para fazer download do corpo da resposta em um fluxo do PHP.
+ Forneça o caminho para um arquivo no disco como um valor de `string` para fazer download do corpo da resposta em um arquivo específico no disco.
+ Forneça um `Psr\Http\Message\StreamInterface` para fazer download do corpo da resposta em um objeto específico de fluxo do PSR.

**nota**  
O SDK faz download do corpo da resposta em um fluxo temporário do PHP por padrão. Isso significa que os dados permanecem na memória até que o tamanho do corpo atinja 2 MB e, nesse ponto, os dados são gravados em um arquivo temporário no disco.

### synchronous
<a name="http-sync"></a>

Tipo  
 `bool` 

A opção `synchronous` informa o manipulador HTTP subjacente que você pretende bloquear o resultado.

### transmissão
<a name="http-stream"></a>

Tipo  
 `bool` 

Defina como `true` para informar o manipulador HTTP subjacente que você deseja transmitir o corpo de uma resposta do serviço Web, em vez de fazer download de tudo com antecedência. Por exemplo, essa opção é dependente da classe stream wrapper do Amazon S3 para garantir que os dados sejam transmitidos.

### timeout
<a name="http-timeout"></a>

Tipo  
 `float` 

Uma float que descreve o tempo limite da solicitação em segundos. Use `0` para esperar indefinidamente (o comportamento padrão).

```
use Aws\DynamoDb\DynamoDbClient;

// Timeout after 5 seconds
$client = new DynamoDbClient([
    'region'  => 'us-west-2',
    'http'    => [
        'timeout' => 5
    ]
]);
```

### verificar
<a name="http-verify"></a>

Tipo  
 `bool|string` 

Você pode personalizar o comportamento de verificação de SSL/TLS certificados pares do SDK usando a `verify` `http` opção.
+ Defina como `true` para ativar SSL/TLS a verificação do certificado de mesmo nível e usar o pacote CA padrão fornecido pelo sistema operacional.
+ Defina como `false` para desabilitar a verificação de certificado par. (Isso não é seguro.)
+ Defina como uma sequência para fornecer o caminho para um pacote de certificado CA para habilitar a verificação usando um pacote CA personalizado.

Se o pacote CA não puder ser encontrado para seu sistema e você receber um erro, forneça o caminho para um pacote CA ao SDK. Se você não precisar de um pacote CA específico, o Mozilla fornece um pacote CA comumente usado que pode ser obtido por download [aqui](https://raw.githubusercontent.com/bagder/ca-bundle/master/ca-bundle.crt) (isso é mantido pelo mantenedor do cURL). Assim que tiver um pacote CA disponível no disco, você poderá definir a configuração .ini `openssl.cafile` do PHP para apontar para o caminho para o arquivo permitindo omitir a opção de solicitação `verify`. Você pode encontrar mais detalhes sobre certificados SSL no [site do cURL](http://curl.haxx.se/docs/sslcerts.html).

```
use Aws\DynamoDb\DynamoDbClient;

// Use a custom CA bundle
$client = new DynamoDbClient([
    'region'  => 'us-west-2',
    'http'    => [
        'verify' => '/path/to/my/cert.pem'
    ]
]);

// Disable SSL/TLS verification
$client = new DynamoDbClient([
    'region'  => 'us-west-2',
    'http'    => [
        'verify' => false
    ]
]);
```

## http\$1handler
<a name="http-handler"></a>

Tipo  
 `callable` 

A opção `http_handler` é usada para integrar o SDK com outros clientes HTTP. Uma opção `http_handler` é uma função que aceita um objeto `Psr\Http\Message\RequestInterface` e uma matriz de opções `http` aplicadas ao comando e retorna um objeto `GuzzleHttp\Promise\PromiseInterface` que é atendido com um objeto `Psr\Http\Message\ResponseInterface` ou rejeitado com uma matriz de dados da seguinte exceção:
+  `exception` - (`\Exception`) a exceção que foi encontrada.
+  `response` - (`Psr\Http\Message\ResponseInterface`) a resposta que foi recebida (se houver).
+  `connection_error` - (bool) definido como `true` para marcar o erro como um erro de conexão. Definir esse valor como `true` também permite que o SDK repita automaticamente a operação, se necessário.

O SDK converte automaticamente o determinado `http_handler` em uma opção `handler` normal encapsulando o `http_handler` fornecido com um objeto `Aws\WrappedHttpHandler`.

Por padrão, o SDK usa o Guzzle como seu manipulador HTTP. Aqui, você pode fornecer um manipulador HTTP diferente ou fornecer um cliente Guzzle com suas próprias opções definidas personalizadas.

 **Definir a versão do TLS** 

Um caso de uso é definir a versão do TLS usada pelo Guzzle com Curl, supondo que o Curl esteja instalado em seu ambiente. Observe as [restrições de versão](https://curl.haxx.se/libcurl/c/CURLOPT_SSLVERSION.html) do Curl para qual versão do TLS é compatível. A versão mais recente é usada por padrão. Se a versão do TLS estiver explicitamente definida e o servidor remoto não for compatível com essa versão, ele irá gerar um erro em vez de usar uma versão do TLS anterior.

Você pode determinar a versão do TLS que está sendo usada para uma operação de cliente definindo a opção de cliente `debug` como verdadeira e examinando a saída de conexão SSL. Essa linha pode ser semelhante a: `SSL connection using TLSv1.2` 

Exemplo de configuração do TLS 1.2 com Guzzle 6:

```
use Aws\DynamoDb\DynamoDbClient;
use Aws\Handler\GuzzleV6\GuzzleHandler;
use GuzzleHttp\Client;

$handler = new GuzzleHandler(
    new Client([
        'curl' => [
            CURLOPT_SSLVERSION => CURL_SSLVERSION_TLSv1_2
        ]
    ])
);

$client = new DynamoDbClient([
    'region'  => 'us-west-2',
    'http_handler' => $handler
]);
```

**nota**  
A opção `http_handler` substitui qualquer opção `handler` fornecida.

## perfil
<a name="profile"></a>

Tipo  
 `string` 

A opção “perfil” especifica qual perfil usar quando as credenciais são criadas a partir do arquivo de AWS credenciais em seu diretório HOME (normalmente). `~/.aws/credentials` Essa configuração substitui a variável de ambiente `AWS_PROFILE`.

**nota**  
Quando você especifica a opção “perfil”, a `"credentials"` opção é ignorada e as configurações relacionadas à credencial no arquivo de AWS configuração (normalmente`~/.aws/config`) são ignoradas.

```
// Use the "production" profile from your credentials file
$ec2 = new Aws\Ec2\Ec2Client([
    'version' => '2014-10-01',
    'region'  => 'us-west-2',
    'profile' => 'production'
]);
```

Consulte [Credenciais para a AWS SDK para PHP versão 3](guide_credentials.md) para obter mais informações sobre como configurar credenciais e o formato de arquivo.ini.

## region
<a name="cfg-region"></a>

Tipo  
 `string` 

Obrigatório  
true

AWS Região à qual se conectar. Consulte as [Regiões e endpoints da AWS](https://docs.aws.amazon.com/general/latest/gr/rande.html) para obter uma lista de regiões disponíveis.

```
// Set the Region to the EU (Frankfurt) Region
$s3 = new Aws\S3\S3Client([
    'region'  => 'eu-central-1',
    'version' => '2006-03-01'
]);
```

## retries
<a name="config-retries"></a>

Tipo  
 `int|array|Aws\CacheInterface|Aws\Retry\ConfigurationInterface|callable` 

Padrão  
 `int(3)` 

Configura o modo de repetição e o número máximo de tentativas permitidas para um cliente. Passe `0` para desativar as repetições.

Os três modos de repetição são:
+ `legacy`: a implementação padrão de nova tentativa herdada
+ `standard`: adiciona um sistema de cota de repetição para evitar novas tentativas que provavelmente não serão bem-sucedidas 
+  `adaptive`: se baseia no modo padrão, adicionando um limitador de taxa no lado do cliente. Observe que este modo é considerado experimental.

A configuração para novas tentativas consiste no modo e no máximo de tentativas a serem usadas para cada solicitação. A configuração pode ser definida em alguns locais diferentes, na seguinte ordem de precedência.

 **Ordem de precedência** 

A ordem de precedência para a configuração de repetição é a seguinte (1 substitui 2, 3, etc.):

1. Opção de configuração de cliente

1. Variáveis de ambiente

1. AWS Arquivo de configuração compartilhado

 **Variáveis de ambiente** 
+  `AWS_RETRY_MODE` definido como `legacy`, `standard` ou `adaptive`
+  `AWS_MAX_ATTEMPTS` definido como um valor inteiro para o máximo de tentativas por solicitação

 **Chaves do arquivo de configuração compartilhado** 
+  `retry_mode` definido como `legacy`, `standard` ou `adaptive`
+  `max_attempts` definido como um valor inteiro para o máximo de tentativas por solicitação

 **Configuração do cliente** 

O exemplo a seguir desativa as repetições para o cliente do Amazon DynamoDB.

```
// Disable retries by setting "retries" to 0
$client = new Aws\DynamoDb\DynamoDbClient([
    'version' => '2012-08-10',
    'region'  => 'us-west-2',
    'retries' => 0
]);
```

O exemplo a seguir transmite um inteiro, que assumirá o modo `legacy` por padrão com o número de novas tentativas transmitido

```
// Disable retries by setting "retries" to 0
$client = new Aws\DynamoDb\DynamoDbClient([
    'version' => '2012-08-10',
    'region'  => 'us-west-2',
    'retries' => 6
]);
```

**O objeto `Aws\Retry\Configuration` aceita dois parâmetros, o modo de repetição**  
e um inteiro para o máximo de tentativas por solicitação. Este exemplo transmite um

 objeto `Aws\Retry\Configuration` para a configuração de repetição.

```
use Aws\EndpointDiscovery\Configuration;
use Aws\S3\S3Client;

$enabled = true;
$cache_limit = 1000;

$config = new Aws\Retry\Configuration('adaptive', 10);

$s3 = new Aws\S3\S3Client([
    'region' => 'us-east-2',
    'retries' => $config,
]);
```

Este exemplo transmite uma matriz para a configuração de repetição.

```
use Aws\S3\S3Client;

$s3 = new S3Client([
    'region' => 'us-west-2',
    'retries' => [
        'mode' => 'standard',
        'max_attempts' => 7
    ],
]);
```

Este exemplo transmite uma instância de `Aws\CacheInterface` para armazenar em cache os valores retornados pelo provedor de configuração de repetição padrão.

```
use Aws\DoctrineCacheAdapter;
use Aws\S3\S3Client;
use Doctrine\Common\Cache\ApcuCache;

$s3 = new S3Client([
    'region' => 'us-west-2',
    'endpoint_discovery' => new DoctrineCacheAdapter(new ApcuCache),
]);
```

## scheme
<a name="scheme"></a>

Tipo  
 `string` 

Padrão  
 `string(5) "https"` 

Esquema de URI para uso ao conectar-se. O SDK usa endpoints "https" (isto é, usa conexões SSL/TLS) por padrão. Você pode tentar se conectar a um serviço por meio de um endpoint "http" não criptografado definindo `scheme` como "http".

```
$s3 = new Aws\S3\S3Client([
    'version' => '2006-03-01',
    'region'  => 'us-west-2',
    'scheme'  => 'http'
]);
```

Consulte [Regiões e endpoints da AWS](https://docs.aws.amazon.com/general/latest/gr/rande.html) para obter uma lista de endpoints e saber se um serviço é compatível com o esquema `http`.

## service
<a name="service"></a>

Tipo  
 `string` 

Obrigatório  
true

Nome do serviço a ser usado. Esse valor é fornecido por padrão ao usar um cliente fornecido pelo SDK (por exemplo, `Aws\S3\S3Client`). Essa opção é útil ao testar um serviço que ainda não foi publicado no SDK, mas que você tem disponível no disco.

## signature\$1provider
<a name="signature-provider"></a>

Tipo  
 `callable` 

Um chamável que aceita um nome de versão da assinatura (por exemplo,`v4`), um nome de serviço e AWS região e retorna um `Aws\Signature\SignatureInterface` objeto ou `NULL` se o provedor conseguir criar um assinante para os parâmetros fornecidos. Esse provedor é usado para criar os assinantes usados pelo cliente.

Há várias funções fornecidas pelo SDK na classe `Aws\Signature\SignatureProvider` que podem ser usadas para criar provedores de assinatura personalizados.

## signature\$1version
<a name="signature-version"></a>

Tipo  
 `string` 

Uma sequência que representa uma versão da assinatura personalizada para uso com um serviço (por exemplo, `v4` etc.). A versão da assinatura por operação PODE substituir essa versão de assinatura solicitada, se necessário.

Os exemplos a seguir mostram como configurar um cliente do Amazon S3 para usar o [Signature versão 4](https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html):

```
// Set a preferred signature version
$s3 = new Aws\S3\S3Client([
    'version'           => '2006-03-01',
    'region'            => 'us-west-2',
    'signature_version' => 'v4'
]);
```

**nota**  
O `signature_provider` usado pelo cliente DEVE poder criar a opção de `signature_version` que você fornece. O `signature_provider` padrão usado pelo SDK pode criar objetos de assinatura para "v4" e versões de assinaturas "anônimas".

## ua\$1append
<a name="ua-append"></a>

Tipo  
 `string|string[]` 

Padrão  
 `[]` 

Uma sequência ou matriz de sequências que são adicionadas à sequência de agente de usuário passada para o manipulador HTTP.

## use\$1aws\$1shared\$1config\$1files
<a name="use-aws-shared-config-files"></a>

Tipo  
 `bool|array` 

Padrão  
 `bool(true)` 

Defina como false para desativar a verificação do arquivo de configuração compartilhado em '\$1/. aws/config’ and ‘\$1/.aws/credentials'. Isso substituirá a variável de AWS\$1CONFIG\$1FILE ambiente.

## validar
<a name="validate"></a>

Tipo  
 `bool|array` 

Padrão  
 `bool(true)` 

Defina como `false` para desativar a validação do parâmetro do lado do cliente. Você pode descobrir que desligar a validação melhorará um pouco o desempenho do cliente, mas a diferença é insignificante.

```
// Disable client-side validation
$s3 = new Aws\S3\S3Client([
    'version'  => '2006-03-01',
    'region'   => 'eu-west-1',
    'validate' => false
]);
```

Defina como uma matriz associativa de opções de validação para habilitar restrições específicas de validação:
+  `required` - Validar se os parâmetros necessários estão presentes (ativado por padrão).
+  `min` - Validar o comprimento mínimo de um valor (ativado por padrão).
+  `max` - Validar o comprimento máximo de um valor.
+  `pattern` - Validar se o valor corresponde a uma expressão regular.

```
// Validate only that required values are present
$s3 = new Aws\S3\S3Client([
    'version'  => '2006-03-01',
    'region'   => 'eu-west-1',
    'validate' => ['required' => true]
]);
```

## version
<a name="cfg-version"></a>

Tipo  
 `string` 

Obrigatório  
false

Esta opção especifica a versão do serviço Web a ser utilizada (por exemplo, `2006-03-01`).

A partir da versão 3.277.10 do SDK, a opção “versão” não é necessária. Se você não especificar a opção “versão”, o SDK usará a versão mais recente do cliente de serviço.

Duas situações exigem um parâmetro de “versão” quando você cria um cliente de serviço.
+ Você usa uma versão do SDK do PHP anterior à 3.277.10.
+ Você usa a versão 3.277.10 ou posterior e deseja usar uma versão diferente da 'mais recente' para um cliente de serviço.

Por exemplo, o snippet a seguir usa a versão 3.279.7 do SDK, mas não a versão mais recente do `Ec2Client`.

```
$ec2Client = new \Aws\Ec2\Ec2Client([
    'version' => '2015-10-01',
    'region' => 'us-west-2'
]);
```

Especificar uma restrição de versão garante que o código não será afetado por uma alteração de interrupção feita no serviço.

Uma lista de versões disponíveis da API pode ser localizada em cada [página da documentação da API](https://docs.aws.amazon.com/aws-sdk-php/v3/api/index.html) do cliente. Se não for possível carregar uma versão específica da API, poderá ser necessário atualizar sua cópia do SDK.