aws php环境变量,版本 3 具有 Amazon CloudSearch 对自定义 AWS SDK for PHP 域请求进行签名 - 适用于 PHP 的 AWS 开发工具包...

AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门。

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

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

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

PSR-7 请求进行签名。

例如,如果您要按照 Cloud Search 的入门指南操作,并想在第 3 步中使用受 IAM 保护的域,则需要按以下方式签署并执行请求。

以下示例演示如何:

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

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

Credentials

签署 CSlong 域请求

导入

require './vendor/autoload.php';

use Aws\Credentials\CredentialProvider;

use Aws\Signature\SignatureV4;

use GuzzleHttp\Client;

use GuzzleHttp\Psr7\Request;

示例代码

function searchDomain($client, $domainName, $domainId,

$domainRegion, $searchString)

{

$domainPrefix = 'search-';

$cloudSearchDomain = 'cloudsearch.amazonaws.com';

$cloudSearchVersion = '2013-01-01';

$searchPrefix = 'search?';

// Specify the search to send.

$request = new Request(

'GET',

"https://{$domainPrefix}{$domainName}-{$domainId}.{$domainRegion}." .

"{$cloudSearchDomain}/{$cloudSearchVersion}/" .

"{$searchPrefix}{$searchString}"

);

// Get default AWS account access credentials.

$credentials = call_user_func(CredentialProvider::defaultProvider())->wait();

// Sign the search request with the credentials.

$signer = new SignatureV4('cloudsearch', $domainRegion);

$request = $signer->signRequest($request, $credentials);

// Send the signed search request.

$response = $client->send($request);

// Report the search results, if any.

$results = json_decode($response->getBody());

$message = '';

if ($results->hits->found > 0) {

$message .= 'Search results:' . "\n";

foreach($results->hits->hit as $hit)

{

$message .= $hit->fields->title . "\n";

}

} else {

$message .= 'No search results.';

}

return $message;

}

function searchADomain()

{

$domainName = 'my-search-domain';

$domainId = '7kbitd6nyiglhdtmssxEXAMPLE';

$domainRegion = 'us-east-1';

$searchString = 'q=star+wars&return=title';

$client = new Client();

echo searchDomain($client, $domainName, $domainId,

$domainRegion, $searchString);

}

// Uncomment the following line to run this code in an AWS account.

// searchADomain();

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值