App-Aliyun
view release on metacpan or search on metacpan
lib/MojoX/Aliyun.pm view on Meta::CPAN
Format => 'JSON',
Version => $Version,
SignatureMethod => 'HMAC-SHA1',
SignatureVersion => '1.0',
SignatureNonce => $uuid,
AccessKeyId => $self->access_key,
$self->region_id ? (RegionId => $self->region_id) : (),
$params ? %$params : (),
);
# say Dumper(\%auth_params); use Data::Dumper;
# Thanks to https://github.com/lemontv/AliyunPerlLib/blob/master/Aliyun/Auth.pm
my %dumb = %auth_params; $dumb{Timestamp} = uri_escape($dumb{Timestamp});
my @tmps = map { join('=', $_, $dumb{$_}) } sort keys(%dumb);
my $StringToSign = join("&", @tmps);
$StringToSign = join('&', $method, uri_escape($path), uri_escape($StringToSign));
my $Signature = hmac_sha1_base64($StringToSign, $self->access_secret . '&');
$auth_params{Signature} = $Signature . '=';
my $tx = $self->ua->build_tx($method => $url => form => \%auth_params );
script/aliyun-cli-ec2-restart-by-name view on Meta::CPAN
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};
}
script/aliyun-cli-rds-whitelist-my-ip view on Meta::CPAN
binmode(STDOUT, ':encoding(utf8)');
binmode(STDERR, ':encoding(utf8)');
my $group = shift @ARGV;
die "perl $0 \$group_name" unless $group;
use Sys::HostAddr;
my $sysaddr = Sys::HostAddr->new();
my $public_ip = $sysaddr->public();
say "Adding $public_ip to RDS whitelist";
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', 'rds', {
Action => 'DescribeDBInstances',
});
foreach my $db (@{ $data->{Items}->{DBInstance} }) {
say "# replace group $group with $public_ip on $db->{DBInstanceId}";
my $r = $aliyun->request('GET', 'rds', {
Action => 'ModifySecurityIps',
DBInstanceId => $db->{DBInstanceId},
SecurityIps => $public_ip,
DBInstanceIPArrayName => $group
});
say Dumper(\$r);
}
script/aliyun-cli-regions view on Meta::CPAN
binmode(STDERR, ':encoding(utf8)');
my $aliyun = MojoX::Aliyun->new(
access_key => $ENV{ALIYUN_ACCESS_KEY},
access_secret => $ENV{ALIYUN_ACCESS_SECRET},
);
my $data = $aliyun->request('GET', 'ecs', {
Action => 'DescribeRegions',
});
foreach my $Region (sort { $a->{RegionId} cmp $b->{RegionId} } @{ $data->{Regions}->{Region} }) {
say $Region->{RegionId} . ': ' . $Region->{LocalName};
}
( run in 1.377 second using v1.01-cache-2.11-cpan-a1f116cd669 )