Utilizzo degli CloudWatch allarmi Amazon con la AWS SDK for PHP versione 3 - AWS SDK for PHP

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Utilizzo degli CloudWatch allarmi Amazon con la AWS SDK for PHP versione 3

Una CloudWatch sveglia Amazon rileva una singola metrica per un periodo di tempo specificato. L'allarme esegue una o più operazioni basate sul valore del parametro relativo a una soglia prestabilita per un certo numero di periodi.

Gli esempi seguenti mostrano come:

Tutto il codice di esempio per il AWS SDK for PHP è disponibile qui GitHub.

Credenziali

Prima di eseguire il codice di esempio, configurate AWS le vostre credenziali, come descritto inCredenziali. Quindi importate il fileAWS SDK for PHP, come descritto inUtilizzo di base.

Descrizione di allarmi

Importazioni

require 'vendor/autoload.php'; use Aws\CloudWatch\CloudWatchClient; use Aws\Exception\AwsException;

Codice di esempio

function describeAlarms($cloudWatchClient) { try { $result = $cloudWatchClient->describeAlarms(); $message = ''; if (isset($result['@metadata']['effectiveUri'])) { $message .= 'Alarms at the effective URI of ' . $result['@metadata']['effectiveUri'] . "\n\n"; if (isset($result['CompositeAlarms'])) { $message .= "Composite alarms:\n"; foreach ($result['CompositeAlarms'] as $alarm) { $message .= $alarm['AlarmName'] . "\n"; } } else { $message .= "No composite alarms found.\n"; } if (isset($result['MetricAlarms'])) { $message .= "Metric alarms:\n"; foreach ($result['MetricAlarms'] as $alarm) { $message .= $alarm['AlarmName'] . "\n"; } } else { $message .= 'No metric alarms found.'; } } else { $message .= 'No alarms found.'; } return $message; } catch (AwsException $e) { return 'Error: ' . $e->getAwsErrorMessage(); } } function describeTheAlarms() { $cloudWatchClient = new CloudWatchClient([ 'profile' => 'default', 'region' => 'us-east-1', 'version' => '2010-08-01' ]); echo describeAlarms($cloudWatchClient); } // Uncomment the following line to run this code in an AWS account. // describeTheAlarms();

Creazione di un allarme

Importazioni

require 'vendor/autoload.php'; use Aws\CloudWatch\CloudWatchClient; use Aws\Exception\AwsException;

Codice di esempio

function putMetricAlarm( $cloudWatchClient, $cloudWatchRegion, $alarmName, $namespace, $metricName, $dimensions, $statistic, $period, $comparison, $threshold, $evaluationPeriods ) { try { $result = $cloudWatchClient->putMetricAlarm([ 'AlarmName' => $alarmName, 'Namespace' => $namespace, 'MetricName' => $metricName, 'Dimensions' => $dimensions, 'Statistic' => $statistic, 'Period' => $period, 'ComparisonOperator' => $comparison, 'Threshold' => $threshold, 'EvaluationPeriods' => $evaluationPeriods ]); if (isset($result['@metadata']['effectiveUri'])) { if ( $result['@metadata']['effectiveUri'] == 'https://monitoring.' . $cloudWatchRegion . '.amazonaws.com' ) { return 'Successfully created or updated specified alarm.'; } else { return 'Could not create or update specified alarm.'; } } else { return 'Could not create or update specified alarm.'; } } catch (AwsException $e) { return 'Error: ' . $e->getAwsErrorMessage(); } } function putTheMetricAlarm() { $alarmName = 'my-ec2-resources'; $namespace = 'AWS/Usage'; $metricName = 'ResourceCount'; $dimensions = [ [ 'Name' => 'Type', 'Value' => 'Resource' ], [ 'Name' => 'Resource', 'Value' => 'vCPU' ], [ 'Name' => 'Service', 'Value' => 'EC2' ], [ 'Name' => 'Class', 'Value' => 'Standard/OnDemand' ] ]; $statistic = 'Average'; $period = 300; $comparison = 'GreaterThanThreshold'; $threshold = 1; $evaluationPeriods = 1; $cloudWatchRegion = 'us-east-1'; $cloudWatchClient = new CloudWatchClient([ 'profile' => 'default', 'region' => $cloudWatchRegion, 'version' => '2010-08-01' ]); echo putMetricAlarm( $cloudWatchClient, $cloudWatchRegion, $alarmName, $namespace, $metricName, $dimensions, $statistic, $period, $comparison, $threshold, $evaluationPeriods ); } // Uncomment the following line to run this code in an AWS account. // putTheMetricAlarm();

Eliminare allarmi

Importazioni

require 'vendor/autoload.php'; use Aws\CloudWatch\CloudWatchClient; use Aws\Exception\AwsException;

Codice di esempio

function deleteAlarms($cloudWatchClient, $alarmNames) { try { $result = $cloudWatchClient->deleteAlarms([ 'AlarmNames' => $alarmNames ]); return 'The specified alarms at the following effective URI have ' . 'been deleted or do not currently exist: ' . $result['@metadata']['effectiveUri']; } catch (AwsException $e) { return 'Error: ' . $e->getAwsErrorMessage(); } } function deleteTheAlarms() { $alarmNames = array('my-alarm'); $cloudWatchClient = new CloudWatchClient([ 'profile' => 'default', 'region' => 'us-east-1', 'version' => '2010-08-01' ]); echo deleteAlarms($cloudWatchClient, $alarmNames); } // Uncomment the following line to run this code in an AWS account. // deleteTheAlarms();