AWS-Lambda
view release on metacpan or search on metacpan
author/build-perl-al2023.sh view on Meta::CPAN
JSON_MAYBEXS_VERSION=1.004008
YAML_VERSION=1.31
YAML_TINY_VERSION=1.76
YAML_XS_VERSION=v0.910.0
IO_SOCKET_SSL_VERSION=2.099
MOZILLA_CA_VERSION=20250602
LOCAL_LIB_VERSION=2.000029
# build-provided.al2023 lacks some development packages
dnf install -y perl glibc-langpack-en openssl openssl-devel
JOBS=$(nproc)
curl -sL https://raw.githubusercontent.com/tokuhirom/Perl-Build/master/perl-build > /tmp/perl-build
perl /tmp/perl-build "$PERL_VERSION" /opt --jobs="$JOBS" --noman -Dvendorprefix=/opt
# workaround for "xlocale.h: No such file or directory"
ln -s /usr/include/locale.h /usr/include/xlocale.h
# some libraries are missing in the image for running.
cp -R /lib64/libcrypt[.-]* /opt/lib/
author/publish-perl-runtime-archives.pl view on Meta::CPAN
my $code = system(@cmd);
die "exit: $code" if $! != 0;
}
}
sub publish {
my ($suffix, $arch, $arch_suffix) = @_;
$arch_suffix //= "-$arch";
for my $zip(glob "$FindBin::Bin/../.perl-layer/dist/perl-*-$suffix-$arch.zip") {
chomp(my $sha256 = `openssl dgst -sha256 -r "$zip" | cut -d" " -f1`);
my $name = basename($zip, '.zip');
next unless $name =~ /^perl-([0-9]+)-([0-9]+)-/;
my $perl_version = "$1.$2";
head_or_put("$name/$sha256.zip", $zip);
my $metadata = encode_json({
url => "https://shogo82148-lambda-perl-runtime-us-east-1.s3.amazonaws.com/$name/$sha256.zip",
});
run_command("echo '$metadata' | aws --region 'us-east-1' s3 cp --content-type application/json - s3://shogo82148-lambda-perl-runtime-us-east-1/$name.json");
}
author/publish-perl-runtimes.pl view on Meta::CPAN
my $pm = Parallel::ForkManager->new(10);
my $regions = do {
open my $fh, '<', "$FindBin::Bin/regions-$arch.txt" or die "$!";
my @regions = sort { $a cmp $b } map { chomp; $_; } <$fh>;
close($fh);
\@regions;
};
for my $zip(glob "$FindBin::Bin/../.perl-layer/dist/perl-*-$suffix-$arch.zip") {
chomp(my $md5 = `openssl dgst -md5 -binary "$zip" | openssl enc -base64`);
my $name = basename($zip, '.zip');
next unless $name =~ /^perl-([0-9]+)-([0-9]+)-/;
my $perl_version = "$1.$2";
my $stack = $perl_version =~ s/[.]/-/r;
for my $region(@$regions) {
$pm->start("$region/$perl_version") and next;
say STDERR "$region/$perl_version: START";
my $object = head_or_put($region, "perl-$stack-$suffix$arch_suffix.zip", $zip, $md5);
my $version = $object->{VersionId} // 'UNKNOWN';
my $stack_name = "lambda-$stack-$suffix$arch_suffix" =~ s/_/-/r;
( run in 0.773 second using v1.01-cache-2.11-cpan-acf6aa7dc9e )