기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
Amazon CloudWatch 경보 작업
사전 조건
시작하기 전에 AWS SDK for C++사용 시작하기를 읽어보시기 바랍니다.
예제 코드를 다운로드하고 코드 예제 시작하기에 설명된 대로 솔루션을 빌드합니다.
예제를 실행하려면 코드에서 요청을 만드는 데 사용하는 사용자 프로필에 AWS (서비스 및 작업에 대한) 적절한 권한이 있어야 합니다. 자세한 내용은 자격 AWS 증명 제공을 참조하세요.
경보 만들기
CloudWatch 지표를 기반으로 경보를 생성하려면 CloudWatchClient의 PutMetricAlarm 함수를 경보 조건이 입력된 PutMetricAlarmRequest와 함께 직접적으로 호출합니다.
포함 파일
#include <aws/core/Aws.h> #include <aws/monitoring/CloudWatchClient.h> #include <aws/monitoring/model/PutMetricAlarmRequest.h> #include <iostream>
코드
Aws::CloudWatch::CloudWatchClient cw; Aws::CloudWatch::Model::PutMetricAlarmRequest request; request.SetAlarmName(alarm_name); request.SetComparisonOperator( Aws::CloudWatch::Model::ComparisonOperator::GreaterThanThreshold); request.SetEvaluationPeriods(1); request.SetMetricName("CPUUtilization"); request.SetNamespace("AWS/EC2"); request.SetPeriod(60); request.SetStatistic(Aws::CloudWatch::Model::Statistic::Average); request.SetThreshold(70.0); request.SetActionsEnabled(false); request.SetAlarmDescription("Alarm when server CPU exceeds 70%"); request.SetUnit(Aws::CloudWatch::Model::StandardUnit::Seconds); Aws::CloudWatch::Model::Dimension dimension; dimension.SetName("InstanceId"); dimension.SetValue(instanceId); request.AddDimensions(dimension); auto outcome = cw.PutMetricAlarm(request); if (!outcome.IsSuccess()) { std::cout << "Failed to create CloudWatch alarm:" << outcome.GetError().GetMessage() << std::endl; } else { std::cout << "Successfully created CloudWatch alarm " << alarm_name << std::endl; }
전체 예제
경보 나열
생성한 CloudWatch 경보를 나열하려면 CloudWatchClient의 DescribeAlarms 함수를 결과에 대한 옵션을 설정하는 데 사용할 수 있는 DescribeAlarmsRequest와 함께 직접적으로 호출합니다.
포함 파일
#include <aws/core/Aws.h> #include <aws/monitoring/CloudWatchClient.h> #include <aws/monitoring/model/DescribeAlarmsRequest.h> #include <aws/monitoring/model/DescribeAlarmsResult.h> #include <iomanip> #include <iostream>
코드
Aws::CloudWatch::CloudWatchClient cw; Aws::CloudWatch::Model::DescribeAlarmsRequest request; request.SetMaxRecords(1); bool done = false; bool header = false; while (!done) { auto outcome = cw.DescribeAlarms(request); if (!outcome.IsSuccess()) { std::cout << "Failed to describe CloudWatch alarms:" << outcome.GetError().GetMessage() << std::endl; break; } if (!header) { std::cout << std::left << std::setw(32) << "Name" << std::setw(64) << "Arn" << std::setw(64) << "Description" << std::setw(20) << "LastUpdated" << std::endl; header = true; } const auto &alarms = outcome.GetResult().GetMetricAlarms(); for (const auto &alarm : alarms) { std::cout << std::left << std::setw(32) << alarm.GetAlarmName() << std::setw(64) << alarm.GetAlarmArn() << std::setw(64) << alarm.GetAlarmDescription() << std::setw(20) << alarm.GetAlarmConfigurationUpdatedTimestamp().ToGmtString( SIMPLE_DATE_FORMAT_STR) << std::endl; } const auto &next_token = outcome.GetResult().GetNextToken(); request.SetNextToken(next_token); done = next_token.empty(); }
DescribeAlarms에 의해 반환되는 DescribeAlarmsResult에 대해 getMetricAlarms를 호출하여 경보 목록을 가져올 수 있습니다.
결과를 페이징할 수 있습니다. 다음 결과 배치를 가져오려면 DescribeAlarmsResult 객체의 GetNextToken 함수 반환 값과 함께 원래 요청 객체에 대해 SetNextToken을 직접적으로 호출한 후 수정된 요청 객체를 DescribeAlarms의 다른 직접 호출에 다시 전달합니다.
참고
CloudWatchClient의 DescribeAlarmsForMetric 함수를 사용하여 특정 지표의 경보를 검색할 수도 있습니다. 이 메서드의 용도는 DescribeAlarms와 비슷합니다.
전체 예제
경보 삭제
CloudWatch 경보를 삭제하려면 삭제하려는 경보 이름이 하나 이상 포함된 DeleteAlarmsRequest와 함께 CloudWatchClient의 DeleteAlarms 함수를 직접적으로 호출합니다.
포함 파일
#include <aws/core/Aws.h> #include <aws/monitoring/CloudWatchClient.h> #include <aws/monitoring/model/DeleteAlarmsRequest.h> #include <iostream>
코드
Aws::CloudWatch::CloudWatchClient cw; Aws::CloudWatch::Model::DeleteAlarmsRequest request; request.AddAlarmNames(alarm_name); auto outcome = cw.DeleteAlarms(request); if (!outcome.IsSuccess()) { std::cout << "Failed to delete CloudWatch alarm:" << outcome.GetError().GetMessage() << std::endl; } else { std::cout << "Successfully deleted CloudWatch alarm " << alarm_name << std::endl; }
전체 예제
추가 정보
-
Amazon CloudWatch 사용 설명서의 Amazon CloudWatch 경보 생성
-
Amazon CloudWatch API 참조의 PutMetricAlarm
-
Amazon CloudWatch API 참조의 DescribeAlarms
-
Amazon CloudWatch API 참조의 DeleteAlarms