As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Enviar eventos ao CloudWatch
O CloudWatch Events entrega um fluxo quase em tempo real de eventos do sistema que descrevem alterações feitas em recursos da AWS para instâncias do Amazon EC2, funções do Lambda, fluxos do Kinesis, tarefas do Amazon ECS, máquinas de estado do Step Functions, tópicos do Amazon SNS, filas do Amazon SQS ou destinos incorporados. Você pode comparar eventos e roteá-los para um ou mais fluxos ou funções de destino usando regras simples.
nota
Esses trechos de código pressupõem que você entenda o material em Conceitos básicos do AWS SDK para C++ e tenha configurado credenciais da AWS padrão usando as informações em Fornecer credenciais da AWS.
Adicionar eventos
Para adicionar eventos do CloudWatch personalizados, chame a função PutEvents do CloudWatchEventsClient com um objeto PutEventsRequest com um ou mais objetos PutEventsRequestEntry que forneçam detalhes sobre cada evento. Você pode especificar vários parâmetros para a entrada, como a origem e o tipo do evento, recursos associados ao evento e assim por diante.
nota
Você pode especificar um máximo de dez eventos por chamada para putEvents.
Inclui
#include <aws/core/Aws.h> #include <aws/events/EventBridgeClient.h> #include <aws/events/model/PutEventsRequest.h> #include <aws/events/model/PutEventsResult.h> #include <aws/core/utils/Outcome.h> #include <iostream>
Código da
Aws::CloudWatchEvents::EventBridgeClient cwe; Aws::CloudWatchEvents::Model::PutEventsRequestEntry event_entry; event_entry.SetDetail(MakeDetails(event_key, event_value)); event_entry.SetDetailType("sampleSubmitted"); event_entry.AddResources(resource_arn); event_entry.SetSource("aws-sdk-cpp-cloudwatch-example"); Aws::CloudWatchEvents::Model::PutEventsRequest request; request.AddEntries(event_entry); auto outcome = cwe.PutEvents(request); if (!outcome.IsSuccess()) { std::cout << "Failed to post CloudWatch event: " << outcome.GetError().GetMessage() << std::endl; } else { std::cout << "Successfully posted CloudWatch event" << std::endl; }
Adicionar regras
Para criar ou atualizar uma regra, chame a função PutRule do CloudWatchEventsClient com uma PutRuleRequest com o nome da regra e os parâmetros opcionais, como o padrão de evento, o perfil do IAM, a ser associado à regra e uma expressão de programação que descreva com que frequência a regra é executada.
Inclui
#include <aws/core/Aws.h> #include <aws/events/EventBridgeClient.h> #include <aws/events/model/PutRuleRequest.h> #include <aws/events/model/PutRuleResult.h> #include <aws/core/utils/Outcome.h> #include <iostream>
Código da
Aws::CloudWatchEvents::EventBridgeClient cwe; Aws::CloudWatchEvents::Model::PutRuleRequest request; request.SetName(rule_name); request.SetRoleArn(role_arn); request.SetScheduleExpression("rate(5 minutes)"); request.SetState(Aws::CloudWatchEvents::Model::RuleState::ENABLED); auto outcome = cwe.PutRule(request); if (!outcome.IsSuccess()) { std::cout << "Failed to create CloudWatch events rule " << rule_name << ": " << outcome.GetError().GetMessage() << std::endl; } else { std::cout << "Successfully created CloudWatch events rule " << rule_name << " with resulting Arn " << outcome.GetResult().GetRuleArn() << std::endl; }
Adicionar destinos
Destinos são os recursos invocados quando uma regra é disparada. Os exemplos de destino incluem instâncias do Amazon EC2, funções do Lambda, fluxos do Kinesis, tarefas do Amazon ECS, máquinas de estado do Step Functions e destinos integrados.
Para adicionar um destino a uma regra, chame a função PutTargets do CloudWatchEventsClient com uma PutTargetsRequest com a regra a ser atualizada e uma lista de destinos a serem adicionados à regra.
Inclui
#include <aws/core/Aws.h> #include <aws/events/EventBridgeClient.h> #include <aws/events/model/PutTargetsRequest.h> #include <aws/events/model/PutTargetsResult.h> #include <aws/core/utils/Outcome.h> #include <iostream>
Código da
Aws::CloudWatchEvents::EventBridgeClient cwe; Aws::CloudWatchEvents::Model::Target target; target.SetArn(lambda_arn); target.SetId(target_id); Aws::CloudWatchEvents::Model::PutTargetsRequest request; request.SetRule(rule_name); request.AddTargets(target); auto putTargetsOutcome = cwe.PutTargets(request); if (!putTargetsOutcome.IsSuccess()) { std::cout << "Failed to create CloudWatch events target for rule " << rule_name << ": " << putTargetsOutcome.GetError().GetMessage() << std::endl; } else { std::cout << "Successfully created CloudWatch events target for rule " << rule_name << std::endl; }
Consulte o exemplo completo
Mais informações
-
Adding Events with PutEvents no Guia do usuário do Amazon CloudWatch Events.
-
Schedule Expressions for Rules no Guia do usuário do Amazon CloudWatch Events.
-
Tipos de evento do CloudWatch Events no Guia do usuário do Amazon CloudWatch Events
-
Events and Event Patterns no Guia do usuário do Amazon CloudWatch Events.
-
PutEvents na Referência de API do Amazon CloudWatch Events.
-
PutTargets na Referência de API do Amazon CloudWatch Events.
-
PutRule na Referência de API do Amazon CloudWatch Events