

# 在 AWS Glue Studio 中连接到 Azure Cosmos DB
<a name="connecting-to-data-azurecosmos"></a>

 AWS Glue 提供了对 Azure Cosmos DB 的内置支持。AWS Glue Studio 提供了直观的界面，以用于连接到 Azure Cosmos DB for NoSQL、编写数据集成作业以及在 AWS Glue Studio 无服务器 Spark 运行时系统上运行这些作业。

**Topics**
+ [创建 Azure Cosmos DB 连接](creating-azurecosmos-connection.md)
+ [创建 Azure Cosmos DB 源节点](creating-azurecosmos-source-node.md)
+ [创建 Azure Cosmos DB 目标节点](creating-azurecosmos-target-node.md)
+ [高级选项](#creating-azurecosmos-connection-advanced-options)

# 创建 Azure Cosmos DB 连接
<a name="creating-azurecosmos-connection"></a>

**先决条件**
+ 在 Azure 中，您需要确定或生成一个 Azure Cosmos DB 密钥 `cosmosKey`，以供 AWS Glue 使用。有关更多信息，请参阅 Azure 文档中的 [保护对 Azure Cosmos DB 中数据的访问](https://learn.microsoft.com/en-us/azure/cosmos-db/secure-access-to-data?tabs=using-primary-key)。

**配置 Azure Cosmos DB 连接：**

1. 在 AWS Secrets Manager 中，使用您的 Azure Cosmos DB 密钥创建一个密钥。要在 Secrets Manager 中创建密钥，请按照 AWS Secrets Manager 文档中[创建 AWS Secrets Manager 密钥](https://docs.aws.amazon.com//secretsmanager/latest/userguide/create_secret.html)中的教程进行操作。创建密钥后，保留密钥名称 *secretName*，以供下一步使用。
   + 在选择**键/值对**时，请使用键 `spark.cosmos.accountKey` 和值 *cosmosKey* 创建一个键值对。

1. 在 AWS Glue 控制台中，按照 [添加 AWS Glue 连接](console-connections.md) 中的步骤创建一个连接。创建连接后，保留连接名为 *connectionName*，以供未来在 AWS Glue 中使用。
   + 选择**连接类型**时，请选择 Azure Cosmos DB。
   + 选择 **AWS 密钥**时，请提供 *secretName*。

# 创建 Azure Cosmos DB 源节点
<a name="creating-azurecosmos-source-node"></a>

## 所需的先决条件
<a name="creating-azurecosmos-source-node-prerequisites"></a>
+ 使用 AWS Secrets Manager 密钥配置的 AWS Glue Azure Cosmos DB 连接，如上一节“[创建 Azure Cosmos DB 连接](creating-azurecosmos-connection.md)”中所述。
+ 对您的作业具有读取连接使用的密钥的相应权限。
+ 您要读取的 Azure Cosmos DB for NoSQL 容器。您将需要该容器的标识信息。

  Azure Cosmos DB for NoSQL 容器由其数据库和容器来标识。在连接到 Azure Cosmos for NoSQL API 时，您必须提供数据库 *cosmosDBName* 和容器 *cosmosContainerName* 的名称。

## 添加 Azure Cosmos DB 数据来源
<a name="creating-azurecosmos-source-node-add"></a>

**添加**数据来源 – Azure Cosmos DB** 节点：**

1.  选择 Azure Cosmos DB 数据来源的连接。由于您已经创建了它，它应该提供在下拉列表中。如果需要创建连接，请选择**创建 Azure Cosmos DB 连接**。有关更多信息，请参阅之前的 [创建 Azure Cosmos DB 连接](creating-azurecosmos-connection.md) 部分。

    选择连接后，您可以通过单击**查看属性**来查看连接属性。

1. 选择 **Cosmos DB 数据库名称** – 提供您要读取的数据库的名称 *cosmosDBName*。

1. 选择 **Azure Cosmos DB 容器** – 提供您要读取的容器的名称 *cosmosContainerName*。

1. 或者，选择 **Azure Cosmos DB 自定义查询** – 提供 SQL SELECT 查询以检索 Azure Cosmos 数据库中的特定信息。

1.  在**自定义 Azure Cosmos 属性**中，根据需要输入相关参数和值。

# 创建 Azure Cosmos DB 目标节点
<a name="creating-azurecosmos-target-node"></a>

## 所需的先决条件
<a name="creating-azurecosmos-target-node-prerequisites"></a>
+ 使用 AWS Secrets Manager 密钥配置的 AWS Glue Azure Cosmos DB 连接，如上一节“[创建 Azure Cosmos DB 连接](creating-azurecosmos-connection.md)”中所述。
+ 对您的作业具有读取连接使用的密钥的相应权限。
+ 您要写入的 Azure Cosmos DB 表。您将需要该容器的标识信息。**必须首先创建容器，然后才能调用连接方法。**

  Azure Cosmos DB for NoSQL 容器由其数据库和容器来标识。在连接到 Azure Cosmos for NoSQL API 时，您必须提供数据库 *cosmosDBName* 和容器 *cosmosContainerName* 的名称。

## 添加 Azure Cosmos DB 数据目标
<a name="creating-azurecosmos-target-node-add"></a>

**添加**数据目标 – Azure Cosmos DB** 节点：**

1.  选择 Azure Cosmos DB 数据来源的连接。由于您已经创建了它，它应该提供在下拉列表中。如果需要创建连接，请选择**创建 Azure Cosmos DB 连接**。有关更多信息，请参阅之前的 [创建 Azure Cosmos DB 连接](creating-azurecosmos-connection.md) 部分。

    选择连接后，您可以通过单击**查看属性**来查看连接属性。

1. 选择 **Cosmos DB 数据库名称** – 提供您要读取的数据库的名称 *cosmosDBName*。

1. 选择 **Azure Cosmos DB 容器** – 提供您要读取的容器的名称 *cosmosContainerName*。

1.  在**自定义 Azure Cosmos 属性**中，根据需要输入相关参数和值。

## 高级选项
<a name="creating-azurecosmos-connection-advanced-options"></a>

您可以在创建 Azure Cosmos DB 节点时提供高级选项。这些选项与编程 Spark 脚本的 AWS Glue 时可用的选项相同。

请参阅[Azure Cosmos DB 连接](aws-glue-programming-etl-connect-azurecosmos-home.md)。