

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á.

# Enviando eventos para CloudWatch
<a name="examples-cloudwatch-send-events"></a>

CloudWatch O Events fornece um fluxo quase em tempo real de eventos do sistema que descrevem mudanças nos AWS recursos das instâncias do Amazon EC2, funções Lambda, streams do Kinesis, tarefas do Amazon ECS, máquinas de estado do Step Functions, tópicos do Amazon SNS, filas do Amazon SQS ou destinos integrados. 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ê compreenda o material em [Introdução ao uso do AWS SDK para C\$1\$1 e tenha configurado as](getting-started.md)AWS credenciais padrão usando as informações em Fornecimento de credenciais. AWS](credentials.md)

## Adicionar eventos
<a name="add-events"></a>

Para adicionar CloudWatch eventos personalizados, chame a `PutEvents` função CloudWatchEventsClient's com um [PutEventsRequest](https://docs.aws.amazon.com/sdk-for-cpp/latest/api/aws-cpp-sdk-eventbridge/html/class_aws_1_1_event_bridge_1_1_model_1_1_put_events_request.html)objeto que contém um ou mais [PutEventsRequestEntry](https://docs.aws.amazon.com/sdk-for-cpp/latest/api/aws-cpp-sdk-eventbridge/html/class_aws_1_1_event_bridge_1_1_model_1_1_put_events_request_entry.html)objetos que fornecem 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** 

```
        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
<a name="add-rules"></a>

Para criar ou atualizar uma regra, chame a `PutRule` função CloudWatchEventsClient's com a [PutRuleRequest](https://docs.aws.amazon.com/sdk-for-cpp/latest/api/aws-cpp-sdk-eventbridge/html/class_aws_1_1_event_bridge_1_1_model_1_1_put_rule_request.html)com o nome da regra e parâmetros opcionais, como o [padrão do evento](https://docs.aws.amazon.com/AmazonCloudWatch/latest/events/CloudWatchEventsandEventPatterns.html), a função do IAM a ser associada à regra e uma [expressão de agendamento](https://docs.aws.amazon.com/AmazonCloudWatch/latest/events/ScheduledEvents.html) que descreva a frequência com que 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** 

```
        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
<a name="add-targets"></a>

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 alvo a uma regra, chame a `PutTargets` função CloudWatchEventsClient's [PutTargetsRequest](https://docs.aws.amazon.com/sdk-for-cpp/latest/api/aws-cpp-sdk-eventbridge/html/class_aws_1_1_event_bridge_1_1_model_1_1_put_targets_request.html)contendo 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** 

```
        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](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/cpp/example_code/eventbridge/put_targets.cpp).

## Mais informações
<a name="more-information"></a>
+  [Adicionar eventos ao](https://docs.aws.amazon.com/AmazonCloudWatch/latest/events/AddEventsPutEvents.html) Guia PutEvents do usuário do Amazon CloudWatch Events
+  [Agende expressões para regras](https://docs.aws.amazon.com/AmazonCloudWatch/latest/events/ScheduledEvents.html) no Guia do usuário do Amazon CloudWatch Events
+  [Tipos de CloudWatch eventos para eventos](https://docs.aws.amazon.com/AmazonCloudWatch/latest/events/EventTypes.html) no Guia do usuário do Amazon CloudWatch Events
+  [Eventos e padrões de eventos](https://docs.aws.amazon.com/AmazonCloudWatch/latest/events/CloudWatchEventsandEventPatterns.html) no Guia do usuário do Amazon CloudWatch Events
+  [PutEvents](https://docs.aws.amazon.com/AmazonCloudWatchEvents/latest/APIReference/PutEvents.html)na referência da API de CloudWatch eventos da Amazon
+  [PutTargets](https://docs.aws.amazon.com/AmazonCloudWatchEvents/latest/APIReference/PutTargets.html)na referência da API de CloudWatch eventos da Amazon
+  [PutRule](https://docs.aws.amazon.com/AmazonCloudWatchEvents/latest/APIReference/PutRule.html)na referência da API de CloudWatch eventos da Amazon