| # Set variables | |
| HOSTED_ZONE_ID="Z04320311ASMBEOMPIIN6" # Replace with your Hosted Zone ID | |
| RECORD_NAME="verblaze.tlvtech.io" # Replace with your DNS record name | |
| TTL=300 # Time to live for DNS record | |
| TYPE="A" # Record type (A, CNAME, etc.) | |
| # Command to get the desired output (example: getting your public IP address) | |
| OUTPUT=$(curl -s http://checkip.amazonaws.com/) | |
| # Validate the output | |
| if [[ -z "$OUTPUT" ]]; then | |
| echo "Error: No output from command" | |
| exit 1 | |
| fi | |
| # Create JSON payload for updating the DNS record | |
| cat << EOF > /tmp/route53-record-update.json | |
| { | |
| "Comment": "Auto update DNS record via script", | |
| "Changes": [ | |
| { | |
| "Action": "UPSERT", | |
| "ResourceRecordSet": { | |
| "Name": "$RECORD_NAME", | |
| "Type": "$TYPE", | |
| "TTL": $TTL, | |
| "ResourceRecords": [ | |
| { | |
| "Value": "$OUTPUT" | |
| } | |
| ] | |
| } | |
| } | |
| ] | |
| } | |
| EOF | |
| # Update the Route 53 record | |
| aws route53 change-resource-record-sets --hosted-zone-id $HOSTED_ZONE_ID --change-batch file:///tmp/route53-record-update.json | |
| # Check if the update was successful | |
| if [[ $? -eq 0 ]]; then | |
| echo "DNS record updated successfully with value: $OUTPUT" | |
| else | |
| echo "Failed to update DNS record" | |
| exit 1 | |
| fi | |
| # Clean up the temporary file | |
| rm /tmp/route53-record-update.json | |