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

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

提出和签署 OpenSearch 服务请求

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

  • 要调用 OpenSearch 服务配置 API,我们建议您使用其中一个Amazon SDKs。与创建和签署自己的请求相比,这 SDKs极大地简化了流程,可以为您节省大量时间。配置 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" } }

    如果您使用其中一个 SDKs,例如 Boto 3,SDK 会自动处理请求签名:

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

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

  • 要拨打电话 OpenSearch APIs,您必须签署自己的请求。它们 OpenSearch APIs 使用以下格式:

    domain-id.region.es.amazonaws.com

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

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

该服务会忽略 URLs 为使用签名版本 4 签名的 HTTP POST 请求传入的参数。