Uso compartido de capas Lambda - AWS Serverless Application Repository

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Uso compartido de capas Lambda

Si ha implementado una funcionalidad en una capa Lambda, es posible que desee compartir la capa sin alojar una instancia global de la misma. Compartir capas de esta manera permite a loa demás implementar una instancia de la capa en sus propias cuentas. Esto evita que las aplicaciones cliente dependan de una instancia global de la capa. AWS Serverless Application Repository Esto le permite compartir capas Lambda de esta manera fácilmente.

Para obtener más información sobre las capas Lambda, consulte AWS Lambda Capas en la Guía del AWS Lambda desarrollador.

Cómo funciona

A continuación se indican los pasos para compartir la capa mediante AWS Serverless Application Repository. Esto permite crear una copia de la capa en la AWS cuenta del usuario.

  1. Defina una aplicación sin servidor con una AWS SAM plantilla que incluya su capa como recurso, es decir, un recurso AWS::Serverless::LayerVersiono un AWS::Lambda::LayerVersionrecurso.

  2. Publique su aplicación en AWS Serverless Application Repository y compártala (de forma pública o privada).

  3. Un cliente despliega su aplicación, que crea una copia de su capa en su propia AWS cuenta. El cliente ahora puede hacer referencia al nombre de recurso de Amazon (ARN) de la capa de su AWS cuenta en su aplicación cliente.

Ejemplo

La siguiente es una AWS SAM plantilla de ejemplo para una aplicación que contiene la capa Lambda que desea compartir:

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

Cuando un cliente implementa su aplicación desde AWS Serverless Application Repository, se crea una capa en su AWS cuenta. El ARN de la capa tiene un aspecto similar al siguiente:

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

Ahora el cliente ahora puede hacer referencia a este ARN en su propia aplicación cliente, como en este ejemplo:

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