

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# CloudWatch へのイベントの送信
<a name="examples-cloudwatch-send-events"></a>

CloudWatch Events は、Amazon EC2 インスタンス、Lambda 関数、Kinesis ストリーム、Amazon ECS タスク、Step Functions ステートマシン、Amazon SNS トピック、Amazon SQS キュー、または組み込みターゲットへの AWS リソースの変更を記述するシステムイベントのほぼリアルタイムのストリームを提供します。簡単なルールを使用して、一致したイベントを 1 つ以上のターゲット関数またはストリームに振り分けることができます。

**注記**  
これらのコードスニペットは、[「 の使用開始」のマテリアルを理解し、「認証情報の提供 AWS SDK for C\$1\$1](getting-started.md)」の情報を使用してデフォルトの[AWS 認証情報を設定していることを前提としています](credentials.md)。 AWS 

## イベントの追加
<a name="add-events"></a>

カスタム CloudWatch イベントを追加するには、各イベントの詳細を提供する [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) オブジェクトを 1 つ以上含む [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) オブジェクトを指定して、CloudWatchEventsClient の `PutEvents` 関数を呼び出します。イベントのソースとタイプ、イベントに関連付けられたリソースなど、エントリの複数のパラメータを指定できます。

**注記**  
`putEvents` への呼び出しごとに最大 10 個のイベントを指定できます。

 **を含む** 

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

 **コード** 

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

ルールを作成または更新するには、ルールの名前、[イベントパターン](https://docs.aws.amazon.com/AmazonCloudWatch/latest/events/CloudWatchEventsandEventPatterns.html)、関連付ける IAM ロール、実行頻度を記述する[スケジュール式](https://docs.aws.amazon.com/AmazonCloudWatch/latest/events/ScheduledEvents.html)などのオプションパラメータを含む [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) を指定して、CloudWatchEventsClient の `PutRule` 関数を呼び出します。

 **を含む** 

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

 **コード** 

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

ターゲットは、ルールがトリガーされたときに呼び出されるリソースです。ターゲットの例には、Amazon EC2 インスタンス、Lambda 関数、Kinesis ストリーム、Amazon ECS タスク、Step Functions ステートマシン、組み込みターゲットなどがあります。

ルールにターゲットを追加するには、更新するルールを含む [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) とルールに追加するターゲットのリストを指定して、CloudWatchEventsClient の `PutTargets` 関数を呼び出します。

 **を含む** 

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

 **コード** 

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

[完全な例](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/cpp/example_code/eventbridge/put_targets.cpp)をご覧ください。

## 詳細情報
<a name="more-information"></a>
+  「Amazon CloudWatch Events ユーザーガイド」の「[PutEvents によるイベントの追加](https://docs.aws.amazon.com/AmazonCloudWatch/latest/events/AddEventsPutEvents.html)」
+  「Amazon CloudWatch Events ユーザーガイド」の「[ルールのスケジュール式](https://docs.aws.amazon.com/AmazonCloudWatch/latest/events/ScheduledEvents.html)」
+  「Amazon CloudWatch Events ユーザーガイド」の「[CloudWatch Events のイベントタイプ](https://docs.aws.amazon.com/AmazonCloudWatch/latest/events/EventTypes.html)」
+  「Amazon CloudWatch Events ユーザーガイド」の「[イベントおよびイベントパターン](https://docs.aws.amazon.com/AmazonCloudWatch/latest/events/CloudWatchEventsandEventPatterns.html)」
+  「Amazon CloudWatch Events API リファレンス」の「[PutEvents](https://docs.aws.amazon.com/AmazonCloudWatchEvents/latest/APIReference/PutEvents.html)」
+  「Amazon CloudWatch Events API リファレンス」の「[PutTargets](https://docs.aws.amazon.com/AmazonCloudWatchEvents/latest/APIReference/PutTargets.html)」
+  「Amazon CloudWatch Events API リファレンス」の「[PutRule](https://docs.aws.amazon.com/AmazonCloudWatchEvents/latest/APIReference/PutRule.html)」