连接 API - Amazon Glue
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

连接 API

连接 API 介绍 Amazon Glue 连接数据类型,以及用于创建、删除、更新和列出连接的 API。

数据类型

Connection 结构

定义与数据源的连接。

字段
  • Name – UTF-8 字符串,长度不少于 1 个字节或超过 255 个字节,与 Single-line string pattern 匹配。

    连接定义的名称。

  • Description – 描述字符串,长度不超过 2048 个字节,与 URI address multi-line string pattern 匹配。

    连接的描述。

  • ConnectionType – UTF-8 字符串(有效值:JDBC | SFTP | MONGODB | KAFKA | NETWORK | MARKETPLACE | CUSTOM)。

    连接的类型。目前不支持 SFTP。

  • MatchCriteria – UTF-8 字符串数组,不超过 10 个字符串。

    可用于选择此连接的条件的列表。

  • ConnectionProperties – 键值对的映射数组,不超过 100 对。

    每个键都是一个 UTF-8 字符串(有效值:HOST | PORT | USERNAME="USER_NAME" | PASSWORD | ENCRYPTED_PASSWORD | JDBC_DRIVER_JAR_URI | JDBC_DRIVER_CLASS_NAME | JDBC_ENGINE | JDBC_ENGINE_VERSION | CONFIG_FILES | INSTANCE_ID | JDBC_CONNECTION_URL | JDBC_ENFORCE_SSL | CUSTOM_JDBC_CERT | SKIP_CUSTOM_JDBC_CERT_VALIDATION | CUSTOM_JDBC_CERT_STRING | CONNECTION_URL | KAFKA_BOOTSTRAP_SERVERS | KAFKA_SSL_ENABLED | KAFKA_CUSTOM_CERT | KAFKA_SKIP_CUSTOM_CERT_VALIDATION | KAFKA_CLIENT_KEYSTORE | KAFKA_CLIENT_KEYSTORE_PASSWORD | KAFKA_CLIENT_KEY_PASSWORD | ENCRYPTED_KAFKA_CLIENT_KEYSTORE_PASSWORD | ENCRYPTED_KAFKA_CLIENT_KEY_PASSWORD | SECRET_ID | CONNECTOR_URL | CONNECTOR_TYPE | CONNECTOR_CLASS_NAME | KAFKA_SASL_MECHANISM | KAFKA_SASL_PLAIN_USERNAME | KAFKA_SASL_PLAIN_PASSWORD | ENCRYPTED_KAFKA_SASL_PLAIN_PASSWORD | KAFKA_SASL_SCRAM_USERNAME | KAFKA_SASL_SCRAM_PASSWORD | KAFKA_SASL_SCRAM_SECRETS_ARN | ENCRYPTED_KAFKA_SASL_SCRAM_PASSWORD | KAFKA_SASL_GSSAPI_KEYTAB | KAFKA_SASL_GSSAPI_KRB5_CONF | KAFKA_SASL_GSSAPI_SERVICE | KAFKA_SASL_GSSAPI_PRINCIPAL)。

    每个值是一个值字符串,不超过 1024 个字节。

    这些键值对用于定义连接的参数:

    • HOST- 主机 URI:完全限定域名 (FQDN) 或数据库主机的 IPv4 地址。

    • PORT- 端口的端口号,介于 1024 和 65535 之间,数据库主机在这些端口上侦听数据库连接。

    • USER_NAME- 登录数据库时使用的名称。USER_NAME 的值字符串为“USERNAME”。

    • PASSWORD- 用户名使用的密码(如果使用的话)。

    • ENCRYPTED_PASSWORD - 通过在数据目录加密设置中设置 ConnectionPasswordEncryption 来启用连接密码保护时,此字段会存储加密的密码。

    • JDBC_DRIVER_JAR_URI - 包含要使用的 JDBC 驱动程序的 JAR 文件的 Amazon Simple Storage Service (Amazon S3) 路径。

    • JDBC_DRIVER_CLASS_NAME - 要使用的 JDBC 驱动程序的类名称。

    • JDBC_ENGINE - 要使用的 JDBC 引擎的名称。

    • JDBC_ENGINE_VERSION - 要使用的 JDBC 引擎的版本。

    • CONFIG_FILES -(留待将来使用。)

    • INSTANCE_ID - 要使用的实例 ID。

    • JDBC_CONNECTION_URL - 用于连接到 JDBC 数据源的 URL。

    • JDBC_ENFORCE_SSL - 指定在客户端上建立 JDBC 连接时是否强制使用安全套接字层 (SSL) 及主机名匹配的布尔值字符串(true 或 false)。默认值为 false。

    • CUSTOM_JDBC_CERT – 指明客户根证书的 Amazon S3 位置。Amazon Glue 在连接到客户数据库时,使用此根证书来验证客户的证书。Amazon Glue 仅处理 X.509 证书。提供的证书必须经过 DER 编码,并以 Base64 编码 PEM 格式提供。

    • SKIP_CUSTOM_JDBC_CERT_VALIDATION – 默认情况下,这是 false。Amazon Glue 将验证客户证书的签名算法和主题公有密钥算法。签名算法允许的算法仅包括 SHA256withRSA、SHA384withRSA 或 SHA512withRSA。对于主题公有密钥算法,密钥长度必须至少为 2048 位。您可以将该属性的值设置为 true 以跳过 Amazon Glue 对客户证书进行的验证。

    • CUSTOM_JDBC_CERT_STRING - 一个自定义的 JDBC 证书字符串,用于域匹配或可分辨名称匹配以防止中间人攻击。在 Oracle 数据库中,这将用作 SSL_SERVER_CERT_DN;在 Microsoft SQL Server 中,这将用作 hostNameInCertificate

    • CONNECTION_URL - 用于连接到一般(非 JDBC)数据源的 URL。

    • SECRET_ID – 用于凭证的 Secret Manager 的密钥 ID。

    • CONNECTOR_URL – MARKETPLACE 或自定义连接的连接器 URL。

    • CONNECTOR_TYPE – MARKETPLACE 或自定义连接的连接器类型。

    • CONNECTOR_CLASS_NAME – MARKETPLACE 或自定义连接的连接器类名称。

    • KAFKA_BOOTSTRAP_SERVERS - 以逗号分隔的主机和端口对列表,它们是 Kafka 集群中 Apache Kafka 代理商的地址,Kafka 客户端将连接到该集群并自行引导。

    • KAFKA_SSL_ENABLED – 是否启用或禁用 Apache Kafka 连接的 SSL。默认值为“true”。

    • KAFKA_CUSTOM_CERT – 私有 CA 证书文件的 Amazon S3 URL(.pem 格式)。默认值是空字符串。

    • KAFKA_SKIP_CUSTOM_CERT_VALIDATION – 是否跳过 CA 证书文件的验证。Amazon Glue 验证三种算法:SHA256withRSA、SHA384withRSA 和 SHA512withRSA。默认值为“false”。

    • KAFKA_CLIENT_KEYSTORE – 用于 Kafka 客户端身份验证的客户端密钥库文件的 Amazon S3 位置(可选)。

    • KAFKA_CLIENT_KEYSTORE_PASSWORD – 用于访问提供的密钥库的密码(可选)。

    • KAFKA_CLIENT_KEY_PASSWORD – 密钥库可以由多个密钥组成,因此这是与 Kafka 服务器端密钥一起使用的用于访问客户端密钥的密码(可选)。

    • ENCRYPTED_KAFKA_CLIENT_KEYSTORE_PASSWORD – Kafka 客户端密钥库密码的加密版本(如果用户选中使用 Amazon Glue 加密密码设置)。

    • ENCRYPTED_KAFKA_CLIENT_KEY_PASSWORD – Kafka 客户端密钥密码的加密版本(如果用户选中使用 Amazon Glue 加密密码设置)。

    • KAFKA_SASL_MECHANISM"SCRAM-SHA-512""GSSAPI""AWS_MSK_IAM""PLAIN"。这些是受支持的 SASL 机制

    • KAFKA_SASL_PLAIN_USERNAME – 用于使用“PLAIN”机制进行身份验证的明文用户名。

    • KAFKA_SASL_PLAIN_PASSWORD – 用于使用“PLAIN”机制进行身份验证的明文密码。

    • ENCRYPTED_KAFKA_SASL_PLAIN_PASSWORD – Kafka SASL PLAIN 密码的加密版本(如果用户选中使用 Amazon Glue 加密密码设置)。

    • KAFKA_SASL_SCRAM_USERNAME – 用于使用“SCRAM-SHA-512”机制进行身份验证的明文用户名。

    • KAFKA_SASL_SCRAM_PASSWORD – 用于使用“SCRAM-SHA-512”机制进行身份验证的明文密码。

    • ENCRYPTED_KAFKA_SASL_SCRAM_PASSWORD – Kafka SASL SCRAM 密码的加密版本(如果用户选中使用 Amazon Glue 加密密码设置)。

    • KAFKA_SASL_SCRAM_SECRETS_ARN - Amazon Secrets Manager 中密钥的 Amazon 资源名称。

    • KAFKA_SASL_GSSAPI_KEYTAB – Kerberos keytab 文件的 S3 位置。keytab 可存储一个或多个主体的长期密钥。有关更多信息,请参阅 MIT Kerberos 文档:keytab

    • KAFKA_SASL_GSSAPI_KRB5_CONF – Kerberos krb5.conf 文件的 S3 位置。krb5.conf 可存储 Kerberos 配置信息,例如 KDC 服务器的位置。有关更多信息,请参阅 MIT Kerberos 文档:krb5.conf

    • KAFKA_SASL_GSSAPI_SERVICE – Kerberos 服务名称,如您的 Kafka 配置中的 sasl.kerberos.service.name 设置。

    • KAFKA_SASL_GSSAPI_PRINCIPAL – Amazon Glue 使用的 Kerberos 主体的名称。有关更多信息,请参阅 Kafka 文档:配置 Kafka 代理

  • PhysicalConnectionRequirements – 一个 PhysicalConnectionRequirements 对象。

    成功建立此连接所需的物理连接要求的映射,如 Virtual Private Cloud (VPC) 和 SecurityGroup

  • CreationTime – 时间戳。

    创建此连接定义的时间。

  • LastUpdatedTime – 时间戳。

    上次更新此连接定义的时间。

  • LastUpdatedBy – UTF-8 字符串,长度不少于 1 个字节或超过 255 个字节,与 Single-line string pattern 匹配。

    上次更新此连接定义的用户、组或角色。

