Perl 5.34 がリリースされましたね。 と、言うわけで、 AWS::Lambda と actions-setup-perl に Perl 5.34 を追加しました。
AWS::Lambda
AWS Lambda Layers の ARN 一覧はこちら。 具体的な使い方は過去の記事を参考にどうぞ。 もちろん大阪リージョンも入ってますよ!
- Amazon Linux 2 ベース Perl ランタイム
arn:aws:lambda:af-south-1:445285296882:layer:perl-5-34-runtime-al2:1
arn:aws:lambda:ap-east-1:445285296882:layer:perl-5-34-runtime-al2:1
arn:aws:lambda:ap-northeast-1:445285296882:layer:perl-5-34-runtime-al2:1
arn:aws:lambda:ap-northeast-2:445285296882:layer:perl-5-34-runtime-al2:1
arn:aws:lambda:ap-northeast-3:445285296882:layer:perl-5-34-runtime-al2:1
arn:aws:lambda:ap-south-1:445285296882:layer:perl-5-34-runtime-al2:1
arn:aws:lambda:ap-southeast-1:445285296882:layer:perl-5-34-runtime-al2:1
arn:aws:lambda:ap-southeast-2:445285296882:layer:perl-5-34-runtime-al2:1
arn:aws:lambda:ca-central-1:445285296882:layer:perl-5-34-runtime-al2:1
arn:aws:lambda:eu-central-1:445285296882:layer:perl-5-34-runtime-al2:1
arn:aws:lambda:eu-south-1:445285296882:layer:perl-5-34-runtime-al2:1
arn:aws:lambda:eu-west-1:445285296882:layer:perl-5-34-runtime-al2:1
arn:aws:lambda:eu-west-2:445285296882:layer:perl-5-34-runtime-al2:1
arn:aws:lambda:eu-west-3:445285296882:layer:perl-5-34-runtime-al2:1
arn:aws:lambda:me-south-1:445285296882:layer:perl-5-34-runtime-al2:1
arn:aws:lambda:sa-east-1:445285296882:layer:perl-5-34-runtime-al2:1
arn:aws:lambda:us-east-1:445285296882:layer:perl-5-34-runtime-al2:1
arn:aws:lambda:us-east-2:445285296882:layer:perl-5-34-runtime-al2:1
arn:aws:lambda:us-west-1:445285296882:layer:perl-5-34-runtime-al2:1
arn:aws:lambda:us-west-2:445285296882:layer:perl-5-34-runtime-al2:1
- Paws レイヤー
arn:aws:lambda:af-south-1:445285296882:layer:perl-5-34-paws-al2:1
arn:aws:lambda:ap-east-1:445285296882:layer:perl-5-34-paws-al2:1
arn:aws:lambda:ap-northeast-1:445285296882:layer:perl-5-34-paws-al2:1
arn:aws:lambda:ap-northeast-2:445285296882:layer:perl-5-34-paws-al2:1
arn:aws:lambda:ap-northeast-3:445285296882:layer:perl-5-34-paws-al2:1
arn:aws:lambda:ap-south-1:445285296882:layer:perl-5-34-paws-al2:1
arn:aws:lambda:ap-southeast-1:445285296882:layer:perl-5-34-paws-al2:1
arn:aws:lambda:ap-southeast-2:445285296882:layer:perl-5-34-paws-al2:1
arn:aws:lambda:ca-central-1:445285296882:layer:perl-5-34-paws-al2:1
arn:aws:lambda:eu-central-1:445285296882:layer:perl-5-34-paws-al2:1
arn:aws:lambda:eu-south-1:445285296882:layer:perl-5-34-paws-al2:1
arn:aws:lambda:eu-west-1:445285296882:layer:perl-5-34-paws-al2:1
arn:aws:lambda:eu-west-2:445285296882:layer:perl-5-34-paws-al2:1
arn:aws:lambda:eu-west-3:445285296882:layer:perl-5-34-paws-al2:1
arn:aws:lambda:me-south-1:445285296882:layer:perl-5-34-paws-al2:1
arn:aws:lambda:sa-east-1:445285296882:layer:perl-5-34-paws-al2:1
arn:aws:lambda:us-east-1:445285296882:layer:perl-5-34-paws-al2:1
arn:aws:lambda:us-east-2:445285296882:layer:perl-5-34-paws-al2:1
arn:aws:lambda:us-west-1:445285296882:layer:perl-5-34-paws-al2:1
arn:aws:lambda:us-west-2:445285296882:layer:perl-5-34-paws-al2:1
合わせて Docker Image も公開済みです。
具体的な使い方はこちらも過去記事を参考にどうぞ。
FROM shogo82148/p5-aws-lambda:base-5.34.al2
# or if you want to use ECR Public.
# FROM public.ecr.aws/shogo82148/p5-aws-lambda:base-5.34.al2
COPY handler.pl /var/task/
CMD [ "handler.handle" ]
Setup Perl environment
perl-version
に 5.34
を指定すれば使えます。
steps:
- uses: actions/checkout@v2
- uses: shogo82148/actions-setup-perl@v1
with:
perl-version: "5.34"
install-modules-with: cpanm
install-modules-args: --with-develop --with-configure
- run: prove -lv t
ブログでの紹介はまだでしたが、 CPAN モジュールのインストール機能も付けました。
利用者に cpanm --installdeps .
叩いてもらえばいいのでは?とも思っていたんですが、インストール自体はいいとしてキャッシュが意外と面倒なんですよね。
Perl のサブバージョン(5.34.x
の x
の部分)や、コンパイルオプションを考慮しないと、XS を含んだモジュールを使う際にエラーになってしまいます。
この罠に自分でハマったので付けました。
上記の例のように指定すれば、 cpanfile
を読んで依存モジュールをインストールし、キャッシュするところまでやってくれます。
そういえば、Perl 7 はどうなった?
昨年 6 月、次のバージョンは Perl 7 になると発表がありました。
しかし、今回リリースされたのは Perl 5.34 です。
どうも Perl 7 の方向性についてコミュニティ内で激しい争いが発生したため、一旦見送りとなったようです。
Perl 7 の具体的な方向性やリリースの日付などは決まって無いとのこと。 政治って難しいね・・・。
参考
- Perl 5.34
- What’s Perl 7?
- これから Perl7 はどうなっていくのか?
- Perl 7 より先に Perl 5.34 が出るぞという話
- Announcing Perl 7
- 「Perl 7」が発表 ~来年にも四半世紀ぶりのメジャーバージョンアップへ
- shogo82148/p5-aws-lambda - DockerHub
- p5-aws-lambda - Amazon ECR Public Gallery
- shogo82148/p5-aws-lambda - GitHub
- shogo82148/actions-setup-perl - GitHub
- AWS Lambda で CGI を蘇らせる
- AWS Lambda Perl Runtime Layer in 大阪リージョン を公開しました
- Perl Runtime for AWS Lambda の Docker コンテナ対応を公開しました