

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

# Amazon OpenSearch 无服务器的收集终端节点
<a name="serverless-collection-endpoints"></a>

Amazon OpenSearch Serverless 在域上 NextGen 提供基于资源的终端节点。`on.aws`您可以使用每个集合的终端节点来访问单个集合，也可以使用每个账户的终端节点通过一个主机名访问您所在区域 AWS 账户 中的每个集合。两个终端节点均采用标准配置 AWS PrivateLink ，即通过亚马逊 VPC 控制台或使用 Amazon EC2 API 创建 VPC 终端节点。`CreateVpcEndpoint`

OpenSearch Serverless Classic 在上使用每集合端点 `aoss.amazonaws.com`

**Topics**
+ [端点类型](#serverless-collection-endpoints-types)
+ [Per-collection 端点](#serverless-per-collection-endpoint)
+ [Per-account endpoint](#serverless-per-account-endpoint)

## 端点类型
<a name="serverless-collection-endpoints-types"></a>

OpenSearch Serverless 支持以下集合端点格式。


**OpenSearch 无服务器集合端点格式**  

| 端点类型 | Format | 说明 | 
| --- | --- | --- | 
| Per-collection (NextGen) | {{collection-id}}.aoss.{{region}}.on.aws | 从主机名中标识集合。每个集合一个端点。 | 
| Per-account (NextGen) | {{account-id}}.aoss.{{region}}.on.aws | 标识来自请求标头的集合。一个终端节点为你所在区域 AWS 账户 的每个集合提供服务。 | 
| Per-collection （经典） | {{collection-id}}.{{region}}.aoss.amazonaws.com | 从主机名中标识集合。每个经典集合一个端点。 | 

两种 NextGen 终端节点格式都使用标准 AWS PrivateLink 的 VPC 访问方式。有关创建 VPC 终端节点的更多信息，请参阅 [通过以下方式访问数据平面 AWS PrivateLink](serverless-vpc.md)。

在支持 FIPS AWS 区域 的过程中， OpenSearch Serverless 还提供了这些端点的 FIPS-compliant 变体。有关更多信息，请参阅 [将 FIPS 端点与无服务器一起使用 OpenSearch](fips-compliance-opensearch-serverless.md#using-fips-endpoints-opensearch-serverless)。

## Per-collection 端点
<a name="serverless-per-collection-endpoint"></a>

每个集合的端点通过包含集合 ID 的主机名来定位单个集合。终端节点显示在 OpenSearch Serverless 控制台的集合详细信息页面上，并由 [https://docs.aws.amazon.com/opensearch-service/latest/ServerlessAPIReference/API_BatchGetCollection.html](https://docs.aws.amazon.com/opensearch-service/latest/ServerlessAPIReference/API_BatchGetCollection.html)API 在`collectionEndpoint`字段中返回。

Format  
+ NextGen: `{{collection-id}}.aoss.{{region}}.on.aws`
+ 经典：`{{collection-id}}.{{region}}.aoss.amazonaws.com`

以下请求将文档索引到中的集合`movies`索引`1tg2xudton46knx2a95g`中`us-east-1`：

```
PUT https://1tg2xudton46knx2a95g.aoss.us-east-1.on.aws/movies/_doc/1
{
  "title": "Shawshank Redemption",
  "year": 1994
}
```

## Per-account endpoint
<a name="serverless-per-account-endpoint"></a>

每个账户的终端节点通过单个主机名定位您所在区域 AWS 账户 中的每个集合。由于所有集合的主机名都相同，因此您可以通过以下其中一个 HTTP 标头来识别每个请求的目标集合（至少需要一个；如果同时包含两个标头，则它们必须引用同一个集合）：
+ `x-amz-aoss-collection-name`— 客户分配的馆藏名称
+ `x-amz-aoss-collection-id`— 服务生成的集合 ID

每个账户的端点允许单个客户端通过标头切换每个请求的目标集合，从而在多个集合之间共享一个连接池。这对于将每个租户建模为单独集合的多租户应用程序非常有用。

使用`x-amz-aoss-collection-name`，这样您的应用程序就可以用它已经知道的名称路由请求。您可以跳过存储或查找服务生成的集合 ID。

 OpenSearch 无服务器控制台中未显示每个账户的终端节点。根据您的 AWS 账户 ID 和地区进行构建。

Format  
+ NextGen: `{{account-id}}.aoss.{{region}}.on.aws`

以下请求将文档索引到账户`my-collection`中的集合`movies`索引`123456789012`中`us-east-1`：

```
PUT https://123456789012.aoss.us-east-1.on.aws/movies/_doc/1
x-amz-aoss-collection-name: my-collection

{
  "title": "Shawshank Redemption",
  "year": 1994
}
```

**注意**  
`x-amz-aoss-collection-name`和`x-amz-aoss-collection-id`标题必须是 SigV4-signed。 AWS SDK 会自动执行此操作。