ConnectionInput 结构

用于指定要创建或更新的连接的结构。

字段
  • Name必填:UTF-8 字符串,长度不少于 1 个字节或超过 255 个字节,与 Single-line string pattern 匹配。

    连接的名称。如果没有名称,连接将无法按预期运行。

  • Description – 描述字符串,长度不超过 2048 个字节,与 URI address multi-line string pattern 匹配。

    连接的描述。

  • ConnectionType必填:UTF-8 字符串(有效值:JDBC | SFTP | MONGODB | KAFKA | NETWORK | MARKETPLACE | CUSTOM)。

    连接的类型。目前,支持以下类型:

    • JDBC - 通过 Java 数据库连接(JDBC)指定与数据库的连接。

      JDBC 连接使用以下 ConnectionParameters。

      • 必需:所有(HOSTPORTJDBC_ENGINE)或 JDBC_CONNECTION_URL

      • 必需:所有(USERNAMEPASSWORD)或 SECRET_ID

      • 可选:JDBC_ENFORCE_SSLCUSTOM_JDBC_CERTCUSTOM_JDBC_CERT_STRINGSKIP_CUSTOM_JDBC_CERT_VALIDATION。这些参数用于通过 JDBC 配置 SSL。

    • KAFKA - 指定与 Apache Kafka 流平台的连接。

      KAFKA 连接使用以下 ConnectionParameters。

      • 必需:KAFKA_BOOTSTRAP_SERVERS

      • 可选:KAFKA_SSL_ENABLEDKAFKA_CUSTOM_CERTKAFKA_SKIP_CUSTOM_CERT_VALIDATION。这些参数用于通过 KAFKA 配置 SSL。

      • 可选:KAFKA_CLIENT_KEYSTOREKAFKA_CLIENT_KEYSTORE_PASSWORDKAFKA_CLIENT_KEY_PASSWORDENCRYPTED_KAFKA_CLIENT_KEYSTORE_PASSWORDENCRYPTED_KAFKA_CLIENT_KEY_PASSWORD。这些参数用于在 KAFKA 中通过 SSL 配置 TLS 客户端配置。

      • 可选:KAFKA_SASL_MECHANISM。可以指定为 SCRAM-SHA-512GSSAPIAWS_MSK_IAM

      • 可选:KAFKA_SASL_SCRAM_USERNAMEKAFKA_SASL_SCRAM_PASSWORDENCRYPTED_KAFKA_SASL_SCRAM_PASSWORD。这些参数用于通过 KAFKA 配置 SASL/SCRAM-SHA-512 身份验证。

      • 可选:KAFKA_SASL_GSSAPI_KEYTABKAFKA_SASL_GSSAPI_KRB5_CONFKAFKA_SASL_GSSAPI_SERVICEKAFKA_SASL_GSSAPI_PRINCIPAL。这些参数用于通过 KAFKA 配置 SASL/GSSAPI 身份验证。

    • MONGODB - 指定与 MongoDB 文档数据库的连接。

      MONGODB 连接使用以下 ConnectionParameters。

      • 必需:CONNECTION_URL

      • 必需:所有(USERNAMEPASSWORD)或 SECRET_ID

    • NETWORK - 指定到 Amazon Virtual Private Cloud 环境(Amazon VPC)中的数据源的网络连接。

      NETWORK 连接不需要 ConnectionParameters。相反,提供 PhysicalConnectionRequirements。

    • MARKETPLACE – 使用从 Amazon Web Services Marketplace 购买的连接器中包含的配置设置来读取和写入 Amazon Glue 本地不支持的数据存储。

      MARKETPLACE 连接使用以下 ConnectionParameters。

      • 必需:CONNECTOR_TYPECONNECTOR_URLCONNECTOR_CLASS_NAMECONNECTION_URL

      • JDBC CONNECTOR_TYPE 连接必需:所有(USERNAMEPASSWORD)或 SECRET_ID

    • CUSTOM – 使用自定义连接器中包含的配置设置来读取和写入 Amazon Glue 本地不支持的数据存储。

    不支持 SFTP

    有关如何使用可选的 ConnectionProperties 配置 Amazon Glue 中功能的更多信息,请参阅 Amazon Glue 连接属性

    有关如何使用可选的 ConnectionProperties 配置 Amazon Glue Studio 中功能的更多信息,请参阅使用连接器和连接

  • MatchCriteria – UTF-8 字符串数组,不超过 10 个字符串。

    可用于选择此连接的条件的列表。

  • ConnectionProperties必填:键值对的映射数组,不超过 100 对。

    每个键都是一个 UTF-8 字符串(有效值:HOST | PORT | USERNAME="USER_NAME" | PASSWORD | ENCRYPTED_PASSWORD | JDBC_DRIVER_JAR_URI | JDBC_DRIVER_CLASS_NAME | JDBC_ENGINE | JDBC_ENGINE_VERSION | CONFIG_FILES | INSTANCE_ID | JDBC_CONNECTION_URL | JDBC_ENFORCE_SSL | CUSTOM_JDBC_CERT | SKIP_CUSTOM_JDBC_CERT_VALIDATION | CUSTOM_JDBC_CERT_STRING | CONNECTION_URL | KAFKA_BOOTSTRAP_SERVERS | KAFKA_SSL_ENABLED | KAFKA_CUSTOM_CERT | KAFKA_SKIP_CUSTOM_CERT_VALIDATION | KAFKA_CLIENT_KEYSTORE | KAFKA_CLIENT_KEYSTORE_PASSWORD | KAFKA_CLIENT_KEY_PASSWORD | ENCRYPTED_KAFKA_CLIENT_KEYSTORE_PASSWORD | ENCRYPTED_KAFKA_CLIENT_KEY_PASSWORD | SECRET_ID | CONNECTOR_URL | CONNECTOR_TYPE | CONNECTOR_CLASS_NAME | KAFKA_SASL_MECHANISM | KAFKA_SASL_PLAIN_USERNAME | KAFKA_SASL_PLAIN_PASSWORD | ENCRYPTED_KAFKA_SASL_PLAIN_PASSWORD | KAFKA_SASL_SCRAM_USERNAME | KAFKA_SASL_SCRAM_PASSWORD | KAFKA_SASL_SCRAM_SECRETS_ARN | ENCRYPTED_KAFKA_SASL_SCRAM_PASSWORD | KAFKA_SASL_GSSAPI_KEYTAB | KAFKA_SASL_GSSAPI_KRB5_CONF | KAFKA_SASL_GSSAPI_SERVICE | KAFKA_SASL_GSSAPI_PRINCIPAL)。

    每个值是一个值字符串,不超过 1024 个字节。

    这些键值对用于定义连接的参数。

  • PhysicalConnectionRequirements – 一个 PhysicalConnectionRequirements 对象。

    成功建立此连接所需的物理连接要求的映射,如虚拟私有云(VPC)和 SecurityGroup

