diff --git a/code/ddns-lambda.py b/code/ddns-lambda.py index be7ca7a..d212ec7 100755 --- a/code/ddns-lambda.py +++ b/code/ddns-lambda.py @@ -73,7 +73,7 @@ LOGGER = logging.getLogger() account_id = None region = None -VERSION = '1.2.0b53' +VERSION = '1.2.0b54' # Read Env variables DEBUG_LOG_LEVEL = os.environ.get('DebugLogLevel', 'INFO') @@ -397,10 +397,12 @@ def lambda_handler( instance = get_item_from_dynamodb_table(dynamodb_client, DDBNAME, instance_id) LOGGER.info("instance attributes: %s", str(instance) + lineno()) -# LOGGER.info(f"Fetching instance DNS information from dynamodb {lineno()}") -# instance_dns_data = get_item_from_dynamodb_table(dynamodb_client, DDBNAME, f'{instance_id}/dns') -# instance_dns_data_dict = json.loads(instance_dns_data, default=json_serial) -# LOGGER.info(f"instance dns data: {str(instance_dns_data)} length {len(instance_dns_data_dict)} {lineno()}") + LOGGER.info(f"Fetching instance DNS information from dynamodb {lineno()}") + instance_dns_data = get_item_from_dynamodb_table( + dynamodb_client, DDBNAME, f'{instance_id}/dns') + instance_dns_data_dict = json.loads(instance_dns_data, default=json_serial) + LOGGER.info( + f"instance dns data: {str(instance_dns_data)} length {len(instance_dns_data_dict)} {lineno()}") # Get the instance tags and reorder them because we want a zone created before CNAME try: @@ -1030,6 +1032,7 @@ def lambda_handler( caller_response.insert(0, 'Successfully created recordsets') LOGGER.info(f"dns_data records written:\n{pformat(dns_data)}") + put_instance_dns_data_item(dynamodb_client, DDBNAME, instance_id, dns_data): count['end'] = datetime.datetime.now() count['elapsed_ms'] = (count['end'] - count['start']).total_seconds() * 1000.0 @@ -1038,6 +1041,16 @@ def lambda_handler( return caller_response +def put_instance_dns_data_item(dynamodb_client, DDBNAME, instance_id, dns): + dns_list = [dict(d) for d in dns] + dns_info = json.dumps(dns_list, default=json_serial) + + LOGGER.debug(f"put dns data into {instance_id}/dns: {str(dns_info)}: {lineno()}") + put_item_in_dynamodb_table(dynamodb_client, DDBNAME, f'{instance_id}/dns', dns_info) + LOGGER.debug(f"done putting dns item in dynamo table {lineno()}") + return + + def get_cname_from_tags(tags): """ Get the cname prefix from tags diff --git a/code/ddns-lambda.zip b/code/ddns-lambda.zip index 15c4d69..a9237c3 100644 Binary files a/code/ddns-lambda.zip and b/code/ddns-lambda.zip differ