View a markdown version of this page

提出和签署 OpenSearch 服务请求 - 亚马逊 OpenSearch 服务
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)。

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

提出和签署 OpenSearch 服务请求

即使您配置了完全开放的基于资源的访问策略,对 OpenSearch 服务配置 API 的所有请求也必须经过签名。如果您的策略指定了 IAM 角色或用户,则对 OpenSearch API 的请求也必须使用签 Amazon 名版本 4 进行签名。签名方法因 API 而异:

  • 要调用 OpenSearch 服务配置 API,我们建议您使用其中一个 Amazon SDK。与创建和签署您自己的请求相比,开发工具包可大大简化流程,从而为您节省大量时间。配置 API 终端节点采用以下格式:

    es.region.amazonaws.com/2021-01-01/

    例如,以下请求将对 movies 域进行配置更改,但您必须自行签名(不推荐):

    POST https://es.us-east-1.amazonaws.com/2021-01-01/opensearch/domain/movies/config { "ClusterConfig": { "InstanceType": "c5.xlarge.search" } }

    如果您使用了其中一个开发工具包(如 Boto 3),该开发工具包将自动处理请求签名:

    import boto3 client = boto3.client(es) response = client.update_domain_config( DomainName='movies', ClusterConfig={ 'InstanceType': 'c5.xlarge.search' } )

    有关 Java 代码示例,请参阅使用 Amazon SDKs 与亚马逊 OpenSearch 服务互动。

  • 要调用 OpenSearch API,您必须签署自己的请求。 OpenSearch API 采用以下格式:

    domain-id.region.es.amazonaws.com

    例如,以下请求将在 movies 索引中搜索 thor:

    GET https://my-domain.us-east-1.es.amazonaws.com/movies/_search?q=thor
注意

对于用签名版本 4 签署的 HTTP POST 请求,服务会忽略在 URL 中传入的参数。