Shogo's Blog

May 22, 2021 - 2 minute read - perl aws github

Perl 5.34 がリリースされました

Perl 5.34 がリリースされましたね。 と、言うわけで、 AWS::Lambdaactions-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-version5.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.xx の部分)や、コンパイルオプションを考慮しないと、XS を含んだモジュールを使う際にエラーになってしまいます。 この罠に自分でハマったので付けました。 上記の例のように指定すれば、 cpanfile を読んで依存モジュールをインストールし、キャッシュするところまでやってくれます。

そういえば、Perl 7 はどうなった?

昨年 6 月、次のバージョンは Perl 7 になると発表がありました。

しかし、今回リリースされたのは Perl 5.34 です。

どうも Perl 7 の方向性についてコミュニティ内で激しい争いが発生したため、一旦見送りとなったようです。

Perl 7 の具体的な方向性やリリースの日付などは決まって無いとのこと。 政治って難しいね・・・。

参考