PhysicalConnectionRequirements 结构

指定连接的物理要求。

字段
  • SubnetId – UTF-8 字符串,长度不少于 1 个字节或超过 255 个字节,与 Single-line string pattern 匹配。

    连接使用的子网 ID。

  • SecurityGroupIdList – UTF-8 字符串数组,不超过 50 个字符串。

    连接使用的安全组 ID 列表。

  • AvailabilityZone – UTF-8 字符串,长度不少于 1 个字节或超过 255 个字节,与 Single-line string pattern 匹配。

    连接的可用区。此字段是多余的,因为指定的子网暗示了要使用的可用区。此字段目前必须填写,但是将来会被弃用。

GetConnectionsFilter 结构

筛选由 GetConnections API 操作返回的连接定义。

字段
  • MatchCriteria – UTF-8 字符串数组,不超过 10 个字符串。

    一个条件字符串,它必须与连接定义中记录的条件相匹配,才能返回连接定义。

  • ConnectionType – UTF-8 字符串(有效值:JDBC | SFTP | MONGODB | KAFKA | NETWORK | MARKETPLACE | CUSTOM)。

    要返回的连接的类型。目前不支持 SFTP。

操作

CreateConnection 操作(Python:create_connection)

在数据目录中创建连接定义。

用于创建联合资源的连接需要 IAM glue:PassConnection 权限。

