

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 提出並簽署 OpenSearch Service 請求
<a name="managedomains-signing-service-requests"></a>

即使設定完全開放以資源為基礎的存取政策，也必須簽署對 OpenSearch Service 組態 API 的*所有*請求。如果您的政策指定 IAM 角色或使用者，對 OpenSearch APIs請求也必須使用 AWS Signature 第 4 版簽署。簽署方法因 API 而異：
+ 若要呼叫 OpenSearch Service 組態 API，建議您使用其中一個 [AWS 開發套件](https://docs.aws.amazon.com/sdkref/latest/guide/overview.html)。開發套件已大幅簡化程序，相較於建立和簽署您自己的請求，可為您節省大量時間。組態 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](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/opensearch.html#OpenSearchService.Client.update_domain_config)，開發套件會自動處理下列簽署：

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

  如需 Java 程式碼範例，請參閱[使用 AWS SDKs與 Amazon OpenSearch Service 互動](configuration-samples.md)。
+ 若要呼叫 OpenSearch API，您必須簽署您自己的請求。OpenSearch API 採用下列格式：

  ```
  {{domain-id}}.{{region}}.es.amazonaws.com
  ```

  例如，以下請求將搜尋 *thor* 的 `movies` 索引：

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

**注意**  
對於使用 Signature Version 4 簽署的 HTTP POST 請求，此服務會忽略 URL 中傳入的參數。