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 )