Shogo's Blog

Oct 6, 2021 - 1 minute read - aws perl

AWS Lambda Perl Runtime の Arm64 互換レイヤーを公開しました

AWS Lambda の Arm64 対応試してみた の続き。

前回は クロスコンパイルが簡単な Go で試してみました。 でもやっぱり・・・皆さん Perl を動かしたいですよね?

というわけでご用意しました。

ARN 一覧

ランタイム本体

ランタイム本体のビルド済みレイヤーです。使い方は過去記事をどうぞ。

  • AWS LambdaでCGIを蘇らせる

  • arn:aws:lambda:ap-northeast-1:445285296882:layer:perl-5-32-runtime-al2-arm64:1

  • arn:aws:lambda:ap-south-1:445285296882:layer:perl-5-32-runtime-al2-arm64:1

  • arn:aws:lambda:ap-southeast-1:445285296882:layer:perl-5-32-runtime-al2-arm64:1

  • arn:aws:lambda:ap-southeast-2:445285296882:layer:perl-5-32-runtime-al2-arm64:1

  • arn:aws:lambda:eu-central-1:445285296882:layer:perl-5-32-runtime-al2-arm64:1

  • arn:aws:lambda:eu-west-1:445285296882:layer:perl-5-32-runtime-al2-arm64:1

  • arn:aws:lambda:eu-west-2:445285296882:layer:perl-5-32-runtime-al2-arm64:1

  • arn:aws:lambda:us-east-1:445285296882:layer:perl-5-32-runtime-al2-arm64:1

  • arn:aws:lambda:us-east-2:445285296882:layer:perl-5-32-runtime-al2-arm64:1

  • arn:aws:lambda:us-west-2:445285296882:layer:perl-5-32-runtime-al2-arm64:1

Paws

AWS SDK for Perl のビルド済みレイヤーです。ランタイム本体と合わせてご使用ください。

  • AWS SDK for Perl Lambda Layerを公開しました

  • arn:aws:lambda:ap-northeast-1:445285296882:layer:perl-5-34-paws-al2-arm64:1

  • arn:aws:lambda:ap-south-1:445285296882:layer:perl-5-34-paws-al2-arm64:1

  • arn:aws:lambda:ap-southeast-1:445285296882:layer:perl-5-34-paws-al2-arm64:1

  • arn:aws:lambda:ap-southeast-2:445285296882:layer:perl-5-34-paws-al2-arm64:1

  • arn:aws:lambda:eu-central-1:445285296882:layer:perl-5-34-paws-al2-arm64:1

  • arn:aws:lambda:eu-west-1:445285296882:layer:perl-5-34-paws-al2-arm64:1

  • arn:aws:lambda:eu-west-2:445285296882:layer:perl-5-34-paws-al2-arm64:1

  • arn:aws:lambda:us-east-1:445285296882:layer:perl-5-34-paws-al2-arm64:1

  • arn:aws:lambda:us-east-2:445285296882:layer:perl-5-34-paws-al2-arm64:1

  • arn:aws:lambda:us-west-2:445285296882:layer:perl-5-34-paws-al2-arm64:1

x86_64 レイヤー

レイヤーの名前にCPUアーキテクチャーが入るようになったので、 わかりやすいよう x86_64 のレイヤー名も変更しました。 もちろん今までのレイヤー名でも同じものが利用可能です。

