diff --git a/code/ddns-lambda.py b/code/ddns-lambda.py index 8cd2f75..a1c6710 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.0b76' +VERSION = '1.2.0b77' # Read Env variables DEBUG_LOG_LEVEL = os.environ.get('DebugLogLevel', 'INFO') @@ -416,17 +416,20 @@ def lambda_handler( LOGGER.info("Fetching instance information from dynamodb %s", lineno()) instance = get_item_from_dynamodb_table(dynamodb_client, DDBNAME, instance_id) LOGGER.info("instance attributes: %s", str(instance) + lineno()) - try: - dns_data_raw = instance.get('_DnsEntries', []) - LOGGER.debug( - f"got _DnsEntries type {type(dns_data_raw)} value {dns_data_raw} {lineno()}") - dns_data = [dns_data_tuple(**item) for item in dns_data_raw] - LOGGER.debug(f"converted _DnsEntries to namdtuples {dns_data} {lineno()}") - LOGGER.info( - f"Found entries from DDB for DNS records: {str(dns_data)} {lineno()}") - except Exception as err: - LOGGER.error(f"Cannot deserialize instance data from DDB: {err} {lineno()}") - dns_data = [] + dns_data = [] + if len(instance) > 0: + try: + dns_data_raw = instance.get('_DnsEntries', []) + LOGGER.debug( + f"got _DnsEntries type {type(dns_data_raw)} value {dns_data_raw} {lineno()}") + dns_data = [dns_data_tuple(**item) for item in dns_data_raw] + LOGGER.debug( + f"converted _DnsEntries to namdtuples {dns_data} {lineno()}") + LOGGER.info( + f"Found entries from DDB for DNS records: {str(dns_data)} {lineno()}") + except Exception as err: + LOGGER.error( + f"Cannot deserialize instance data from DDB: {err} {lineno()}") # Get the instance tags and reorder them because we want a zone created before CNAME try: diff --git a/code/ddns-lambda.zip b/code/ddns-lambda.zip index 999974c..bf8883a 100644 Binary files a/code/ddns-lambda.zip and b/code/ddns-lambda.zip differ