amazon-web-services - 使用 CDK 创建的 AWS Glue JDBC 连接需要在控制台中输入密码才能生效

标签 amazon-web-services aws-glue aws-cdk aws-glue-connection

我正在使用用户名和密码的 secret 在 Glue 中创建 JDBC 连接。我可以在控制台中看到从 key 中正确读取了用户名,所以这不是问题。一旦我编辑了详细信息并在控制台中输入密码,它就会生效。我的方法有问题吗?

glue.CfnConnection(
        self,
        id="JDBCConnection",
        catalog_id=self.account,
        connection_input=glue.CfnConnection.ConnectionInputProperty(
            name="jdbc_connection",
            connection_type="JDBC",
            physical_connection_requirements=glue.CfnConnection.PhysicalConnectionRequirementsProperty(
                subnet_id=cdk.Fn.import_value("PrivateSubnet1"),
                security_group_id_list=[jdbc_connection_security_group.attr_group_id],
            ),
            connection_properties={
                "JDBC_CONNECTION_URL": "jdbc:<JDBC_URL>",
                "USERNAME": "{{resolve:secretsmanager:jdbc_username}}",
                "PASSWORD": "{{resolve:secretsmanager:jdbc_password}}",
            },
        ),
)

最佳答案

就我而言,我缺少 SSL 和可用区。我发现有用的一种工具是使用 aws cli获取有关先前创建的(或 cdk 创建的和控制台更新的)有效连接的信息。$> aws glue get-connection --name <connection-name> --profile <profile-name>这列出了有关可接受(工作)连接的完整信息。

{
    "Connection": {
        "Name": "<connection-name>",
        "Description": "<description>",
        "ConnectionType": "JDBC",
        "ConnectionProperties": {
            "JDBC_CONNECTION_URL": "<full-url>",
            "JDBC_ENFORCE_SSL": "false",
            "PASSWORD": "<password>",
            "USERNAME": "<username>"
        },
        "PhysicalConnectionRequirements": {
            "SubnetId": "<subnet>",
            "SecurityGroupIdList": [
                "<sec-group>",
                "<sec-group>"
            ],
            "AvailabilityZone": "us-west-2a"
        },
        "CreationTime": "<timestamp-w-tz>",
        "LastUpdatedTime": "<timestamp-w-tz>"
    }
}
我发现我错过了 ConnectionProperties key JDBC_ENFORNCE_SSLPhysicalConnectionRequirements key AvailabilityZone .
一旦我在 CDK 中设置它们,创建的连接就会按预期工作。

关于amazon-web-services - 使用 CDK 创建的 AWS Glue JDBC 连接需要在控制台中输入密码才能生效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66657768/

相关文章:

amazon-web-services - 使用 AWS Glue 时是否有可以访问的临时文件夹?

apache-spark - 如果在 S3 的 Parquet 文件中发现同一列的不同数据类型,AWS Glue 作业会在 Redshift 中创建新列

amazon-web-services - CDK 将预先存在的存储桶用于 CI CD Pipeline for Artifacts

java - 查找 S3 Bucket 并添加触发器以调用 lambda

terraform - 无效的模板控制关键字

aws-cdk - AWS CDK |创建跨越多个 CDK 堆栈的 REST API

java - 将AWS S3配置为图像服务器

amazon-web-services - AWS 将 VPC 内的 Lambda 调用到另一个 VPC 中的另一个 Lambda

amazon-web-services - AWS Bucket 策略允许 cloudformation 加载 Lambda 函数层

apache - 多域 Hybris 服务器配置