You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

51 lines
1.5 KiB

6 months ago
import boto3
import json
def lambda_handler(event, context):
# Define Domains to be changed
#domains = ["billing.bwnetwork.us", "bitwarden.bwnetwork.us", "cloud.bwnetwork.us", "git.bwnetwork.us"]
# Extract the public IP address from the event
public_ip = event.get('public_ip')
domain = event.get('domain')
zoneId=event.get('zoneId')
ttl=event.get('ttl')
if not public_ip:
return {'error': 'Public IP address not provided.'}
if not domain:
return {'error': 'Domain not provided.'}
if not zoneId:
return {'error': 'Hosted Zone ID not provided.'}
if not ttl:
return {'error': 'TTL not provided.'}
# Define the changes to be made to the DNS record
changes = {
'Comment': 'Update record to reflect new IP address',
'Changes': [{
'Action': 'UPSERT',
'ResourceRecordSet': {
'Name': domain,
'Type': 'A',
'TTL': ttl,
'ResourceRecords': [{'Value': public_ip}]
}
}]
}
# Update the Route 53 record
client = boto3.client('route53')
response = client.change_resource_record_sets(
HostedZoneId=zoneId,
ChangeBatch=changes
)
# Create a custom response
custom_response = {
"Status": response['ChangeInfo']['Status'],
"SubmittedAt": response['ChangeInfo']['SubmittedAt'].isoformat(),
"Comment": "DNS record update request submitted successfully."
}
return custom_response

Powered by BW's shoe-string budget.