Fazer solicitações de AWS service (Serviço da AWS) usando o AWS SDK para PHP versão 3 - AWS SDK para 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á.

Fazer solicitações de AWS service (Serviço da AWS) usando o AWS SDK para PHP versão 3

Visão geral do fluxo de trabalho de solicitação do SDK

Trabalhar com o AWS SDK para PHP versão 3 segue um padrão consistente em todos os Serviços da AWS. O fluxo de trabalho básico envolve três etapas principais:

  1. Criar um cliente de serviço: instancie um objeto de Cliente para o AWS service (Serviço da AWS) que você deseja usar.

  2. Executar operações: chame métodos no cliente que correspondam às operações na API do serviço.

  3. Processar resultados: trabalhe com o objeto Resultado semelhante a uma matriz, retornado em caso de sucesso, ou trate qualquer exceção gerada em caso de falha.

As seções a seguir explicam cada uma dessas etapas em detalhes, começando com a criação e configuração de clientes de serviço.

Criar um cliente de serviço básico

Você pode criar um cliente passando uma matriz associativa de opções para um construtor do cliente.

Importações

require 'vendor/autoload.php'; use Aws\S3\S3Client; use Aws\Exception\AwsException;

Código de exemplo

//Create an S3Client $s3 = new Aws\S3\S3Client([ 'region' => 'us-east-2' // Since version 3.277.10 of the SDK, ]); // the 'version' parameter defaults to 'latest'.

Informações sobre o parâmetro opcional “versão” estão disponíveis no tópico de opções de configuração.

Observe que não fornecemos explicitamente credenciais ao cliente. Isso porque o SDK usa a cadeia de provedores de credenciais padrão para procurar informações de credencial.

Todas as opções de configuração geral do cliente estão descritas em detalhes no Opções de construtor de cliente do AWS SDK para PHP versão 3. A matriz de opções fornecidas a um 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 para cada cliente.

Embora o exemplo acima mostre a criação de cliente básico, você pode personalizar seus clientes de serviço para atender a requisitos específicos. Para obter informações mais detalhadas sobre como configurar clientes de serviço por meio de código, consulte Configurar clientes de serviço no código para o AWS SDK para PHP versão 3. Se você precisar configurar clientes de serviço usando arquivos de configuração externos ou variáveis de ambiente, consulte Configurar clientes de serviço para o AWS SDK para PHP versão 3 externamente.

Fazer solicitações

É possível fazer solicitações de serviço chamando o método de mesmo nome em um objeto de cliente. Por exemplo, para executar a operação PutObject do Amazon S3, chame o método Aws\S3\S3Client::putObject().

Importações

require 'vendor/autoload.php'; use Aws\S3\S3Client;

Código de exemplo

// Use the us-east-2 region and latest version of each client. $sharedConfig = [ 'profile' => 'default', 'region' => 'us-east-2' ]; // Create an SDK class used to share configuration across clients. $sdk = new Aws\Sdk($sharedConfig); // Use an Aws\Sdk class to create the S3Client object. $s3Client = $sdk->createS3(); // Send a PutObject request and get the result object. $result = $s3Client->putObject([ 'Bucket' => 'amzn-s3-demo-bucket', 'Key' => 'my-key', 'Body' => 'this is the body!' ]); // Download the contents of the object. $result = $s3Client->getObject([ 'Bucket' => 'amzn-s3-demo-bucket', 'Key' => 'my-key' ]); // Print the body of the result by indexing into the result object. echo $result['Body'];

As operações disponíveis para um cliente e a estrutura de entrada e saída são definidas em tempo de execução com base em um arquivo de descrição do serviço. Ao criar um cliente, se você não fornecer um parâmetro version (por exemplo, “2006-03-01” ou “mais recente”) do modelo de serviço, o cliente usará como padrão a versão mais recente. O SDK localiza o arquivo de configuração correspondente com base na versão fornecida.

Todos os métodos de operação, como o putObject(), aceitam um único argumento, uma matriz associativa que representa os parâmetros da operação. A estrutura dessa matriz (e a estrutura do objeto do resultado) é definida para cada operação na Documentação da API do SDK (por exemplo, consulte a documentação da API para a operação putObject).

Opções do manipulador HTTP

Você também pode ajustar como o manipulador HTTP subjacente executa a solicitação usando o parâmetro especial @http. As opções que podem ser incluídas no parâmetro @http são as mesmas que podem ser definidas ao instanciar o cliente com a opção de cliente "http".

// Send the request through a proxy $result = $s3Client->putObject([ 'Bucket' => 'amzn-s3-demo-bucket', 'Key' => 'my-key', 'Body' => 'this is the body!', '@http' => [ 'proxy' => 'http://192.168.16.1:10' ] ]);

Trabalhar com objetos de resultados

A execução de uma operação bem-sucedida retorna um objeto Aws\Result. Em vez de retornar os dados brutos XML ou JSON de um serviço, o SDK força os dados da resposta em uma estrutura de matriz associativa. Ele normaliza alguns aspectos dos dados com base em seu conhecimento do serviço específico e da estrutura da resposta subjacente.

É possível acessar os dados no objeto AWS\Result como uma matriz PHP associativa.

Importações

require 'vendor/autoload.php'; use Aws\S3\S3Client; use Aws\Exception\AwsException;

Código de exemplo

// Use the us-east-2 region and latest version of each client. $sharedConfig = [ 'profile' => 'default', 'region' => 'us-east-2', ]; // Create an SDK class used to share configuration across clients. $sdk = new Aws\Sdk($sharedConfig); // Use an Aws\Sdk class to create the S3Client object. $s3 = $sdk->createS3(); $result = $s3->listBuckets(); foreach ($result['Buckets'] as $bucket) { echo $bucket['Name'] . "\n"; } // Convert the result object to a PHP array $array = $result->toArray();

O conteúdo do objeto do resultado depende da operação executada e da versão de um serviço. A estrutura do resultado de cada operação da API é documentada na documentação da API para cada operação.

O SDK é integrado com o JMESPath, um DSL usado para pesquisar e manipular dados JSON ou, em nosso caso, matrizes PHP. O objeto do resultado contém um método search() que você pode usar para extrair dados de forma declarativa do resultado.

Código de exemplo

$s3 = $sdk->createS3(); $result = $s3->listBuckets();
$names = $result->search('Buckets[].Name');