Cómo compartir capas de 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.

Cómo compartir capas de Lambda

Si ha implementado funcionalidad en una capa de Lambda, es posible que desee compartir la capa sin alojar una instancia global de esta. 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. LaAWS Serverless Application Repositorypermite compartir capas Lambda de esta manera fácilmente.

Para obtener más información acerca de las capas de Lambda, consulteAWS LambdaCapas deen laAWS LambdaGuía para desarrolladores.

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 enAWSaccount.

  1. Defina una aplicación sin servidor conAWS SAMplantilla que incluye la capa como recurso; es decir, ya sea unAWS::Serverless::LayerVersiono unAWS::Lambda::LayerVersionrecurso.

  2. Publique su aplicación en AWS Serverless Application Repository y compártela (ya sea pública o privadamente).

  3. Un cliente implementa la aplicación, lo que crea una copia de la capa en sí mismaAWSaccount. El cliente ahora puede hacer referencia al nombre de recurso de Amazon (ARN) de la capa enAWScuenta en su aplicación cliente.

Ejemplo

A continuación se muestra un ejemploAWS SAMplantilla de una aplicación que contiene la capa de 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 la aplicación desdeAWS Serverless Application Repository, se crea una capa en suAWSaccount. 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