def lambda_handler()

in functions/delete_dashboard/app.py [0:0]


def lambda_handler(event, context):

    logger.info(json.dumps(event, indent=2, default=default))

    mwaa_environments = mwaa.list_environments()["Environments"]

    logger.info(f"Airflow environments: {json.dumps(mwaa_environments, indent=2)}")

    response = cloudwatch.list_dashboards(DashboardNamePrefix="Airflow-")
    logger.info(json.dumps(response, indent=2, default=default))

    # Remove any dashboards for missing environments
    for de in response["DashboardEntries"]:
        # e.g. if Airflow-MyEnv3 not in ['Airflow-MyEnv1', 'Airflow-MyEnv2']
        if de["DashboardName"] not in ["Airflow-" + s for s in mwaa_environments]:
            logger.info(
                f"Deleting dashboard {de['DashboardName']} due to nonexistent MWAA environment."
            )
            try:
                response = cloudwatch.delete_dashboards(
                    DashboardNames=[de["DashboardName"]]
                )
            except ClientError as e:
                print("Unexpected error: %s" % e)
                return de["DashboardName"]