Creación de funciones de Lambda con Go
Go se implementa de manera distinta a otros tiempos de ejecución administrados. Como Go se compila de forma nativa en un archivo binario ejecutable, no requiere un tiempo de ejecución de lenguaje dedicado. Utilice un tiempo de ejecución exclusivo para el sistema operativo (la familia de tiempos de ejecución provided
) para implementar las funciones de Go en Lambda.
Temas
- Compatibilidad del tiempo de ejecución de Go
- Herramientas y bibliotecas
- Definición de controladores de funciones de Lambda en Go
- Uso del objeto de contexto Lambda para recuperar la información de la función Go
- Implementar funciones de Lambda en Go con archivos .zip
- Implemente funciones Go Lambda con imágenes de contenedor
- Uso de capas para funciones de Lambda en Go
- Registro y supervisión de las funciones de Lambda en Go
- Instrumentación del código Go en AWS Lambda
Compatibilidad del tiempo de ejecución de Go
El tiempo de ejecución administrado de Go 1.x para Lambda ha quedado obsoleto. Si tiene funciones que usan el tiempo de ejecución de Go 1.x, debe migrar sus funciones a provided.al2023
o provided.al2
. Los tiempos de ejecución provided.al2023
y provided.al2
ofrecen varias ventajas sobre go1.x
, incluida la compatibilidad con la arquitectura arm64 (procesadores Graviton2 de AWS), binarios más pequeños y tiempos de invocación ligeramente más rápidos.
No se requieren cambios de código para esta migración. Los únicos cambios necesarios se refieren a la forma en que se compila el paquete de implementación y al tiempo de ejecución que se utiliza para crear la función. Para obtener más información, consulte Migración de las funciones de AWS Lambda del tiempo de ejecución de Go1.x al tiempo de ejecución personalizado en Amazon Linux 2
Nombre | Identificador | Sistema operativo | Fecha de baja | Bloqueo de la función Crear | Bloqueo de la función Actualizar |
---|---|---|---|---|---|
Tiempo de ejecución exclusivo del sistema operativo |
|
Amazon Linux 2023 |
No programado |
No programado |
No programado |
Tiempo de ejecución exclusivo del sistema operativo |
|
Amazon Linux 2 |
No programado |
No programado |
No programado |
Herramientas y bibliotecas
Lambda proporciona las siguientes herramientas y bibliotecas para el tiempo de ejecución Go:
-
AWS SDK para Go
: el SDK oficial de AWS para el lenguaje de programación Go. -
github.com/aws/aws-lambda-go/lambda
: la implementación del modelo de programación de Lambda para Go. AWS Lambda utiliza este paquete para invocar su controlador. -
github.com/aws/aws-lambda-go/lambdacontext
: elementos auxiliares para obtener acceso a la información de contexto del objeto de contexto. -
github.com/aws/aws-lambda-go/events
: esta biblioteca proporciona definiciones de tipos para las integraciones de orígenes de eventos comunes. -
github.com/aws/aws-lambda-go/cmd/build-lambda-zip
: Esta herramienta se puede utilizar para crear un archivo.zip en Windows.
Para obtener más información, consulte aws-lambda-go
Lambda proporciona las siguientes aplicaciones de ejemplo para el tiempo de ejecución Go:
Aplicaciones de ejemplo de Lambda en Go
-
go-al2
: una función de “Hola, mundo” que devuelve la dirección IP pública. Esta aplicación utiliza el tiempo de ejecución personalizado provided.al2
. -
blank-go
: una función Go que muestra el uso de las bibliotecas de Go de Lambda, el registro, las variables de entorno y el AWS SDK. Esta aplicación utiliza el tiempo de ejecución go1.x
.