view release on metacpan or search on metacpan
0.5.3 2025-06-04T10:53:08Z
- Perl 5.40.2 and 5.38.4 are released #170
0.5.2 2025-01-20T20:32:05Z
- Perl 5.40.1 and 5.38.3 are released #164
- ap-northeast-7 adn mx-central-1 are available #166
- bump IO::Socket::SSL 2.089 #155
- bump YAML::XS 0.902.0 #156, #158
- bump Mozii::CA 20240924 #159
- bump Cpanel::JSON::XS v4.39 #160
- bump YAML::Tiny v1.76 #161, #162
0.5.1 2024-08-26T11:04:34Z
- ap-southeast-5 is available
- AWS Lambda Functions powered by AWS Graviton2 now available on ca-west-1
- bump JSON::MaybeXS 1.004008 #152, #153
- bump Mozilla::CA 20240730 #150
- bump IO::Socket::SSL 2.088 #147, 148, #149
0.5.0 2024-06-11T05:13:06Z
"Version::Next" : "0"
}
},
"runtime" : {
"recommends" : {
"AWS::XRay" : "0.09"
},
"requires" : {
"HTTP::Tiny" : "0.076",
"JSON::Types" : "0.05",
"JSON::XS" : "4.0",
"MIME::Base64" : "0",
"Plack" : "1.0047",
"Plack::Middleware::ReverseProxy" : "0.16",
"Try::Tiny" : "0.30",
"URI::Escape" : "0",
"perl" : "5.026000"
}
},
"test" : {
"requires" : {
file: lib/AWS/Lambda/Context.pm
AWS::Lambda::PSGI:
file: lib/AWS/Lambda/PSGI.pm
AWS::Lambda::ResponseWriter:
file: lib/AWS/Lambda/ResponseWriter.pm
recommends:
AWS::XRay: '0.09'
requires:
HTTP::Tiny: '0.076'
JSON::Types: '0.05'
JSON::XS: '4.0'
MIME::Base64: '0'
Plack: '1.0047'
Plack::Middleware::ReverseProxy: '0.16'
Try::Tiny: '0.30'
URI::Escape: '0'
perl: '5.026000'
resources:
bugtracker: https://github.com/shogo82148/p5-aws-lambda/issues
homepage: https://github.com/shogo82148/p5-aws-lambda
repository: https://github.com/shogo82148/p5-aws-lambda.git
docker run --rm -v $(PWD):/var/task shogo82148/p5-aws-lambda:5.38.al2023 \
handler.handle '{"some":"event"}'
## Pre-installed modules
The following modules are pre-installed for convenience.
- [AWS::Lambda](https://metacpan.org/pod/AWS%3A%3ALambda)
- [AWS::XRay](https://metacpan.org/pod/AWS%3A%3AXRay)
- [JSON](https://metacpan.org/pod/JSON)
- [Cpanel::JSON::XS](https://metacpan.org/pod/Cpanel%3A%3AJSON%3A%3AXS)
- [JSON::MaybeXS](https://metacpan.org/pod/JSON%3A%3AMaybeXS)
- [YAML](https://metacpan.org/pod/YAML)
- [YAML::Tiny](https://metacpan.org/pod/YAML%3A%3ATiny)
- [YAML::XS](https://metacpan.org/pod/YAML%3A%3AXS)
- [Net::SSLeay](https://metacpan.org/pod/Net%3A%3ASSLeay)
- [IO::Socket::SSL](https://metacpan.org/pod/IO%3A%3ASocket%3A%3ASSL)
- [Mozilla::CA](https://metacpan.org/pod/Mozilla%3A%3ACA)
- [local::lib](https://metacpan.org/pod/local%3A%3Alib)
[Paws](https://metacpan.org/pod/Paws) is optional. See the "Paws SUPPORT" section.
author/build-perl-al2.sh view on Meta::CPAN
curl -fsSL --compressed https://raw.githubusercontent.com/skaji/cpm/main/cpm | perl -i -pe 's(^#!.*perl$)(#!/opt/bin/perl)' > /tmp/cpm
install /tmp/cpm /opt/bin/cpm
# Net::SSLeay needs special CCFLAGS and LIBS to link
PERL_MM_OPT="INSTALLDIRS=vendor INSTALLMAN1DIR=none INSTALLMAN3DIR=none" /opt/bin/cpanm --notest "Net::SSLeay@$NET_SSLEAY_VERSION"
/opt/bin/cpanm --notest \
"Carton@$CARTON_VERSION" \
"AWS::XRay@$AWS_XRAY_VERSION" \
"JSON@$JSON_VERSION" \
"Cpanel::JSON::XS@$CPANEL_JSON_XS_VERSION" \
"JSON::XS@$JSON_XS_VERSION" \
"JSON::MaybeXS@$JSON_MAYBEXS_VERSION" \
"YAML@$YAML_VERSION" \
"YAML::Tiny@$YAML_TINY_VERSION" \
"YAML::XS@$YAML_XS_VERSION" \
"IO::Socket::SSL@$IO_SOCKET_SSL_VERSION" \
"Mozilla::CA@$MOZILLA_CA_VERSION" \
"local::lib@$LOCAL_LIB_VERSION"
/opt/bin/cpanm --notest .
# replace shebang to the absolute path of perl
author/build-perl-al2023.sh view on Meta::CPAN
curl -fsSL --compressed https://raw.githubusercontent.com/skaji/cpm/main/cpm | perl -i -pe 's(^#!.*perl$)(#!/opt/bin/perl)' > /tmp/cpm
install /tmp/cpm /opt/bin/cpm
# Net::SSLeay needs special CCFLAGS and LIBS to link
PERL_MM_OPT="INSTALLDIRS=vendor INSTALLMAN1DIR=none INSTALLMAN3DIR=none" /opt/bin/cpanm --notest "Net::SSLeay@$NET_SSLEAY_VERSION"
/opt/bin/cpanm --notest \
"Carton@$CARTON_VERSION" \
"AWS::XRay@$AWS_XRAY_VERSION" \
"JSON@$JSON_VERSION" \
"Cpanel::JSON::XS@$CPANEL_JSON_XS_VERSION" \
"JSON::XS@$JSON_XS_VERSION" \
"JSON::MaybeXS@$JSON_MAYBEXS_VERSION" \
"YAML@$YAML_VERSION" \
"YAML::Tiny@$YAML_TINY_VERSION" \
"YAML::XS@$YAML_XS_VERSION" \
"IO::Socket::SSL@$IO_SOCKET_SSL_VERSION" \
"Mozilla::CA@$MOZILLA_CA_VERSION" \
"local::lib@$LOCAL_LIB_VERSION"
/opt/bin/cpanm --notest .
# replace shebang to the absolute path of perl
author/build-perl-runtime-al2.sh view on Meta::CPAN
--rm --platform "$DOCKER_PLATFORM" \
"public.ecr.aws/sam/build-provided.al2:1-$PLATFORM" \
./author/build-perl-al2.sh "$PERL_VERSION"
# sanity check the perl binary works on the emulation images
docker run \
-v "$OPT-$PLATFORM:/opt" \
--rm --platform "$DOCKER_PLATFORM" \
--entrypoint /opt/bin/perl \
"public.ecr.aws/lambda/provided:al2-$PLATFORM" \
-MJSON::XS -MYAML::XS -MNet::SSLeay -MIO::Socket::SSL -MMozilla::CA \
-MAWS::XRay -MAWS::Lambda -MAWS::Lambda::PSGI -e ''
# create zip archive
cd "$OPT-$PLATFORM"
mkdir -p "$DIST"
zip -9 -r "$DIST/perl-$TAG-runtime-al2-$PLATFORM.zip" .
author/build-perl-runtime-al2023.sh view on Meta::CPAN
--rm --platform "$DOCKER_PLATFORM" \
"public.ecr.aws/sam/build-provided.al2023:1-$PLATFORM" \
./author/build-perl-al2023.sh "$PERL_VERSION"
# sanity check the perl binary works on the emulation images
docker run \
-v "$OPT-$PLATFORM:/opt" \
--rm --platform "$DOCKER_PLATFORM" \
--entrypoint /opt/bin/perl \
"public.ecr.aws/lambda/provided:al2023-$PLATFORM" \
-MJSON::XS -MYAML::XS -MNet::SSLeay -MIO::Socket::SSL -MMozilla::CA \
-MAWS::XRay -MAWS::Lambda -MAWS::Lambda::PSGI -e ''
# create zip archive
cd "$OPT-$PLATFORM"
mkdir -p "$DIST"
zip -9 -r "$DIST/perl-$TAG-runtime-al2023-$PLATFORM.zip" .
author/update-aws-lambda-al.pl view on Meta::CPAN
The following modules are pre-installed for convenience.
=over
=item L<AWS::Lambda>
=item L<AWS::XRay>
=item L<JSON>
=item L<Cpanel::JSON::XS>
=item L<JSON::MaybeXS>
=item L<YAML>
=item L<YAML::Tiny>
=item L<YAML::XS>
=item L<Net::SSLeay>
author/update-aws-lambda-al2.pl view on Meta::CPAN
The following modules are pre-installed for convenience.
=over
=item L<AWS::Lambda>
=item L<AWS::XRay>
=item L<JSON>
=item L<Cpanel::JSON::XS>
=item L<JSON::MaybeXS>
=item L<YAML>
=item L<YAML::Tiny>
=item L<YAML::XS>
=item L<Net::SSLeay>
author/update-aws-lambda-al2023.pl view on Meta::CPAN
The following modules are pre-installed for convenience.
=over
=item L<AWS::Lambda>
=item L<AWS::XRay>
=item L<JSON>
=item L<Cpanel::JSON::XS>
=item L<JSON::MaybeXS>
=item L<YAML>
=item L<YAML::Tiny>
=item L<YAML::XS>
=item L<Net::SSLeay>
requires 'perl', '5.026000';
requires 'HTTP::Tiny', '0.076';
requires 'JSON::XS', '4.0';
requires 'Try::Tiny', '0.30';
requires 'Plack', '1.0047';
requires 'Plack::Middleware::ReverseProxy', '0.16';
requires 'JSON::Types', '0.05';
requires 'URI::Escape';
requires 'MIME::Base64';
recommends 'AWS::XRay', '>=0.09';
on 'test' => sub {
lib/AWS/Lambda.pm view on Meta::CPAN
The following modules are pre-installed for convenience.
=over
=item L<AWS::Lambda>
=item L<AWS::XRay>
=item L<JSON>
=item L<Cpanel::JSON::XS>
=item L<JSON::MaybeXS>
=item L<YAML>
=item L<YAML::Tiny>
=item L<YAML::XS>
=item L<Net::SSLeay>
lib/AWS/Lambda/AL.pm view on Meta::CPAN
The following modules are pre-installed for convenience.
=over
=item L<AWS::Lambda>
=item L<AWS::XRay>
=item L<JSON>
=item L<Cpanel::JSON::XS>
=item L<JSON::MaybeXS>
=item L<YAML>
=item L<YAML::Tiny>
=item L<YAML::XS>
=item L<Net::SSLeay>
lib/AWS/Lambda/AL2.pm view on Meta::CPAN
The following modules are pre-installed for convenience.
=over
=item L<AWS::Lambda>
=item L<AWS::XRay>
=item L<JSON>
=item L<Cpanel::JSON::XS>
=item L<JSON::MaybeXS>
=item L<YAML>
=item L<YAML::Tiny>
=item L<YAML::XS>
=item L<Net::SSLeay>
lib/AWS/Lambda/AL2023.pm view on Meta::CPAN
The following modules are pre-installed for convenience.
=over
=item L<AWS::Lambda>
=item L<AWS::XRay>
=item L<JSON>
=item L<Cpanel::JSON::XS>
=item L<JSON::MaybeXS>
=item L<YAML>
=item L<YAML::Tiny>
=item L<YAML::XS>
=item L<Net::SSLeay>
lib/AWS/Lambda/Bootstrap.pm view on Meta::CPAN
package AWS::Lambda::Bootstrap;
use 5.026000;
use utf8;
use strict;
use warnings;
use HTTP::Tiny;
use JSON::XS qw/decode_json encode_json/;
use Try::Tiny;
use AWS::Lambda;
use AWS::Lambda::Context;
use AWS::Lambda::ResponseWriter;
use Scalar::Util qw(blessed);
use Exporter 'import';
our @EXPORT = ('bootstrap');
sub bootstrap {
lib/AWS/Lambda/PSGI.pm view on Meta::CPAN
use URI::Escape;
use Plack::Util;
use bytes ();
use MIME::Base64;
use JSON::Types;
use Encode;
use Try::Tiny;
use Plack::Middleware::ReverseProxy;
use AWS::Lambda;
use Scalar::Util qw(reftype);
use JSON::XS qw(encode_json);
sub new {
my $proto = shift;
my $class = ref $proto || $proto;
my $self;
if (@_ == 1 && ref $_[0] eq 'HASH') {
$self = bless {%{$_[0]}}, $class;
} else {
$self = bless {@_}, $class;
t/11_lambda_response.t view on Meta::CPAN
use Test::More;
use Test::TCP;
use HTTP::Server::PSGI;
use FindBin;
use AWS::Lambda::Bootstrap;
use AWS::Lambda::Context;
use Test::Deep;
use Test::SharedFork;
use Plack::Request;
use JSON::XS qw/decode_json/;
my $app_server = Test::TCP->new(
listen => 1,
code => sub {
my $sock = shift;
my $server = HTTP::Server::PSGI->new(
listen_sock => $sock,
);
$server->run(sub {
my $env = shift;
t/12_lambda_error.t view on Meta::CPAN
use Test::More;
use Test::TCP;
use HTTP::Server::PSGI;
use FindBin;
use AWS::Lambda::Bootstrap;
use AWS::Lambda::Context;
use Test::Deep;
use Test::SharedFork;
use Plack::Request;
use JSON::XS qw/decode_json/;
my $app_server = Test::TCP->new(
listen => 1,
code => sub {
my $sock = shift;
my $server = HTTP::Server::PSGI->new(
listen_sock => $sock,
);
$server->run(sub {
my $env = shift;
t/13_lambda_init_error.t view on Meta::CPAN
use Test::More;
use Test::TCP;
use HTTP::Server::PSGI;
use FindBin;
use AWS::Lambda::Bootstrap;
use AWS::Lambda::Context;
use Test::Deep;
use Test::SharedFork;
use Plack::Request;
use JSON::XS qw/decode_json/;
my $app_server = Test::TCP->new(
listen => 1,
code => sub {
my $sock = shift;
my $server = HTTP::Server::PSGI->new(
listen_sock => $sock,
);
$server->run(sub {
my $env = shift;
t/15_lambda_response_streaming.t view on Meta::CPAN
use Test::More;
use Test::TCP;
use Starman::Server;
use FindBin;
use AWS::Lambda::Bootstrap;
use AWS::Lambda::Context;
use Test::Deep;
use Test::SharedFork;
use Plack::Request;
use JSON::XS qw/decode_json/;
sub slurp {
my $fh = shift;
my $data = "";
while ($fh->read(my $buf, 4096)) {
$data .= $buf;
}
return $data;
}
t/20_psgi.t view on Meta::CPAN
use strict;
use warnings;
use utf8;
use Test::More;
use FindBin;
use JSON::XS qw/decode_json encode_json/;
use File::Slurp qw(slurp);
use Plack::Request;
use Test::Deep qw(cmp_deeply);
use Test::Warn;
use JSON::Types;
use Encode;
use AWS::Lambda::Context;
use AWS::Lambda::PSGI;
t/21_psgi_response_streaming.t view on Meta::CPAN
use strict;
use warnings;
use utf8;
use Test::More;
use FindBin;
use JSON::XS qw/decode_json encode_json/;
use File::Slurp qw(slurp);
use Plack::Request;
use Test::Deep qw(cmp_deeply);
use Test::Warn;
use JSON::Types;
use Encode;
use AWS::Lambda::Context;
use AWS::Lambda::PSGI;
xt/21_mojo.t view on Meta::CPAN
use strict;
use warnings;
use utf8;
use Test::More;
use JSON::XS qw/decode_json/;
use AWS::Lambda::PSGI;
use Mojo::Server::PSGI;
my $get_request_for_get_link = <<EOF;
{
"resource": "/{proxy+}",
"path": "/get-link",
"httpMethod": "GET",
"headers": {
xt/21_mojo_custom_domain.t view on Meta::CPAN
use strict;
use warnings;
use utf8;
use Test::More;
use JSON::XS qw/decode_json/;
use AWS::Lambda::PSGI;
use Mojo::Server::PSGI;
my $get_request_for_get_link = <<EOF;
{
"resource": "/{proxy+}",
"path": "/get-link",
"httpMethod": "GET",
"headers": {
xt/22_dancer.t view on Meta::CPAN
use strict;
use warnings;
use utf8;
use Test::More;
use JSON::XS qw/decode_json/;
use AWS::Lambda::PSGI;
my $get_request_for_get_link = <<EOF;
{
"resource": "/{proxy+}",
"path": "/get-link",
"httpMethod": "GET",
"headers": {
"Host": "xxxxxxxxxx.execute-api.ap-northeast-1.amazonaws.com",