使用boto3创建与AWS Glue的连接时,可用区出现InvalidInputException错误

时间:2020-04-16 17:12:08

标签: boto3 aws-glue

我正在尝试使用AWS Glue中的Connections建立与RDS实例的连接。我正在尝试使用boto3客户端和create_connection()方法来做到这一点。

这是我到目前为止所拥有的

import json
import boto3

def lambda_handler(event, context):
    glue= boto3.client('glue')
    response= glue.create_connection(
        ConnectionInput={
            'Name': 'TEST_CONNECTION',
            'ConnectionType': 'JDBC',
            'MatchCriteria':[
                'string',
            ],
            'ConnectionProperties':{
                'JDBC_CONNECTION_URL': 'jdbc:mysql://xxxxx.us-east-1.rds.amazonaws.com:xxxx/xxxx',
                'username':'xxxxx',
                'password':'xxxxxx'
            },
            'PhysicalConnectionRequirements':{
                'SubnetId':'subnet-xxxxxxxx',
                'SecurityGroupIdList':[
                    'sg-xxxxxxxx',
                ],
                'AvailabilityZone':'us-east-1a'
            }
        }
    )

这是我收到的错误

{
  "errorMessage": "An error occurred (InvalidInputException) when calling the CreateConnection operation: Validation for connection properties failed",
  "errorType": "InvalidInputException",
  "stackTrace": [
    [
      "/var/task/lambda_function.py",
      23,
      "lambda_handler",
      "'AvailabilityZone':'us-east-1a'"
    ],
    [
      "/var/runtime/botocore/client.py",
      316,
      "_api_call",
      "return self._make_api_call(operation_name, kwargs)"
    ],
    [
      "/var/runtime/botocore/client.py",
      626,
      "_make_api_call",
      "raise error_class(parsed_response, operation_name)"
    ]
  ]
}

我曾尝试过其他AZ,但无济于事。 有想法吗?

1 个答案:

答案 0 :(得分:1)

以大写形式输入USERNAME和PASSWORD。

import json
import boto3    
def lambda_handler(event, context):
    glue= boto3.client('glue')
    response= glue.create_connection(
        ConnectionInput={
            'Name': 'TEST_CONNECTION',
            'ConnectionType': 'JDBC',
            'ConnectionProperties':{
                'JDBC_CONNECTION_URL': 'jdbc:mysql://xxxxx.us-east-1.rds.amazonaws.com:xxxx/xxxx',
                'USERNAME':'xxxxx',
                'PASSWORD':'xxxxxx'
            },
            'PhysicalConnectionRequirements':{
                'SubnetId':'subnet-xxxxxxx',
                'SecurityGroupIdList':[
                    'sg-xxxxxx'
                ],
                'AvailabilityZone':'us-east-1a'
            }
        }
    )