请求
  • CatalogId – 目录 id 字符串,长度不少于 1 个字节或超过 255 个字节,与 Single-line string pattern 匹配。

    要在其中创建连接的数据目录的 ID。如果没有提供,则默认情况下使用 Amazon 账户 ID。

  • ConnectionInput必填:一个 ConnectionInput 对象。

    用于定义要创建的连接的 ConnectionInput 对象。

  • Tags – 键值对的映射数组,不超过 50 对。

    每个键都是一个 UTF-8 字符串,长度不少于 1 个字节或超过 128 个字节。

    每个值是一个 UTF-8 字符串,不超过 256 个字节。

    您分配给连接的标签。

响应
  • 无响应参数。

错误
  • AlreadyExistsException

  • InvalidInputException

  • OperationTimeoutException

  • ResourceNumberLimitExceededException

  • GlueEncryptionException

DeleteConnection 操作(Python:delete_connection)

从数据目录中删除连接。

请求
  • CatalogId – 目录 id 字符串,长度不少于 1 个字节或超过 255 个字节,与 Single-line string pattern 匹配。

    连接所在的数据目录的 ID。如果没有提供,则默认情况下使用 Amazon 账户 ID。

  • ConnectionName必填:UTF-8 字符串,长度不少于 1 个字节或超过 255 个字节,与 Single-line string pattern 匹配。

    要删除的连接的名称。