ランタイム本体

  • arn:aws:lambda:af-south-1:445285296882:layer:perl-5-34-runtime-al2-x86_64:1
  • arn:aws:lambda:ap-east-1:445285296882:layer:perl-5-34-runtime-al2-x86_64:1
  • arn:aws:lambda:ap-northeast-1:445285296882:layer:perl-5-34-runtime-al2-x86_64:2
  • arn:aws:lambda:ap-northeast-2:445285296882:layer:perl-5-34-runtime-al2-x86_64:1
  • arn:aws:lambda:ap-northeast-3:445285296882:layer:perl-5-34-runtime-al2-x86_64:1
  • arn:aws:lambda:ap-south-1:445285296882:layer:perl-5-34-runtime-al2-x86_64:2
  • arn:aws:lambda:ap-southeast-1:445285296882:layer:perl-5-34-runtime-al2-x86_64:2
  • arn:aws:lambda:ap-southeast-2:445285296882:layer:perl-5-34-runtime-al2-x86_64:2
  • arn:aws:lambda:ca-central-1:445285296882:layer:perl-5-34-runtime-al2-x86_64:1
  • arn:aws:lambda:eu-central-1:445285296882:layer:perl-5-34-runtime-al2-x86_64:2
  • arn:aws:lambda:eu-south-1:445285296882:layer:perl-5-34-runtime-al2-x86_64:1
  • arn:aws:lambda:eu-west-1:445285296882:layer:perl-5-34-runtime-al2-x86_64:2
  • arn:aws:lambda:eu-west-2:445285296882:layer:perl-5-34-runtime-al2-x86_64:2
  • arn:aws:lambda:eu-west-3:445285296882:layer:perl-5-34-runtime-al2-x86_64:1
  • arn:aws:lambda:me-south-1:445285296882:layer:perl-5-34-runtime-al2-x86_64:1
  • arn:aws:lambda:sa-east-1:445285296882:layer:perl-5-34-runtime-al2-x86_64:1
  • arn:aws:lambda:us-east-1:445285296882:layer:perl-5-34-runtime-al2-x86_64:2
  • arn:aws:lambda:us-east-2:445285296882:layer:perl-5-34-runtime-al2-x86_64:2
  • arn:aws:lambda:us-west-1:445285296882:layer:perl-5-34-runtime-al2-x86_64:1
  • arn:aws:lambda:us-west-2:445285296882:layer:perl-5-34-runtime-al2-x86_64:2

ちなみにレイヤーバージョン 1 と 2 が混在しているのは、CloudFormation のテンプレートパラメーターを利用しようとして失敗したためです。

  1. レイヤー管理をしている CloudFormation テンプレートに Architectures: [ x86_64 ] を追加する
  2. Arm64未対応のリージョンでは「Architectures なんて属性知らないよ!」と言われる。もちろん Arm64 対応リージョンでは作成に成功する
  3. 仕方がないので Architectures: [ x86_64 ] を削除して再生成
  4. Arm64 対応済みリージョンでは Architectures の有無が異なるのでバージョン2に上がる。未対応リージョンでは新規作成になるのでバージョン1が作成される

未対応リージョンでは、さすがに Architectures: [ arm64 ] は通らないだろうけど、 Architectures: [ x86_64 ] は通ると思ったんだ・・・。 互換アーキテクチャーが明示されているか否かの違いだけで、中身は同じものです。

Paws

  • arn:aws:lambda:af-south-1:445285296882:layer:perl-5-34-paws-al2-x86_64:1
  • arn:aws:lambda:ap-east-1:445285296882:layer:perl-5-34-paws-al2-x86_64:1
  • arn:aws:lambda:ap-northeast-1:445285296882:layer:perl-5-34-paws-al2-x86_64:2
  • arn:aws:lambda:ap-northeast-2:445285296882:layer:perl-5-34-paws-al2-x86_64:1
  • arn:aws:lambda:ap-northeast-3:445285296882:layer:perl-5-34-paws-al2-x86_64:1
  • arn:aws:lambda:ap-south-1:445285296882:layer:perl-5-34-paws-al2-x86_64:2
  • arn:aws:lambda:ap-southeast-1:445285296882:layer:perl-5-34-paws-al2-x86_64:2
  • arn:aws:lambda:ap-southeast-2:445285296882:layer:perl-5-34-paws-al2-x86_64:2
  • arn:aws:lambda:ca-central-1:445285296882:layer:perl-5-34-paws-al2-x86_64:1
  • arn:aws:lambda:eu-central-1:445285296882:layer:perl-5-34-paws-al2-x86_64:2
  • arn:aws:lambda:eu-south-1:445285296882:layer:perl-5-34-paws-al2-x86_64:1
  • arn:aws:lambda:eu-west-1:445285296882:layer:perl-5-34-paws-al2-x86_64:2
  • arn:aws:lambda:eu-west-2:445285296882:layer:perl-5-34-paws-al2-x86_64:2
  • arn:aws:lambda:eu-west-3:445285296882:layer:perl-5-34-paws-al2-x86_64:1
  • arn:aws:lambda:me-south-1:445285296882:layer:perl-5-34-paws-al2-x86_64:1
  • arn:aws:lambda:sa-east-1:445285296882:layer:perl-5-34-paws-al2-x86_64:1
  • arn:aws:lambda:us-east-1:445285296882:layer:perl-5-34-paws-al2-x86_64:2
  • arn:aws:lambda:us-east-2:445285296882:layer:perl-5-34-paws-al2-x86_64:2
  • arn:aws:lambda:us-west-1:445285296882:layer:perl-5-34-paws-al2-x86_64:1
  • arn:aws:lambda:us-west-2:445285296882:layer:perl-5-34-paws-al2-x86_64:2

参考