提出和签署 OpenSearch Service 请求 - 亚马逊 OpenSearch 服务

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

提出和签署 OpenSearch Service 请求

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

  • 要调用 OpenSearch Service 配置 API,我们建议您使用一个 AWS 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 代码示例,请参阅使用 AWS SDK 与 Amazon OpenSearch Service 进行交互

  • 要调用 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 中传入的参数。