Quero saber quando minha execução de tarefas do AWS DataSync for bem-sucedida ou falhar.
Resolução
Configure o Amazon Simple Notification Service (Amazon SNS) e o Amazon EventBridge para enviar notificações por e-mail quando o status de execução de uma tarefa do DataSync mudar para SUCESSO ou ERRO.
Pré-requisito: Você deve criar uma tarefa do DataSync.
Crie um tópico do Amazon SNS e inscreva seu e-mail no tópico
Conclua as etapas a seguir:
- Abra o console do Amazon SNS.
- No painel de navegação, selecione Tópicos.
- Escolha Criar tópico.
- Em Nome, insira um nome para o tópico.
- Escolha Criar tópico.
- Na página do seu tópico, escolha a guia Assinaturas.
- Escolha Criar assinatura.
- Na página Criar assinatura, execute as seguintes ações:
Em Protocolo, selecione E-mail.
Para Endpoint, insira o endereço de e-mail no qual você deseja receber notificações.
- Escolha Criar assinatura.
- Na mensagem de confirmação de assinatura que você recebe, escolha o link Confirmar assinatura.
Crie uma regra do EventBridge para o DataSync e defina o tópico do SNS como destino
Conclua as etapas a seguir:
- Abra o console do EventBridge.
- No painel de navegação, escolha Regras.
- Selecione Criar regra.
- Insira um Nome e uma descrição para a regra.
- Em Criar padrão de evento, escolha eventos da AWS ou eventos de parceiros do EventBridge na seção Eventos.
- Em Padrão de evento, escolha Usar formulário de padrão.
- Em Origem do evento, escolha Serviços AWS.
- Para o serviço da AWS, escolha DataSync.
- Em Tipo de evento, escolha Alteração do estado de execução da tarefa do DataSync.
- Em Padrão de evento, insira o seguinte JSON para receber notificações de todas as execuções de tarefas que estão no status SUCESSO ou ERRO:
{
"source": [
"aws.datasync"
],
"detail-type": [
"DataSync Task Execution State Change"
],
"detail": {
"State": [
"SUCCESS",
"ERROR"
]
}
}
- Em Selecionar alvos, execute as seguintes ações:
Em Destino, escolha Tópico do SNS.
Em Tópico, selecione o tópico que você criou.
- Escolha Criar.
Inicie uma tarefa do DataSync para testar as notificações por e-mail
Para testar as notificações por e-mail sobre os status de execução da tarefa do DataSync, primeiro crie uma tarefa e, em seguida, inicie-a.
Depois de iniciar a tarefa, você recebe uma notificação por e-mail sobre o status da execução da tarefa do DataSync. Para uma execução de tarefa bem-sucedida, você recebe uma mensagem de notificação de SUCESSO semelhante à seguinte:
{
"version": "0",
"id": "example0-c014-d9e9-d7ac-44f00d5d1200",
"detail-type": "DataSync Task Execution State Change",
"source": "aws.datasync",
"account": "111122223333",
"time": "2019-01-23T12:35:26Z",
"region": "us-west-2",
"resources": ["arn:aws:sync:us-west-2:9111122223333:task/task-example23d67d5be5/execution/exec-example316440271f"],
"detail": {
"State": "SUCCESS"
}
}
Receba notificações para apenas uma tarefa do DataSync
Para receber notificações de apenas uma tarefa do DataSync, use os operadores de comparação do EventBridge para pesquisar correspondências parciais do ARN da tarefa.
Por exemplo, especifique o ARN da tarefa como o valor do parâmetro de prefixo no seguinte JSON:
{
"detail-type": ["DataSync Task Execution State Change"],
"source": ["aws.datasync"],
"resources": [{
"prefix": "arn:aws:datasync:REGION:ACCOUNT-ID:task/TASK-ID/execution/exec-"
}],
"detail": {
"State": ["SUCCESS", "ERROR"]
}
}
Receba notificações para várias tarefas do DataSync
Use o parâmetro de prefixo
Para receber notificações de várias tarefas, é possível incluir um parâmetro de prefixo para cada tarefa. Por exemplo, o JSON a seguir ativa as notificações para duas tarefas:
{
"source": ["aws.datasync"],
"detail-type": ["DataSync Task Execution State Change"],
"resources": [{
"prefix": "arn:aws:datasync:REGION:ACCOUNT-ID:task/TASK1-ID/execution/exec-"
}, {
"prefix": "arn:aws:datasync:REGION:ACCOUNT-ID:task/TASK2-ID/execution/exec-"
}],
"detail": {
"State": ["SUCCESS", "ERROR"]
}
}
Observação: substitua REGION pela sua região da AWS e ACCOUNT-ID pela ID da sua conta da AWS. Além disso, substitua TASK1-ID e TASK2-ID pelos IDs de suas tarefas.
Use o parâmetro curinga
Também é possível usar o parâmetro curinga para receber notificações para tarefas específicas. Por exemplo, o JSON a seguir ativa as notificações para todas as tarefas que têm o prefixo ARN especificado antes do caractere *:
{
"detail-type": ["DataSync Task Execution State Change"],
"source": ["aws.datasync"],
"resources": [{
"wildcard": "arn:aws:datasync:REGION:ACCOUNT-ID:task/TASK-ID/execution/exec-*"
}],
"detail": {
"State": ["SUCCESS", "ERROR"]
}
}
Observação: Substitua REGION pela sua região, ACCOUNT-ID pelo ID da sua conta e TASK-ID pelo ID da sua tarefa.
Para receber notificações somente para algumas tarefas, use o seguinte JSON:
{
"detail-type": ["DataSync Task Execution State Change"],
"source": ["aws.datasync"],
"resources": [{
"wildcard": "*/TASK1-ID/execution/exec-*"
}, {
"wildcard": "*/TASK2-ID/execution/exec-*"
}],
"detail": {
"State": ["SUCCESS", "ERROR"]
}
}
Observação: substitua TASK1-ID e TASK2-ID pelos IDs de suas tarefas.
Informações relacionadas
Monitoramento de eventos usando o Amazon EventBridge
Como criar regras que reagem a eventos no Amazon EventBridge