响应
  • 无响应参数。

错误
  • EntityNotFoundException

  • OperationTimeoutException

GetConnection 操作(Python:get_connection)

从数据目录中检索连接定义。

请求
  • CatalogId – 目录 id 字符串,长度不少于 1 个字节或超过 255 个字节,与 Single-line string pattern 匹配。

    连接所在的数据目录的 ID。如果没有提供,则默认情况下使用 Amazon 账户 ID。

  • Name必填:UTF-8 字符串,长度不少于 1 个字节或超过 255 个字节,与 Single-line string pattern 匹配。

    要检索的连接定义的名称。

  • HidePassword – 布尔值。

    允许您在不返回密码的情况下检索连接元数据。例如,Amazon Glue 控制台使用此标记来检索连接,并且不显示密码。当调用方可能无权使用 Amazon KMS 密钥解密密码,但有权访问其余连接属性时,请设置此参数。

响应
  • Connection – 一个 Connection 对象。

    请求的连接定义。

错误
  • EntityNotFoundException

  • OperationTimeoutException

  • InvalidInputException

  • GlueEncryptionException

GetConnections 操作(Python:get_connections)

从数据目录中检索连接定义的列表。

请求
  • CatalogId – 目录 id 字符串,长度不少于 1 个字节或超过 255 个字节,与 Single-line string pattern 匹配。

    连接所在的数据目录的 ID。如果没有提供,则默认情况下使用 Amazon 账户 ID。

  • Filter – 一个 GetConnectionsFilter 对象。

    控制将返回哪些连接的筛选器。

  • HidePassword – 布尔值。

    允许您在不返回密码的情况下检索连接元数据。例如,Amazon Glue 控制台使用此标记来检索连接,并且不显示密码。当调用方可能无权使用 Amazon KMS 密钥解密密码,但有权访问其余连接属性时,请设置此参数。

  • NextToken – UTF-8 字符串。

    延续标记 (如果这是延续调用)。

  • MaxResults – 数字(整数),不小于 1 或大于 1000。

    要在一个响应中返回的连接的最大数量。

