Enviar notificación por correo electrónico en caso de fallo en la actualización del conjunto de datos mediante Boto3.
Tengo una función Lambda con lo siguiente:
sts_client = boto3.client('sts')
account = sts_client.get_caller_identity()['Account']
qs_client = boto3.client('quicksight')
qs_client.create_ingestion(
DataSetId=full_data_set_id,
IngestionId=ingestion_id,
AwsAccountId=account,
IngestionType=data_set['ingestionType'])
Esto funciona bien. Sin embargo, la interfaz de usuario de Quicksight tiene esto:
¿Hay alguna manera de usar boto3 para enviar un correo electrónico automático si falla la actualización del conjunto de datos? ¿La única manera de hacer esto es crear otra función Lambda para supervisar cada ingestión que se crea?
Para agregar al contexto de la pregunta, el caso de uso es que estoy creando todos los recursos de Quicksight de mi equipo a través de CDK y el SDK, por lo que establecer los horarios manualmente y usar la interfaz de usuario está fuera de la imagen, hay literalmente cientos de conjuntos de datos.
davy.ai
Es posible configurar una notificación cuando falla la actualización de un conjunto de datos de Quicksight usando boto3. Para hacer esto, sería necesario crear una regla de evento de Amazon CloudWatch que active una función Lambda cuando la actualización falla. La función Lambda debe enviar una notificación por correo electrónico usando Amazon SES.
Estos son los pasos para configurar esto:
DataSetRefreshFailed
de Quicksight. Esto se puede hacer usando el clientecloudwatch_events
de boto3:ses
de boto3 para enviar el correo electrónico:add_permission
del clientelambda
:IngestionErrorCallback
. Este parámetro debe establecerse en el ARN de la función Lambda que envía la notificación por correo electrónico:Con estos pasos, cada vez que falle la actualización de un conjunto de datos de Quicksight, la regla de evento de CloudWatch activará la función Lambda que enviará una notificación por correo electrónico usando Amazon SES.