

# 教程：使用 Amazon Glue Connector for Elasticsearch
<a name="tutorial-elastisearch-connector"></a>

Elasticsearch 是一个流行的开源搜索和分析引擎，其用例包括日志分析、实时应用程序监控和点击流分析等。您可以在 Amazon Glue Studio 中配置 Amazon Glue Connector for Elasticsearch，从而将 OpenSearch 用作提取、转换、加载（ETL）任务的数据存储。此连接器在 [Amazon Web Services Marketplace](https://www.amazonaws.cn/marketplace/pp/prodview-v5ygernwn2gb6) 中免费提供。

**注意**  
 [Amazon Web Services Marketplace Elasticsearch Spark Connector](https://www.amazonaws.cn/marketplace/pp/B08PPT2V5J) 已被弃用。请改用 [Amazon Glue Connector for Elasticsearch ](https://www.amazonaws.cn/marketplace/pp/prodview-v5ygernwn2gb6)。

 在本教程中，我们将展示如何以最少的步骤连接到您的 Amazon OpenSearch Service 节点。

**Topics**
+ [先决条件](#tutorial-prerequisites)
+ [步骤 1：（可选）为您的 OpenSearch 集群信息创建 Amazon 密钥](#tutorial-step1)
+ [步骤 2：订阅连接器](#tutorial-step2)
+ [步骤 3：激活 Amazon Glue Studio 并创建连接](#tutorial-step3)
+ [步骤 4：为您的 ETL 任务配置 IAM 角色](#tutorial-step4)
+ [步骤 5：创建使用 OpenSearch 连接的任务](#tutorial-step5)
+ [步骤 6：运行任务](#tutorial-step6)

## 先决条件
<a name="tutorial-prerequisites"></a>

要使用本教程，您必须具备以下内容：
+ 对 Amazon Glue Studio 的访问权限
+ 对 Amazon 云中访问 OpenSearch 集群的访问权限
+ （可选）对 Amazon Secrets Manager 的访问权限。

## 步骤 1：（可选）为您的 OpenSearch 集群信息创建 Amazon 密钥
<a name="tutorial-step1"></a>

 要安全地存储和使用您的连接凭证，请将您的凭证保存在 Amazon Secrets Manager 中。您创建的密钥将在本教程稍后的连接中使用。凭证键值对将作为普通连接选项注入 Amazon Glue Connector for Elasticsearch。

有关创建密钥的更多信息，请参阅 [使用、创建和管理密钥 Amazon Secrets Manager](https://docs.amazonaws.cn/secretsmanager/latest/userguide/managing-secrets.html) 于 *《Amazon Secrets Manager 用户指南》*。

**创建 Amazon 密钥**

1. 登录 [Amazon Secrets Manager 控制台](https://console.amazonaws.cn/secretsmanager/)。

1. 在服务介绍页面或**密钥**列表页面上，选择 **Store a new secret (存储新密钥)**。

1. 在 **Store a new secret**（存储新密钥）页上，选择 **Other type of secret**（其他密钥类型）。此选项意味着您必须提供您的密钥的结构和详细信息。

1. 为 OpenSearch 集群用户名添加 **Key**（密钥）和 **Value**（值）对。例如：

   `es.net.http.auth.user`：{{username}}（用户名）

1. 选择 **\+ Add row**（\+ 添加行），然后为密码输入另一个键/值对。例如：

   `es.net.http.auth.pass`：{{password}}

1. 选择 **Next**（下一步）。

1. 输入密钥名称。例如：**my-es-secret**。您可以选择性地添加描述。

   记录本教程稍后使用的密钥名称，然后选择 **Next**（下一步）。

1. 再次选择 **Next**（下一步），然后选择 **Store**（存储）创建密钥。

### 后续步骤
<a name="tutorial-step1.2"></a>

 [步骤 2：订阅连接器](#tutorial-step2) 

## 步骤 2：订阅连接器
<a name="tutorial-step2"></a>

[Amazon Web Services Marketplace](https://www.amazonaws.cn/marketplace/pp/prodview-v5ygernwn2gb6#pdp-pricing) 中免费提供 Amazon Glue Connector for Elasticsearch。

**在 Amazon Web Services Marketplace 中订阅 Amazon Glue Connector for Elasticsearch**

1. 如果您尚未配置 Amazon 账户使用 License Manager，请执行以下操作：

   1. 访问 [https://console.aws.amazon.com/license-manager](https://console.amazonaws.cn/license-manager)，打开 Amazon License Manager 控制台。

   1. 选择 **Create customer managed license (创建客户托管式许可证)**。

   1. 在 **IAM permissions (one-time setup) (IAM 权限 (一次性设置))** 窗口中，选择 **I grant Amazon License Manager the required permissions (我为 Amazon License Manager 授予所需的权限)**，然后选择 **Grant permissions (授予权限)**。

      如果未看到此窗口，则表示您已配置所需的权限。

1. 请访问 [https://console.aws.amazon.com/gluestudio/](https://console.amazonaws.cn/gluestudio/) 打开 Amazon Glue Studio 控制台。

1. 在 Amazon Glue Studio 控制台，展开菜单图标（![3 short, horizontal lines in a vertical stack](http://docs.amazonaws.cn/glue/latest/dg/images/nav-menu-icon.png)），然后在导航窗格中选择 **Connectors (连接器)**。

1. 在 **Connectors (连接器)** 页面上，选择 **Go to Amazon Web Services Marketplace (转到 Amazon Web Services Marketplace)**。

1. 在 Amazon Web Services Marketplace 的 **Search Amazon Glue Studio products**（搜索产品）部分中，在搜索字段中输入 **Amazon Glue Connector for Elasticsearch**，然后按 Enter 键。

1.  选择连接器的名称，**Amazon Glue Connector for Elasticsearch**。

1. 在连接器的产品页面上，使用选项卡查看有关连接器的信息。准备好继续使用后，选择 **Continue to Subscribe (继续订阅)**。

1.  查看软件的使用条款。单击 **Accept Terms**（接受条款）。

1.  订阅过程完成后，您将看到一条通知：“Thank you for subscribing to this product\! You can now configure your software.”（感谢您订阅此产品！现在您可以配置软件。） 横幅上方将是按钮 **Continue to Configuration**（继续配置）。选择**继续配置**。

1.  在 **Configure this software**（配置此软件）页面上，选择“Fulfillment”（执行）选项。您可以选择 Amazon Glue 1.0/2.0 或 Amazon Glue 3.0。然后选择 **Continue to Launch**（继续启动）。

### 后续步骤
<a name="tutorial-step2.1"></a>

 [步骤 3：激活 Amazon Glue Studio 并创建连接](#tutorial-step3) 

## 步骤 3：激活 Amazon Glue Studio 并创建连接
<a name="tutorial-step3"></a>

在您选择 **Continue to Launch (继续启动)** 后，您可以在 Amazon Web Services Marketplace 中看到 **Launch this software (启动此软件)** 页面。您在 Amazon Glue Studio 中使用链接激活连接器后，创建连接。

**要在 Amazon Glue Studio 中部署连接器并创建连接**

1. 在 Amazon Web Services Marketplace 控制台的 **Launch this software (启动此软件)** 页面上，选择 **Usage Instructions (使用说明)**，然后选择在窗口中显示的链接。

   您的浏览器将重新定向到 Amazon Glue Studio 控制台 **Create marketplace connection (创建 Marketplace 连接)** 页面。

1. 为连接输入名称。例如：**my-es-connection**。

1. 在 **Connection access (连接访问)** 部分，为 **Connection credential type (连接凭证类型)** 选择 **User name and password (用户名和密码)**。

1. 对于 **Amazon secret (Amazon 密钥)**，输入您的密钥名称。例如：**my-es-secret**。

1. 在 **Network options**（网络选项）部分中，输入 VPC 信息，以连接到 OpenSearch 集群。

1. 选择 **Create connection and activate connector (创建连接并激活连接器)**。

### 后续步骤
<a name="tutorial-step3.1"></a>

 [步骤 4：为您的 ETL 任务配置 IAM 角色](#tutorial-step4) 

## 步骤 4：为您的 ETL 任务配置 IAM 角色
<a name="tutorial-step4"></a>

在创建 Amazon Glue ETL 任务时，您可以指定 Amazon Identity and Access Management（IAM）角色以供任务使用。角色必须授予对任务使用的所有资源的访问权限，包括 Amazon S3（任何源、目标、脚本、驱动程序文件和临时目录）以及 Amazon Glue Data Catalog 对象。

Amazon Glue ETL 任务所担任的 IAM 角色还必须具有对在上一部分创建的密钥的访问权限。预设情况下，亚马逊云科技托管式角色 `AWSGlueServiceRole` 无法访问该密钥。要设置密钥的访问控制，请参阅 [Amazon Secrets Manager 的身份验证和访问控制](https://docs.amazonaws.cn/secretsmanager/latest/userguide/auth-and-access.html)以及[限制对特定密钥的访问](https://docs.amazonaws.cn/secretsmanager/latest/userguide/auth-and-access_identity-based-policies.html#permissions_grant-limited-resources)。

**要为您的 ETL 任务配置 IAM 角色**

1. 配置[审核 ETL 任务所需的 IAM 权限](getting-started-min-privs-job.md)中所述的权限。

1. 配置如[使用连接器所需的权限](getting-started-min-privs-job.md#getting-started-min-privs-connectors)中所述的使用 Amazon Glue Studio 连接器时所需的其他权限。

### 后续步骤
<a name="tutorial-step4.1"></a>

 [步骤 5：创建使用 OpenSearch 连接的任务](#tutorial-step5) 

## 步骤 5：创建使用 OpenSearch 连接的任务
<a name="tutorial-step5"></a>

为您的 ETL 任务创建角色后，您可以在 Amazon Glue Studio 中创建一个任务，改任务使用 Open Spark ElasticSearch 的连接和连接器。

如果您的任务在 Amazon Virtual Private Cloud（Amazon VPC）中运行，请确保 VPC 配置正确。有关更多信息，请参阅 [为 ETL 任务配置 VPC](getting-started-vpc-config.md)。

**要创建使用 Elasticsearch Spark Connector 的任务**

1. 在 Amazon Glue Studio 中，选择 **Connectors**（连接器）。

1. 在 **Your connections (您的连接)** 列表中，选定您刚才创建的连接并选择 **Create job (创建任务)**。

1. 在可视任务编辑器中，选择数据源节点。在右侧 **Data source properties - Connector (数据源属性 – 连接器)** 选项卡上，配置连接器的其他信息。

   1. 选择 **Add schema (添加架构)**，然后输入数据源中的数据集架构。连接不使用存储在数据目录中的表，这意味着 Amazon Glue Studio 不了解数据架构。您必须手动提供此架构信息。有关如何使用架构编辑器的说明，请参阅[编辑自定义转换节点的架构](transforms-custom.md#transforms-custom-editschema)。

   1. 展开 **Connection options (连接选项)**。

   1. 选择 **Add new option (添加新选项)**，然后输入尚未在 Amazon 密钥中输入的连接器所需的信息：
      +  **es.nodes**: https://*<OpenSearch domain endpoint>* 
      +  **es.port**: 443
      +  **path**: test 
      +  **es.nodes.wan.only.**: true 

      有关这些连接选项的说明，请参阅：[https://www.elastic.co/guide/en/elasticsearch/hadoop/current/configuration.html](https://www.elastic.co/guide/en/elasticsearch/hadoop/current/configuration.html)。

1. 将目标节点添加至图表中。

   您的数据目标可以是 Amazon S3，也可以使用 Amazon Glue Data Catalog 或连接器的信息将数据写入其他位置。例如，您可以使用数据目录表将数据库写入 Amazon RDS，也可以将连接器用作数据目标来写入 Amazon Glue 中不支持的数据存储。

   如果为数据目标选择连接器，则您必须选择为该连接器创建的连接。此外，如果连接器提供程序需要，则您必须添加选项以向连接器提供其他信息。如果您使用包含 Amazon 密钥信息的连接，则无需在连接选项中提供用户名和密码身份验证。

1. （可选）添加如[使用 Amazon Glue 托管转换转换数据](edit-jobs-transforms.md)中所述的其他数据源和一个或多个转换节点。

1. 从步骤 3 开始，配置如[修改任务属性](managing-jobs-chapter.md#edit-jobs-properties)中所述的任务属性，然后保存任务。

### 后续步骤
<a name="tutorial-step5.1"></a>

 [步骤 6：运行任务](#tutorial-step6) 

## 步骤 6：运行任务
<a name="tutorial-step6"></a>

保存任务后，您可以运行任务来执行 ETL 操作。

**运行您为 Amazon Glue Connector for Elasticsearch 创建的任务**

1. 使用 Amazon Glue Studio 控制台，在可视编辑器页面上，选择 **Run (运行)**。

1. 在成功横幅中，选择 **Run Details (运行详细信息)**，也可以选择可视化编辑器的 **Runs (运行)** 选项卡查看有关任务运行的信息。