レイヤーでの作業 - AWS Serverless Application Model

「翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。」

レイヤーでの作業

AWS SAM CLI は、レイヤーを含むアプリケーションをサポートします。レイヤーの詳細については、以下を参照してください。 AWS Lambda 層.

以下に、レイヤーを含む Lambda 関数がある AWS SAM テンプレートの例を示します。

ServerlessFunction: Type: AWS::Serverless::Function Properties: CodeUri: . Handler: my_handler Runtime: Python3.7 Layers: - <LayerVersion ARN>

アプリケーションにレイヤーを含める方法の詳細については、以下を参照してください。 AWS::Serverless::Function.

sam local CLI サブコマンドのいずれかを使用して関数を呼び出すと、関数のレイヤーパッケージがダウンロードされ、ローカルホストにキャッシュされます。デフォルトのキャッシュディレクトリの場所については、次の表を参照してください。パッケージがキャッシュされた後、AWS SAM CLI はレイヤーを関数を呼び出すために使用される Docker イメージにオーバーレイします。[ AWS SAM CLIは、作成するイメージの名前と、 LayerVersions これはキャッシュに保持されます。スキーマの詳細については、次のセクションを参照してください。

オーバーレイされたレイヤーを検査するには、次のコマンドを実行して、検査するイメージで bash セッションを開始します。

docker run -it --entrypoint=/bin/bash samcli/lambda:<Tag following the schema outlined in Docker Image Tag Schema> -i

レイヤーキャッシュディレクトリ名のスキーマ

与えられた LayerVersionArn これはテンプレートで定義され、 AWS SAM CLIは LayerName およびARNからのバージョン。レイヤーの内容を名前付きの LayerName-Version-<first 10 characters of sha256 of ARN> に配置するディレクトリが作成されます。

例:

ARN = arn:aws:lambda:us-west-2:111111111111:layer:myLayer:1 Directory name = myLayer-1-926eeb5ff1

Docker イメージのタグスキーマ

一意のレイヤーのハッシュを計算するには、すべての一意のレイヤー名を「-」の区切り記号と組み合わせ、SHA256ハッシュを取得してから、最初の10文字を取得します。

例:

ServerlessFunction: Type: AWS::Serverless::Function Properties: CodeUri: . Handler: my_handler Runtime: Python3.7 Layers: - arn:aws:lambda:us-west-2:111111111111:layer:myLayer:1 - arn:aws:lambda:us-west-2:111111111111:layer:mySecondLayer:1

一意の名前は、レイヤーキャッシュディレクトリ名のスキーマと同じ方法で計算されます。

arn:aws:lambda:us-west-2:111111111111:layer:myLayer:1 = myLayer-1-926eeb5ff1 arn:aws:lambda:us-west-2:111111111111:layer:mySecondLayer:1 = mySecondLayer-1-6bc1022bdf

一意のレイヤーのハッシュを計算するには、すべての一意のレイヤー名を「-」の区切り記号で結合し、sha256 ハッシュをとり、最初の 25 文字を取ります。

myLayer-1-926eeb5ff1-mySecondLayer-1-6bc1022bdf = 2dd7ac5ffb30d515926aef

次に、この値を関数のランタイムを区切り記号を「-」で結合します。

python3.7-2dd7ac5ffb30d515926aefffd

デフォルトのキャッシュディレクトリの場所

OS Location
Windows 7 C:\Users\<user>\AppData\Roaming\AWS SAM
Windows 8 C:\Users\<user>\AppData\Roaming\AWS SAM
Windows 10 C:\Users\<user>\AppData\Roaming\AWS SAM
macOS ~/.aws-sam/layers-pkg
Unix ~/.aws-sam/layers-pkg