

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Envío de eventos a CloudWatch
<a name="examples-cloudwatch-send-events"></a>

CloudWatch Events ofrece una transmisión casi en tiempo real de los eventos del sistema que describen los cambios en los AWS recursos en las instancias de Amazon EC2, las funciones de Lambda, las transmisiones de Kinesis, las tareas de Amazon ECS, las máquinas de estado de Step Functions, los temas de Amazon SNS, las colas de Amazon SQS o los objetivos integrados. Mediante reglas sencillas, puede asignar los eventos y dirigirlos a una o más secuencias o funciones de destino.

**nota**  
[Estos fragmentos de código suponen que usted entiende el material de la sección [Cómo empezar a utilizar el código AWS SDK para C\$1\$1 y que ha configurado las credenciales predeterminadas AWS con la](getting-started.md) información que aparece en Proporcionar credenciales. AWS](credentials.md)

## Añadir eventos
<a name="add-events"></a>

Para añadir CloudWatch eventos personalizados, llame a la `PutEvents` función CloudWatchEventsClient's con un [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 contenga uno o más [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 proporcionen detalles sobre cada evento. Puede especificar varios parámetros para la entrada como el origen y el tipo del evento, los recursos asociados con el evento, etc.

**nota**  
Puede especificar un máximo de 10 eventos para cada llamada a `putEvents`.

 **Incluye** 

```
#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;
        }
```

## Añadir reglas
<a name="add-rules"></a>

Para crear o actualizar una regla, llame a la CloudWatchEventsClient `PutRule` función con una [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)con el nombre de la regla y parámetros opcionales, como el [patrón de eventos](https://docs.aws.amazon.com/AmazonCloudWatch/latest/events/CloudWatchEventsandEventPatterns.html), la función de IAM que desee asociar a la regla y una [expresión de programación](https://docs.aws.amazon.com/AmazonCloudWatch/latest/events/ScheduledEvents.html) que describa la frecuencia con la que se ejecuta la regla.

 **Incluye** 

```
#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;
        }
```

## Añadir destinos
<a name="add-targets"></a>

Los destinos son los recursos que se invocan cuando se activa una regla. Algunos ejemplos de destinos son las instancias de Amazon ECS, funciones de Lambda, flujos de Kinesis, tareas de Amazon EC2, máquinas de estado de Step Functions y destinos integrados.

Para añadir un destino a una regla, llama a la `PutTargets` función CloudWatchEventsClient's con una [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)que contenga la regla que deseas actualizar y una lista de objetivos que añadir a la regla.

 **Incluye** 

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

## Más información
<a name="more-information"></a>
+  [Añadir eventos PutEvents en la](https://docs.aws.amazon.com/AmazonCloudWatch/latest/events/AddEventsPutEvents.html) Guía del usuario de Amazon CloudWatch Events
+  [Programe expresiones para reglas](https://docs.aws.amazon.com/AmazonCloudWatch/latest/events/ScheduledEvents.html) en la guía del usuario de Amazon CloudWatch Events
+  [Tipos de CloudWatch eventos para eventos](https://docs.aws.amazon.com/AmazonCloudWatch/latest/events/EventTypes.html) en la Guía del usuario de Amazon CloudWatch Events
+  [Eventos y patrones de eventos](https://docs.aws.amazon.com/AmazonCloudWatch/latest/events/CloudWatchEventsandEventPatterns.html) en la guía del usuario de Amazon CloudWatch Events
+  [PutEvents](https://docs.aws.amazon.com/AmazonCloudWatchEvents/latest/APIReference/PutEvents.html)en la referencia de la API de Amazon CloudWatch Events
+  [PutTargets](https://docs.aws.amazon.com/AmazonCloudWatchEvents/latest/APIReference/PutTargets.html)en la referencia de la API de Amazon CloudWatch Events
+  [PutRule](https://docs.aws.amazon.com/AmazonCloudWatchEvents/latest/APIReference/PutRule.html)en la referencia de la API de Amazon CloudWatch Events