使用 适用于 PHP 的 Amazon SDK 版本 3 来签署 Amazon OpenSearch Service 搜索请求
Amazon OpenSearch Service 是一项托管服务,让用户能够轻松地部署、操作和扩展 Amazon OpenSearch Service(一个流行的开源搜索和分析引擎)。OpenSearch Service 支持直接访问 Amazon OpenSearch Service API。这意味着,开发人员可以使用他们熟悉的工具以及强大的安全选项。许多 Amazon OpenSearch Service 客户端都支持请求签名,但如果您使用的客户端不支持,则可以使用 适用于 PHP 的 Amazon SDK 的内置凭证提供程序和签署人对任意 PSR-7 请求签名。
以下示例演示如何:
-
使用 SignatureV4 通过 Amazon 签名协议签署请求。
适用于 PHP 的 Amazon SDKGitHub 上提供了
凭证
运行示例代码之前,请配置您的 Amazon 凭证,如 通过适用于 PHP 的 Amazon SDK 版本 3 使用 Amazon 进行身份验证 中所述。然后导入 适用于 PHP 的 Amazon SDK,如 安装适用于 PHP 的 Amazon SDK 版本 3 中所述。
签署 OpenSearch Service 请求
OpenSearch Service 使用签名版本 4。这意味着,您需要根据服务的签名名称(在此示例中为 es)和 OpenSearch Service 域的 Amazon 区域来签署请求。在 Amazon Web Services 一般参考 中的 Amazon 区域和终端节点页面上可以找到 OpenSearch Service 支持区域的完整列表。但在此示例中,我们将针对 us-west-2 区域中的 OpenSearch Service 域来签署请求。
您需要提供凭证,可以通过 SDK 的默认凭证提供程序链或通过 适用于 PHP 的 Amazon SDK 版本 3 的凭证中介绍的任何形式的凭证来提供。您还将需要一个 PSR-7 请求(在下面的代码中假定名为 $psr7Request)。
// Pull credentials from the default provider chain $provider = Aws\Credentials\CredentialProvider::defaultProvider(); $credentials = call_user_func($provider)->wait(); // Create a signer with the service's signing name and Region $signer = new Aws\Signature\SignatureV4('es', 'us-west-2'); // Sign your request $signedRequest = $signer->signRequest($psr7Request, $credentials);