Submitting Configuration Requests in Amazon CloudSearch
Important
The easiest way to submit configuration requests is to use the Amazon CloudSearch console, Amazon CloudSearch command line tools, or the AWS SDK for Java, JavaScript, .NET, PHP, Ruby, or Python (Boto). The command line tools and SDKs handle the signing process for you and ensure that Amazon CloudSearch configuration requests are properly formed. For more information about the AWS SDKs, see AWS Software Development Kits
You submit Amazon CloudSearch configuration requests to the Amazon CloudSearch endpoint for your region using the AWS Query protocol. For the current list of supported regions and endpoints, see Regions and Endpoints.
AWS Query requests are HTTP or HTTPS requests submitted via HTTP GET or POST with a Query parameter named Action. You must specify the API version in all configuration requests and that version must match the API version specified when the domain was created.
You must include authorization parameters and a digital signature in every request. Amazon CloudSearch supports AWS Signature Version 4. For detailed signing instructions, see Signature V4 Signing Process in the AWS General Reference.
Note
Amazon CloudSearch throttles excessive requests to the configuration service. Throttling occurs
by action, so excessive DescribeDomains
requests
don't cause Amazon CloudSearch to throttle DescribeIndexFields
requests. The request
limit changes based on the needs of the service, but allows many calls to each action
per hour.
Structure of a Configuration Request
This reference shows Amazon CloudSearch configuration requests as URLs, which can be used directly in a browser. (Although the GET requests are shown as URLs, the parameter values are shown unencoded to make them easier to read. Keep in mind that you must URL encode parameter values when submitting requests.) The URL contains three parts:
Endpoint—the Web service entry point to act on,
cloudsearch.us-east-1.amazonaws.com
.Action—the Amazon CloudSearch configuration action you want to perform. For a complete list of actions, see Actions.
Parameters—any request parameters required for the specified action. Each query request must also include some common parameters to handle authentication. For more information, see Request Authentication.
You must specify the Version
parameter in every Amazon CloudSearch configuration request. The current Amazon CloudSearch API version is 2013-01-01.
For example, the following GET request creates a new search domain called movies:
https://cloudsearch.us-east-1.amazonaws.com ?Action=CreateDomain &DomainName=movies &Version=2013-01-01 &X-Amz-Algorithm=AWS4-HMAC-SHA256 &X-Amz-Credential=AKIAIOSFODNN7EXAMPLE/20120712/us-east-1/cloudsearch/aws4 _request &X-Amz-Date=2012-07-12T21:41:29.094Z &X-Amz-SignedHeaders=host &X-Amz-Signature=c7600a00fea082dac002b247f9d6812f25195fbaf7f0a6fc4ce08a39666c6a10 3c8dcb
Request Authentication
Requests submitted to the Configuration API are authenticated using your AWS access keys. You must include authorization parameters and a digital signature in every request. Amazon CloudSearch supports AWS Signature Version 4. For detailed signing instructions, see Signature V4 Signing Process in the AWS General Reference.
Note
If you are just getting started signing your own AWS requests, take a look at how the SDKs implement signing. The source for most of the AWS SDKs is available at https://github.com/aws
For example, to construct a CreateDomain
request, you need the following information:
Region name: us-east-1 Service name: cloudsearch API version: 2013-01-01 Date: 2014-03-12T21:41:29.094Z Access key: AKIAIOSFODNN7EXAMPLE Secret key: wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY Action: CreateDomain Action Parameters: DomainName=movies
The canonical query string for a CreateDomain
request looks like this:
Action=CreateDomain &DomainName=movies &Version=2013-01-01 &X-Amz-Algorithm=AWS4-HMAC-SHA256 &X-Amz-Credential=AKIAIOSFODNN7EXAMPLE/20120712/us-east-1/cloudsearch/aws4 _request &X-Amz-Date=2012-07-12T21:41:29.094Z &X-Amz-SignedHeaders=host
The final signed request looks like this:
https://cloudsearch.us-east-1.amazonaws.com ?Action=CreateDomain &DomainName=movies &Version=2013-01-01 &X-Amz-Algorithm=AWS4-HMAC-SHA256 &X-Amz-Credential=AKIAIOSFODNN7EXAMPLE/20120712/us-east-1/cloudsearch/aws4 _request &X-Amz-Date=2014-03-12T21:41:29.094Z &X-Amz-SignedHeaders=host &X-Amz-Signature=c7600a00fea082dac002b247f9d6812f25195fbaf7f0a6fc4ce08a39666c6a10