AWS-XRay

 view release on metacpan or  search on metacpan

lib/AWS/XRay/Plugin/EC2.pm  view on Meta::CPAN


sub apply_plugin {
    my ($class, $segment) = @_;

    $METADATA ||= do {
        my $ua = HTTP::Tiny->new(timeout => 1);

        # get token for IMDSv2
        my $token = do {
            my $res = $ua->request(
                "PUT",
                "$_base_url/api/token", {
                    headers => {
                        'X-aws-ec2-metadata-token-ttl-seconds' => '60',
                    },
                }
            );
            $res->{success} ? $res->{content} : '';
        };
        my $opt = {};
        if ($token ne '') {

t/10_plugin_ec2_v2.t  view on Meta::CPAN

    code   => sub {
        my $sock   = shift;
        my $server = HTTP::Server::PSGI->new(
            listen_sock => $sock,
        );
        $server->run(
            sub {
                my $env    = shift;
                my $method = $env->{REQUEST_METHOD};
                my $path   = $env->{PATH_INFO};
                if ($method eq 'PUT') {
                    if (!$env->{HTTP_X_AWS_EC2_METADATA_TOKEN_TTL_SECONDS}) {
                        return [400, [], ['Bad Request']];
                    }
                    if ($path ne '/api/token') {
                        return [404, [], ['Not Found']];
                    }
                    return [200, [], [$token]];
                }
                if ($method eq 'GET') {
                    if (($env->{HTTP_X_AWS_EC2_METADATA_TOKEN} || '') ne $token) {



( run in 0.454 second using v1.01-cache-2.11-cpan-4e96b696675 )