Configuração para a AWS SDK for PHP versão 3 - AWS SDK for PHP

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 para a AWS SDK for PHP versão 3

Essas opções do construtor de cliente podem ser fornecidas em um construtor de cliente ou fornecidas à classe Aws\Sdk. 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 personalizadas de configuração do cliente são descritas na APIdocumentação de cada cliente.

Observe que algumas opções de configuração verificarão e usarão valores padrão com base em variáveis de ambiente ou em um arquivo AWS de configuração. 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 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 no AWS SDKsGuia de referência de ferramentas.

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 guia de uso básico para obter mais informações sobre a construção de clientes.

api_provider

Tipo

callable

Um PHP chamável que aceita um argumento de tipo, serviço e versão e retorna uma matriz de dados de configuração correspondentes. 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 API arquivos da src/data pasta doSDK.

credenciais

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 IAM Identity Center deve ser usado. Esse provedor também é conhecido como provedor de SSO credenciais.

$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 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 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 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 for PHP versão 3.

nota

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

depurar

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 de depuração informações sobre o HTTP manipulador específico usado por um cliente (por exemplo, saída de depuração cURL).

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, PHP a echo função's é usada.

stream_size (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_auth (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 desativar o recurso de “depuração” de HTTP manipuladores de nível inferior (por exemplo, saída c detalhada). URL

auth_headers (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_strings (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 HTTP manipulador produzidas pela opção de http depuração. A saída da depuração é extremamente útil ao diagnosticar problemas no AWS SDK for PHP. Forneça a saída de depuração para um caso de falha isolado ao abrir problemas noSDK.

stats

Tipo

bool|array

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

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 true para habilitar 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 HTTP adaptadores de nível inferior (por exemplo, valores retornados). GuzzleHttpTransferStats HTTPos manipuladores devem suportar uma opção __on_transfer_stats para que isso tenha efeito. HTTPas estatísticas 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 do cliente. HTTP 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

Tipo

string

O serviço web completoURI. Isso é necessário para serviços, como AWS Elemental MediaConvert, 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).

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 para obter uma lista das AWS regiões e endpoints disponíveis.

endpoint_provider

Tipo

Aws\EndpointV2\EndpointProviderV2|callable

Uma instância opcional de EndpointProvider V2 ou PHP callable 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_discovery

Tipo

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

A descoberta de endpoints identifica e se conecta ao endpoint correto para um serviço API que oferece suporte à descoberta de endpoints. 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 com o endpoint apropriado de um serviço API para operações especificadas pelo serviço.

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_limit" 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

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ê coloca resultados ou exceções na fila e eles os MockHandler desenfileirarão em 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

Tipo

array

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

O SDK suporta as seguintes opções de configuração:

cert

Tipo

string|array

Especifique o certificado PEM formatado do lado do cliente.

  • 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_timeout

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

Tipo

bool|resource

Instrui o HTTP manipulador subjacente a gerar informações de depuração. As informações de depuração fornecidas por diferentes HTTP manipuladores variam.

  • Passe true para gravar a saída de depuração emSTDOUT.

  • Passe a resource como retornado por fopen para gravar a saída de depuração em um recurso de PHP fluxo específico.

decode_content

Tipo

bool

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

nota

A decodificação de conteúdo é ativada por padrão no HTTP manipulador padrão SDK do. 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

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

Tipo

bool|string

Essa opção é passada para o HTTP manipulador 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

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.

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

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

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

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 deURIs. 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 URI esquema do e o valor é o proxy do determinado URI (ou seja, você pode fornecer proxies diferentes 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

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 baixar o corpo da resposta em um PHP stream.

  • 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 baixar o corpo da resposta para um objeto de PSR fluxo específico.

nota

O SDK baixa o corpo da resposta para um fluxo PHP temporário 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

Tipo

bool

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

transmissão

Tipo

bool

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

timeout

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

Tipo

bool|string

Você pode personalizar o comportamento de verificação por pares SSL e TLS certificados do SDK usando a verify http opção.

  • Defina como true para ativar a verificação TLS do certificadoSSL/peer 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 de CA não puder ser encontrado para seu sistema e você receber um erro, forneça o caminho para um pacote de CA para o. SDK Se você não precisa de um pacote de CA específico, a Mozilla fornece um pacote de CA comumente usado, que você pode baixar aqui (mantido pelo mantenedor do c). URL Depois de ter um pacote CA disponível no disco, você pode definir a configuração openssl.cafile PHP .ini para apontar para o caminho do arquivo, permitindo que você omita a opção de solicitação. verify Você pode encontrar muito mais detalhes sobre SSL certificados no URLsite c.

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_handler

Tipo

callable

A http_handler opção é usada para integrá-lo SDK com outros HTTP clientes. 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 SDK o repita automaticamente a operação, se necessário.

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

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

TLSVersão de configuração

Um caso de uso é definir a TLS versão usada pelo Guzzle com o Curl, supondo que o Curl esteja instalado em seu ambiente. Observe as restrições de versão do Curl para qual versão do TLS é compatível. A versão mais recente é usada por padrão. Se a TLS versão for definida explicitamente e o servidor remoto não suportar essa versão, ele produzirá um erro em vez de usar uma TLS versão anterior.

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

Exemplo de configuração TLS 1.2 com o 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.

profile

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 HOME diretório (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 for PHP versão 3 para obter mais informações sobre como configurar credenciais e o formato de arquivo.ini.

região

Tipo

string

Obrigatório

verdadeiro

AWS Região à qual se conectar. Consulte as Regiões e endpoints da AWS 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

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

  2. Variáveis de ambiente

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

Tipo

string

Padrão

string(5) "https"

URIesquema a ser usado ao se conectar. O SDK usa endpoints “https” (ou seja, usa TLS conexõesSSL/) 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 para obter uma lista de endpoints e saber se um serviço é compatível com o esquema http.

serviço

Tipo

string

Obrigatório

verdadeiro

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

signature_provider

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 pela SDK Aws\Signature\SignatureProvider classe que podem ser usadas para criar provedores de assinatura personalizados.

signature_version

Tipo

string

Uma sequência que representa uma versão da assinatura personalizada para uso com um serviço (por exemplo, v4 etc.). Por versão de assinatura de operação, MAY substitua 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:

// 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 seu cliente MUST poderá criar a signature_version opção que você fornece. O padrão signature_provider usado pelo SDK pode criar objetos de assinatura para versões de assinatura “v4” e “anônimas”.

ua_append

Tipo

string|string[]

Padrão

[]

Uma string ou matriz de strings que são adicionadas à string do agente do usuário passada para o HTTP manipulador.

use_aws_shared_config_files

Tipo

bool|array

Padrão

bool(true)

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

validar

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] ]);

versão

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 doSDK, a opção “versão” não é necessária. Se você não especificar a opção “versã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 PHP SDK 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 trecho a seguir usa a versão 3.279.7 doSDK, 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 das API versões disponíveis pode ser encontrada na página de API documentação de cada cliente. Se você não conseguir carregar uma API versão específica, talvez seja necessário atualizar sua cópia doSDK.