Ошибка InvalidInputException для зоны доступности при создании соединения с помощью boto3 к AWS Glue - PullRequest
0 голосов
/ 16 апреля 2020

Я пытаюсь установить sh соединение с экземпляром RDS, используя Соединения в AWS Glue. Я пытаюсь сделать это с помощью клиента 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 Ответ

1 голос
/ 18 апреля 2020

Создание имени пользователя и пароля в верхнем регистре работает.

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'
            }
        }
    )
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...