3

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

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}}",
            },
        ),
)
4

3 回答 3

1

就我而言,我错过了 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>"
    }
}

我发现我丢失了ConnectionPropertieskeyJDBC_ENFORNCE_SSLPhysicalConnectionRequirementskey AvailabilityZone

一旦我在 CDK 中设置它们,创建的连接就会按预期工作。

于 2021-10-07T02:39:42.543 回答
0

我遇到了同样的问题,但我意识到问题根本不在于密码,而是我们提供安全组和子网值的方式。

一旦我将所有安全组和子网更改为 IResource(s) 而不是字符串,它对我来说效果很好。

于 2021-07-08T01:06:46.060 回答
0

如前所述,当我在控制台中编辑连接时,不做任何更改(只需按编辑并保存),问题就解决了,我也解决了这个问题。

也许问题出在Require SSL connection. 当我在控制台中按下编辑和保存时,Require SSL connection: False添加了,但我不知道如何通过 CDK 设置这个。

于 2021-08-13T12:38:00.257 回答