

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

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

Elasticsearch 是受歡迎的開源搜尋和分析引擎，適用於例如日誌分析、即時應用程式監控及點擊流分析等使用案例。您可以在 AWS Glue Studio中設定 AWS Glue Elasticsearch Connector，利用 OpenSearch 作為擷取、轉換和載入 (ETL) 任務的資料存放區。此連接器可免費從 [AWS Marketplace](https://aws.amazon.com/marketplace/pp/prodview-v5ygernwn2gb6) 取得。

**注意**  
 [AWS Marketplace Elasticsearch Spark Connector](https://aws.amazon.com/marketplace/pp/B08PPT2V5J) 已棄用。請改用 [AWS Glue Elasticsearch Connector](https://aws.amazon.com/marketplace/pp/prodview-v5ygernwn2gb6)。

 在本教學課程中，我們將展示如何以最少的步驟連接到您的 Amazon OpenSearch Service 節點。

**Topics**
+ [先決條件](#tutorial-prerequisites)
+ [步驟 1：（選用） 為您的 OpenSearch 叢集資訊建立 AWS 秘密](#tutorial-step1)
+ [步驟 2：訂閱連接器](#tutorial-step2)
+ [步驟 3：在 中啟用連接器 AWS Glue Studio 並建立連線](#tutorial-step3)
+ [步驟 4：設定 ETL 任務的 IAM 角色](#tutorial-step4)
+ [步驟 5：建立使用 OpenSearch 連線的任務](#tutorial-step5)
+ [步驟 6：執行任務](#tutorial-step6)

## 先決條件
<a name="tutorial-prerequisites"></a>

若要使用本教學課程，您必須具備下列項目：
+ 存取 AWS Glue Studio
+ 存取 AWS 雲端中的 OpenSearch 叢集
+ （選用） 存取 AWS Secrets Manager。

## 步驟 1：（選用） 為您的 OpenSearch 叢集資訊建立 AWS 秘密
<a name="tutorial-step1"></a>

 若要安全地存放和使用您的連線憑證，請將您的憑證儲存在 AWS Secrets Manager。您建立的秘密將在教學課程稍後由連線使用。登入資料金鑰/值對將做為一般連線選項饋送至 AWS Glue Connector for Elasticsearch。

如需建立秘密的詳細資訊，請參閱 *AWS Secrets Manager 使用者指南*中的[使用 AWS Secrets Manager建立和管理秘密](https://docs.aws.amazon.com/secretsmanager/latest/userguide/managing-secrets.html)。

**建立 AWS 秘密**

1. 登入 [AWS Secrets Manager 主控台](https://console.aws.amazon.com/secretsmanager/)。

1. 在服務簡介頁面或 **Secrets (秘密)** 清單頁面上，選擇 **Store a new secret (存放新的秘密)**。

1. 在 **Store a new secret** (存放新的秘密) 頁面上，選擇 **Other type of secret** (其他秘密類型)。這個選項表示您必須提供秘密架構和詳細資訊。

1. 新增**金鑰**和**數值**配對，以取得 OpenSearch 叢集使用者名稱。例如：

   `es.net.http.auth.user`: {{使用者名稱}}

1. 選擇 **\+ Add row (\+ 新增列)**，然後輸入密碼的另一個鍵值對。例如：

   `es.net.http.auth.pass`: {{密碼}}

1. 選擇**下一步**。

1. 輸入秘密名稱。例如：**my-es-secret**。您也可以選擇輸入說明。

   記錄秘密名稱 (此名稱稍後會在本教學課程中使用)，然後選擇 **Next (下一步)**。

1. 再次選擇 **Next (下一步)**，然後選擇 **Store (存放)** 建立秘密。

### 下一個步驟
<a name="tutorial-step1.2"></a>

 [步驟 2：訂閱連接器](#tutorial-step2) 

## 步驟 2：訂閱連接器
<a name="tutorial-step2"></a>

 AWS Glue Connector for Elasticsearch 可從 免費取得[AWS Marketplace](https://aws.amazon.com/marketplace/pp/prodview-v5ygernwn2gb6#pdp-pricing)。

**在 上訂閱 AWS Glue Connector for Elasticsearch AWS Marketplace**

1. 如果您尚未將 AWS 帳戶設定為使用 License Manager，請執行下列動作：

   1. 在 https：//[https://console.aws.amazon.com/license-manager](https://console.aws.amazon.com/license-manager) 開啟 AWS License Manager 主控台。

   1. 選擇 **Create customer managed license (建立客戶受管授權)**。

   1. 在 **IAM 許可 （一次性設定）** 視窗中，選擇**我授予 AWS License Manager 所需的許可**，然後選擇**授予許可**。

      如果您沒有看到此視窗，表示您已經設定必要的許可。

1. 開啟位於 [https://console.aws.amazon.com/gluestudio/](https://console.aws.amazon.com/gluestudio/) 的 AWS Glue Studio 主控台。

1. 在 AWS Glue Studio 主控台中，展開選單圖示 (![3 short, horizontal lines in a vertical stack](http://docs.aws.amazon.com/zh_tw/glue/latest/dg/images/nav-menu-icon.png))，然後在導覽窗格中選擇**連接器**。

1. 在**連接器**頁面上，選擇**移至 AWS Marketplace**。

1. 在 AWS Marketplace**搜尋 AWS Glue Studio 產品**區段的搜尋欄位中輸入 **AWS Glue Connector for Elasticsearch**，然後按 Enter。

1.  選擇連接器的名稱 **AWS Glue Elasticsearch Connector**。

1. 在連接器的產品頁面上，使用索引標籤來檢視連接器的相關資訊。準備好繼續時，請選擇 **Continue to Subscribe (繼續訂閱)**。

1.  檢閱軟體的使用條款。按一下 **Accept Terms** (接受條款)。

1.  訂閱程序完成後，您將看到一條通知："Thank you for subscribing to this product\! You can now configure your software." (感謝您訂閱此產品！您現在可進行軟體設定。) 橫幅上方是按鈕 **Continue to Configuration** (繼續進行設定)。選擇 **Continue to Configuration** (繼續進行設定)。

1.  請在 **Configure this software** (設定此軟體) 頁面上選擇 Fulfillment (履行) 選項。您可以選擇 AWS Glue 1.0/2.0 或 AWS Glue 3.0。然後選擇 **Continue to Launch** (繼續啟動)。

### 下一步驟
<a name="tutorial-step2.1"></a>

 [步驟 3：在 中啟用連接器 AWS Glue Studio 並建立連線](#tutorial-step3) 

## 步驟 3：在 中啟用連接器 AWS Glue Studio 並建立連線
<a name="tutorial-step3"></a>

選擇**繼續啟動**後，您會在其中看到**啟動此軟體**頁面 AWS Marketplace。使用連結在 中啟用連接器後 AWS Glue Studio，您可以建立連線。

**在 中部署連接器並建立連線 AWS Glue Studio**

1. 在 AWS Marketplace 主控台的**啟動此軟體**頁面上，選擇**使用說明**，然後在顯示的視窗中選擇連結。

   您的瀏覽器會重新導向至 AWS Glue Studio 主控台**建立市集連線**頁面。

1. 輸入連線的名稱。例如：**my-es-connection**。

1. 在 **Connection access (連線存取)** 區段，對於 **Connection credential type (連線憑證類型)** 選擇 **User name and password (使用者名稱和密碼)**。

1. 對於 **AWS secret (AWS 秘密)**，輸入您的秘密名稱。例如：**my-es-secret**。

1. 在 **Network options** (網路選項) 區段中，輸入要連線到 OpenSearch 叢集的 VPC 資訊。

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>

建立 AWS Glue ETL 任務時，您可以為要使用的任務指定 AWS Identity and Access Management (IAM) 角色。該角色必須授予任務使用的所有資源的存取權，包括 Amazon S3 （適用於任何來源、目標、指令碼、驅動程式檔案和暫時目錄），以及 AWS Glue Data Catalog 物件。

 AWS Glue ETL 任務的擔任 IAM 角色也必須能夠存取上一節中建立的秘密。根據預設，AWS 受管角色 `AWSGlueServiceRole` 無法存取秘密。若要設定秘密的存取控制，請參閱 [AWS Secrets Manager​ 的身分驗證與存取控制](https://docs.aws.amazon.com/secretsmanager/latest/userguide/auth-and-access.html)和[限制對特定秘密的存取](https://docs.aws.amazon.com/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. 設定將連接器與 搭配使用時所需的額外許可 AWS Glue Studio，如 中所述[使用連接器所需的許可](getting-started-min-privs-job.md#getting-started-min-privs-connectors)。

### 下一步驟
<a name="tutorial-step4.1"></a>

 [步驟 5：建立使用 OpenSearch 連線的任務](#tutorial-step5) 

## 步驟 5：建立使用 OpenSearch 連線的任務
<a name="tutorial-step5"></a>

為您的 ETL 任務建立角色後，您可以在 AWS Glue Studio 中建立使用 Open Spark ElasticSearch 連線和連接器的任務。

如果您的任務在 Amazon Virtual Private Cloud (Amazon VPC) 內執行，請確保 VPC 設定正確。如需詳細資訊，請參閱 [為您的 ETL 任務設定 VPC](getting-started-vpc-config.md)。

**建立使用 Elasticsearch Spark Connector 的任務**

1. 在 中 AWS Glue Studio，選擇**連接器**。

1. 在 **Your connections (您的連線)** 清單中，選取您剛才建立的連線，然後選擇 **Create job (建立任務)**。

1. 在視覺化任務編輯器中，選擇 [資料來源] 節點。在右側，於 **Data source properties - Connector (資料來源屬性 - 連接器)** 索引標籤上，設定連接器的其他資訊。

   1. 選擇 **Add schema (新增結構描述)**，然後在資料來源中輸入資料集的結構描述。連線不會使用存放在 Data Catalog 中的資料表，這表示 AWS Glue Studio 不知道資料的結構描述。您必須手動提供此結構描述資訊。如需如何使用結構描述編輯器的指示，請參閱[編輯自訂轉換節點的結構描述](transforms-custom.md#transforms-custom-editschema)。

   1. 展開 **Connection options (連線選項)**。

   1. 選擇**新增選項**，然後輸入未在 AWS 秘密中輸入的連接器所需的資訊：
      +  **es.nodes**：https://*<OpenSearch 網域端點>* 
      +  **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，也可以使用來自 AWS Glue Data Catalog 或連接器的資訊將資料寫入不同位置。例如，您可以使用 Data Catalog 資料表來寫入 Amazon RDS 中的資料庫，或者您可以使用連接器做為資料目標來寫入 AWS Glue原生不支援的資料存放區。

   如果您為資料目標選擇連接器，則必須選擇為該連接器建立的連線。此外，如果連接器提供者要求，您必須新增選項，以提供其他資訊給連接器。如果您使用的連線包含 AWS 秘密的資訊，則不需要在連線選項中提供使用者名稱和密碼身分驗證。

1. 可以選擇新增其他資料來源和一或多個轉換節點，如[使用 AWS Glue 受管轉換來轉換資料](edit-jobs-transforms.md)中所述。

1. 如[修改任務屬性](managing-jobs-chapter.md#edit-jobs-properties)所述設定任務屬性，從步驟 3 開始，然後儲存任務。

### 下一步驟
<a name="tutorial-step5.1"></a>

 [步驟 6：執行任務](#tutorial-step6) 

## 步驟 6：執行任務
<a name="tutorial-step6"></a>

儲存任務後，您可以執行任務來執行 ETL 任務。

**執行您為 AWS Glue Connector for Elasticsearch 建立的任務**

1. 使用 AWS Glue Studio 主控台，在視覺化編輯器頁面上，選擇**執行**。

1. 在成功橫幅中，選擇 **Run Details (執行詳細資訊)**，或者您可以選擇視覺化編輯器的 **Runs (執行)**索引標籤，以檢視任務執行的相關資訊。