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 )