适用于 PHP 的 AWS 开发工具包
开发人员指南
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

使用AWS SDK for PHP版本 3 对自定义 Amazon CloudSearch 域请求进行签名

可以在AWS SDK for PHP支持的范围之外对 Amazon CloudSearch 域请求进行自定义。当您需要向受 IAM 身份验证保护的域发出自定义请求时,可以使用开发工具包的凭证提供程序和签署人对任何 PSR-7 请求进行签名。

例如,如果您要遵循云搜索的入门指南并且要将受 IAM 保护的域用于第 3 步,则需要按如下所述签署并执行您的请求。

以下示例演示如何:

  • 使用 SignatureV4 通过 AWS 签名协议签署请求。

GitHub 上的此处提供了AWS SDK for PHP版本 3 的所有示例代码。

凭证

在运行示例代码之前,您需要配置 AWS 凭证,如适用于 PHP 的 AWS 开发工具包版本 3 的凭证中所述。然后导入AWS SDK for PHP,如适用于 PHP 的 AWS 开发工具包版本 3 的基本使用模式中所述。

为 CSlong 域请求签名

导入

use Aws\Credentials\CredentialProvider; use Aws\Signature\SignatureV4; use GuzzleHttp\Client; use GuzzleHttp\Psr7\Request;

示例代码

// Prepare a CloudSearch domain request $request = new Request( 'GET', 'https://<your-domain>.<region-of-domain>.cloudsearch.amazonaws.com/2013-01-01/search?q=star+wars&return=title' ); // Get your credentials from the environment $credentials = call_user_func(CredentialProvider::defaultProvider())->wait(); // Construct a request signer $signer = new SignatureV4('cloudsearch', '<region-of-domain>'); // Sign the request $request = $signer->signRequest($request, $credentials); // Send the request $response = (new Client)->send($request); $results = json_decode($response->getBody()); if ($results->hits->found > 0) { echo $results->hits->hit[0]->fields->title . "\n"; }