Boto3 & moto - Ошибка Route53 при создании набора записей DNS, не удается найти размещенную зону

У меня проблемы с Boto3 и библиотекой moto для насмешек над AWS.

Я создаю размещенную зону следующим образом:

@moto.mock_route53
def create_dns_zone(route53_client, vpc, name='test.'):
    hosted_zone = route53_client.create_hosted_zone(
        Name=name,
        VPC={'VPCId': vpc.vpc_id},
        CallerReference=str(hash('test')),
        HostedZoneConfig=dict(
            PrivateZone=True,
            Comment="testing zone",
        )
    )
    return hosted_zone

Объект vpc и объект route53_client создаются в одном регионе. И я изменил некоторые свойства объекта vpc следующим образом:

ec2.modify_vpc_attribute(
    EnableDnsHostnames={'Value': True}, EnableDnsSupport={'Value': True}, VpcId=vpc.vpc_id
)

create_dns_zone функция возвращает этот объект:

размещенная зона

И тогда я пытаюсь создать реестр DNS в AWS:

@moto.mock_route53
def create_dns(client_route53, zones, total_dns=1):
    # zones is the hosted zone object    
    hosted_zone_id = session.get_hosted_zone(Id=zones.get('HostedZone').get('Id'))

    changes_dns = []
    for index in range(total_dns):
        index += 1
        data_dns = dict(
            Action='CREATE',
            ResourceRecordSet=dict(
                Name='dns-test.{index}.testing.internal'.format(index=index),
                Type='A',
                TTL=30,
                ResourceRecords=[{'Value': '10.10.0.1{index}'.format(index)}]
            )
        )
        changes_dns.append(data_dns)

    return client_route53.change_resource_record_sets(
        HostedZoneId=hosted_zone_id,
        ChangeBatch=dict(
            Comment='testing dns',
            Changes=changes_dns
        )
    )

Поэтому, когда я хочу создать запись в DNS-именах route53, он выдает это исключение:

Exception: An error occurred (404) when calling the GetHostedZone operation: Not Found

И прокручиваем вниз в журнале ошибок:

botocore.parsers.ResponseParserError: Unable to parse response (syntax error: line 1, column 0), invalid XML received: b'Zone VINSTS51LDMLEAA not Found' И если я вызову функцию list_hosted_zones() он возвращает пустой список.

Я сделал что-то неправильно? Или что-то пропустить?

Огромное спасибо.

1 ответ

Решение

Реализация moto AWS mock не имеет 100% покрытия. В этом случае только маршрут53 реализован на 12%. Я думаю, что это твоя проблема.

Другие вопросы по тегам