响应
  • ConnectionListConnection 对象的数组。

    请求的连接定义的列表。

  • NextToken – UTF-8 字符串。

    延续令牌 (如果返回的连接列表不包括最后一个筛选的连接)。

错误
  • EntityNotFoundException

  • OperationTimeoutException

  • InvalidInputException

  • GlueEncryptionException

UpdateConnection 操作(Python:update_connection)

在数据目录中更新连接定义。

请求
  • CatalogId – 目录 id 字符串,长度不少于 1 个字节或超过 255 个字节,与 Single-line string pattern 匹配。

    连接所在的数据目录的 ID。如果没有提供,则默认情况下使用 Amazon 账户 ID。

  • Name必填:UTF-8 字符串,长度不少于 1 个字节或超过 255 个字节,与 Single-line string pattern 匹配。

    要更新的连接定义的名称。

  • ConnectionInput必填:一个 ConnectionInput 对象。

    用于重新定义所涉连接的 ConnectionInput 对象。

响应
  • 无响应参数。

错误
  • InvalidInputException

  • EntityNotFoundException

  • OperationTimeoutException

  • InvalidInputException

  • GlueEncryptionException

BatchDeleteConnection 操作(Python:batch_delete_connection)

从数据目录中删除连接定义的列表。

请求
  • CatalogId – 目录 id 字符串,长度不少于 1 个字节或超过 255 个字节,与 Single-line string pattern 匹配。

    连接所在的数据目录的 ID。如果没有提供,则默认情况下使用 Amazon 账户 ID。

  • ConnectionNameList必填:UTF-8 字符串数组,不超过 25 个字符串。

    要删除的连接的名称的列表。

响应
  • Succeeded – UTF-8 字符串数组。

    已成功删除的连接定义的名称的列表。

  • Errors – 键值对的映射数组。

    每个键是一个 UTF-8 字符串,不少于 1 个字节或超过 255 个字节,与 Single-line string pattern 匹配。

    每个值都是一个 ErrorDetail 对象。

    未成功删除的连接名称到错误详细信息的映射。

错误
  • InternalServiceException

  • OperationTimeoutException