App-Aliyun
view release on metacpan or search on metacpan
script/aliyun-cli-ec2-restart-by-name view on Meta::CPAN
#!/usr/bin/perl
use strict;
use warnings;
use v5.10;
use FindBin qw/$Bin/;
use lib "$Bin/../lib";
use Data::Dumper;
use MojoX::Aliyun;
binmode(STDOUT, ':encoding(utf8)');
binmode(STDERR, ':encoding(utf8)');
my $InstanceName = shift @ARGV;
die "perl $0 \$InstanceName" unless $InstanceName;
die 'setup ENV ALIYUN_ACCESS_KEY, ALIYUN_ACCESS_SECRET, ALIYUN_REGION_ID'
unless $ENV{ALIYUN_ACCESS_KEY} and $ENV{ALIYUN_REGION_ID};
my $aliyun = MojoX::Aliyun->new(
access_key => $ENV{ALIYUN_ACCESS_KEY},
access_secret => $ENV{ALIYUN_ACCESS_SECRET},
region_id => $ENV{ALIYUN_REGION_ID},
);
my $data = $aliyun->request('GET', 'ecs', {
Action => 'DescribeInstances',
InstanceName => $InstanceName
});
die "Can not find the instance $InstanceName" unless $data->{TotalCount};
foreach my $Instance (@{ $data->{Instances}->{Instance} }) {
my $res = $aliyun->request('GET', 'ecs', {
Action => 'RebootInstance',
InstanceId => $Instance->{InstanceId},
ForceStop => 'true',
});
say "restart $Instance->{InstanceId} OK" if $res->{RequestId};
}
( run in 2.546 seconds using v1.01-cache-2.11-cpan-0d23b851a93 )