Select your cookie preferences

We use essential cookies and similar tools that are necessary to provide our site and services. We use performance cookies to collect anonymous statistics, so we can understand how customers use our site and make improvements. Essential cookies cannot be deactivated, but you can choose “Customize” or “Decline” to decline performance cookies.

If you agree, AWS and approved third parties will also use cookies to provide useful site features, remember your preferences, and display relevant content, including relevant advertising. To accept or decline all non-essential cookies, choose “Accept” or “Decline.” To make more detailed choices, choose “Customize.”

Signing custom Amazon CloudSearch domain requests with AWS SDK for PHP Version 3 - AWS SDK for PHP

Signing custom Amazon CloudSearch domain requests with AWS SDK for PHP Version 3

Amazon CloudSearch domain requests can be customized beyond what is supported by the AWS SDK for PHP. In cases where you need to make custom requests to domains protected by IAM authentication, you can use the SDK’s credential providers and signers to sign any PSR-7 request.

For example, if you’re following Cloud Search’s Getting Started guide and want to use an IAM-protected domain for Step 3, you would need to sign and execute your request as follows.

The following examples show how to:

  • Sign a request with the AWS signing protocol using SignatureV4.

All the example code for the AWS SDK for PHP is available here on GitHub.

Credentials

Before running the example code, configure your AWS credentials, as described in Credentials. Then import the AWS SDK for PHP, as described in Basic usage.

Sign Amazon CloudSearch domain request

Imports

require './vendor/autoload.php'; use Aws\Credentials\CredentialProvider; use Aws\Signature\SignatureV4; use GuzzleHttp\Client; use GuzzleHttp\Psr7\Request;

Sample Code

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();
PrivacySite termsCookie preferences
© 2024, Amazon Web Services, Inc. or its affiliates. All rights reserved.