0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

オープンソースの Lambda Layer をエクスポートして自アカウントに複製する

Last updated at Posted at 2024-12-03

はじめに

普段、東京リージョン(ap-northeast-1)で運用している Lambda 関数があり、その中でオープンソースの Lambda Layer を利用しています。

あるプロジェクトで大阪リージョン(ap-northeast-3)にも同じ Lambda が必要となり構築する際、大阪リージョンでは一部の Lambda Layer がサポートされていないケースがありました。そのため、やむを得ず東京リージョンから該当の Layer をエクスポートし、自アカウントの大阪リージョンに新たに作成して対応しました。

この対応について備忘録として記事にまとめておきます。

手順

必ず事前にライセンスと利用規約などを読み、複製することが問題無いことを確認して下さい。

1. 対象 Layer & バージョンの URL を取得

まず、以下の AWS CLI コマンドで対象 Layer のソースとなる S3 バケットの署名付き URL を取得しました。
AWS CLI - get-layer-version-by-arn

aws lambda get-layer-version-by-arn \
 --arn arn:aws:lambda:ap-northeast-1:123456789012:layer:[LayerName]:[Version]

Content.Location の値が URL になります。

2. Layer の実体をローカルへダウンロード

1 で取得した URL から実体一式を curl でダウンロードしました。

curl -o test-lambda-layer.zip "https://awslambda-ap-ne-1-layers.s3.ap-northeast-1.amazonaws.com/snapshots/123456789012/[LayerName]-999abc...(省略)"

3. S3 にアップロード

ダウンロードしたファイルは、そのままではサイズが大きく(50MB超過) Layer に登録出来なかったので一旦任意の S3 バケットへアップロードしました

4. Lambda Layer を作成

AWS マネジメントコンソールで上記 S3 ファイルの URL を指定して Layer を作成しました。

1.png

出来ました!
これで Lambda 内で同じように使用出来ます。
2.png

Ref

おわりに

思ったよりも簡単に Layer を複製出来ました。
使用する Layer のバージョンを更新する際には、同様な手順が必要になるなど課題はありますが、ひとまず複製がしたい場合にはこの手順が使えそうです。

0
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?