AWS Python SDK | Route 53 - Deleting a Resource Record

How to delete a DNS record in Route 53? I followed the documentation , but I still can't get it to work. I don’t know that I missed something here.

Based on the documentation:

DELETE: deletes the existing set of resource records that has the specified values ​​for Name, Type, SetIdentifier (for delays, weighted, geolocation, and set of fault tolerance resource records) and TTL (except for the alias of the set of resource records for which the TTL defines the AWS resource to which you forward DNS queries).

But I always get this error:

Traceback (most recent call last):                                                                                                                                      
  File "./test.py", line 37, in <module>                                                                                                                                
    main()                                                                                                                                                              
  File "./test.py", line 34, in main                                                                                                                                    
    print(del_record())                                                                                                                                                 
  File "./test.py", line 23, in del_record                                                                                                                              
    'TTL': 300                                                                                                                                                          
  File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/botocore/client.py", line 251, in _api_call                                       
    return self._make_api_call(operation_name, kwargs)                                                                                                                  
  File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/botocore/client.py", line 537, in _make_api_call                                  
    raise ClientError(parsed_response, operation_name)                                                                                                                  
botocore.exceptions.ClientError: An error occurred (InvalidInput) when calling the ChangeResourceRecordSets operation: Invalid request 

Here is my code:

#!/usr/bin/env python3


import boto3

r53 = boto3.client('route53')
zone_id = 'ABCDEFGHIJKLMNO'
record = 'me.domain.com'
r_type = 'CNAME'
r_val = 'google.com'


def del_record():
    response = r53.change_resource_record_sets(
        HostedZoneId=zone_id,
        ChangeBatch={
            'Changes': [
                {
                    'Action': 'DELETE',
                    'ResourceRecordSet': {
                        'Name': record,
                        'Type': r_type,
                        'TTL': 300
                    }
                }
            ]
        }
    )

    return response


def main():
    print(del_record())

if __name__ == '__main__':
    main()
+4
source share
1

ResourceRecordSet ResourceRecords, "target" .

    HostedZoneId=zone_id,
    ChangeBatch={
        'Changes': [
            {
                'Action': 'DELETE',
                'ResourceRecordSet': {
                    'Name': record,
                    'Type': r_type,
                    'TTL': 300,
                    'ResourceRecords': [
                        {
                            'Value': target
                        }
                    ]
                }
            }
        ]
    }
+5

Source: https://habr.com/ru/post/1658562/


All Articles