

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

# Lambda レイヤーの共有
<a name="sharing-lambda-layers"></a>

Lambda レイヤーに機能を実装している場合は、レイヤーのグローバルインスタンスをホストしなくても、レイヤーを共有できます。この方法でレイヤーを共有すると、他のユーザーは各自のアカウントにレイヤーのインスタンスをデプロイできます。クライアントアプリケーションは、レイヤーのグローバルインスタンスに依存する必要がなくなります。 AWS Serverless Application Repository を使用すると、この方法で Lambda レイヤーを簡単に共有できます。

Lambda レイヤーの詳細については、*AWS Lambda デベロッパーガイド*の[AWS Lambda レイヤー](https://docs.aws.amazon.com/lambda/latest/dg/configuration-layers.html)を参照してください。

## 仕組み
<a name="sharing-lambda-layers-how-it-works"></a>

 AWS Serverless Application Repositoryを使用してレイヤーを共有する手順は次のとおりです。これにより、レイヤーのコピーをユーザーの AWS アカウントで作成できます。

1. レイヤーをリソースとして含む AWS SAM テンプレート、つまり [https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-resource-layerversion.html](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-resource-layerversion.html)または [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-layerversion.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-layerversion.html)リソースを使用してサーバーレスアプリケーションを定義します。

1. アプリケーションを に公開し AWS Serverless Application Repository、 (パブリックまたはプライベートに) 共有します。

1. 顧客はアプリケーションをデプロイし、自分の AWS アカウントに Layer のコピーを作成します。顧客は、クライアントアプリケーションの AWS アカウントで Layer の Amazon リソースネーム (ARN) を参照できるようになりました。

## 例
<a name="sharing-layers-example"></a>

以下は、共有する Lambda レイヤーを含むアプリケーションの AWS SAM テンプレートの例です。

```
Resources:
  SharedLayer:
    Type: AWS::Serverless::LayerVersion
    Properties:
      LayerName: shared-layer
      ContentUri: source/layer-code/
      CompatibleRuntimes:
        - python3.7
Outputs:
  LayerArn:
    Value: !Ref SharedLayer
```

顧客が からアプリケーションをデプロイすると AWS Serverless Application Repository、 AWS アカウントにレイヤーが作成されます。レイヤーの ARN は次のようになります。

`arn:aws:lambda:us-east-1:012345678901:layer:shared-layer:1`

これで、ユーザーは、次の例に示すように、この ARN を各自のクライアントアプリケーションで参照できます。

```
Resources:
  MyFunction:
    Type: AWS::Serverless::Function
    Properties:
      Handler: index.handler
      Runtime: python3.7
      CodeUrl: source/app-code/
      Layers:
        - arn:aws:lambda:us-east-1:012345678901:layer:shared-layer:1
```