「翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。」
レイヤーでの作業
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 |