Habilite Lambda Insights en una implementación de imágenes de contenedor de Lambda
Para habilitar Lambda Insights en una función de Lambda que se implementa como una imagen de contenedor, agregue líneas en el Dockerfile. Estas líneas instalan el agente Lambda Insights como una extensión en la imagen de contenedor. Las líneas que se van a añadir son diferentes para los contenedores x86-64 y los contenedores ARM64.
nota
El agente Lambda Insights solo se admite en los tiempos de ejecución de Lambda que utilizan Amazon Linux 2.
Temas
Implementación de imágenes de contenedores x86-64
Para habilitar Lambda Insights en una función de Lambda que se implementa como una imagen de contenedor que se ejecuta en un contenedor x86-64, agregue las siguientes líneas en el Dockerfile. Estas líneas instalan el agente Lambda Insights como una extensión en la imagen de contenedor.
RUN curl -O https://lambda-insights-extension.s3-ap-northeast-1.amazonaws.com/amazon_linux/lambda-insights-extension.rpm && \ rpm -U lambda-insights-extension.rpm && \ rm -f lambda-insights-extension.rpm
Después de crear la función de Lambda, asigne la política de IAM CloudWatchLambdaInsightsExecutionRolePolicy al rol de ejecución de la función; Lambda Insights se habilita en la función de Lambda basada en imágenes de contenedor.
nota
Para utilizar una versión anterior de la extensión de Lambda Insights, reemplace la URL de los comandos anteriores por esta URL: https://lambda-insights-extension.s3-ap-northeast-1.amazonaws.com/amazon_linux/lambda-insights-extension.1.0.111.0.rpm
. Actualmente, solo están disponibles la versión 1.0.111.0 y las versiones posteriores de Lambda Insights. Para obtener más información, consulte Versiones disponibles de la extensión de Lambda Insights.
Para verificar la firma del paquete de agente de Lambda Insights en un servidor Linux
Ingrese el siguiente comando para descargar la clave pública.
shell$
wget https://lambda-insights-extension.s3-ap-northeast-1.amazonaws.com/lambda-insights-extension.gpgIngrese el siguiente comando para importar la clave pública en el archivo de claves.
shell$
gpg --import lambda-insights-extension.gpgEl resultado será similar al siguiente. Tome nota del valor de
key
, ya que lo necesitará en el siguiente paso. En este resultado de ejemplo, el valor de clave es848ABDC8
.gpg: key 848ABDC8: public key "Amazon Lambda Insights Extension" imported gpg: Total number processed: 1 gpg: imported: 1 (RSA: 1)
Compruebe la huella digital mediante el siguiente comando. Reemplace
key-value
con el valor de clave del paso anterior.shell$
gpg --fingerprint key-valueLa cadena de huellas digitales en el resultado de este comando debe ser
E0AF FA11 FFF3 5BD7 349E E222 479C 97A1 848A BDC8
. Si la cadena de huellas digitales no concuerda, no instale el agente y contáctese con AWS.Después de haber verificado la huella digital, puede utilizarla para verificar la firma del paquete del agente de Lambda Insights. Ingrese el siguiente comando para descargar el paquete de archivo SIGNATURE.
shell$
wget https://lambda-insights-extension.s3-ap-northeast-1.amazonaws.com/amazon_linux/lambda-insights-extension.rpm.sigPara verificar la firma, ejecute el siguiente comando:
shell$
gpg --verify lambda-insights-extension.rpm.sig lambda-insights-extension.rpmEl resultado debe tener el siguiente aspecto:
gpg: Signature made Thu 08 Apr 2021 06:41:00 PM UTC using RSA key ID 848ABDC8 gpg: Good signature from "Amazon Lambda Insights Extension" gpg: WARNING: This key is not certified with a trusted signature! gpg: There is no indication that the signature belongs to the owner. Primary key fingerprint: E0AF FA11 FFF3 5BD7 349E E222 479C 97A1 848A BDC8
En el resultado esperado, puede haber una advertencia sobre una firma de confianza. Una clave solo es de confianza si la ha firmado usted o alguien en quien confíe. Esto no significa que la firma no sea válida, solo que no ha verificado la clave pública.
Si el resultado contiene
BAD signature
, verifique si ha realizado los pasos correctamente. Si sigue recibiendo una respuestaBAD signature
, contáctese con AWS y evite usar el archivo descargado.
Ejemplo de x86-64
Esta sección incluye un ejemplo de habilitación de Lambda Insights en una función Python de Lambda basada en imágenes de contenedor.
Un ejemplo de habilitación de Lambda Insights en una imagen de contenedor de Lambda
Cree un archivo Dockerfile similar al que se muestra a continuación:
FROM public.ecr.aws/lambda/python:3.8 // extra lines to install the agent here RUN curl -O https://lambda-insights-extension.s3-ap-northeast-1.amazonaws.com/amazon_linux/lambda-insights-extension.rpm && \ rpm -U lambda-insights-extension.rpm && \ rm -f lambda-insights-extension.rpm COPY index.py ${LAMBDA_TASK_ROOT} CMD [ "index.handler" ]
Cree un archivo Python denominado
index.py
que es similar al que se muestra a continuación:def handler(event, context): return { 'message': 'Hello World!' }
Coloque el archivo Dockerfile y
index.py
en el mismo directorio. A continuación, en ese directorio, ejecute los siguientes pasos para crear la imagen de Docker y cargarla en Amazon ECR.// create an ECR repository aws ecr create-repository --repository-name test-repository // build the docker image docker build -t test-image . // sign in to AWS aws ecr get-login-password | docker login --username AWS --password-stdin "${
ACCOUNT_ID
}".dkr.ecr."${REGION
}".amazonaws.com // tag the image docker tag test-image:latest "${ACCOUNT_ID
}".dkr.ecr."${REGION
}".amazonaws.com/test-repository:latest // push the image to ECR docker push "${ACCOUNT_ID
}".dkr.ecr."${REGION
}".amazonaws.com/test-repository:latestUtilice la imagen de Amazon ECR que acaba de crear para crear la función de Lambda.
Asigne la política de IAM CloudWatchLambdaInsightsExecutionRolePolicy para el rol de ejecución de la función.
Implementación de imágenes de contenedores ARM64
Para habilitar Lambda Insights en una función de Lambda que se implementa como una imagen de contenedor que se ejecuta en un contenedor AL2_aarch64 (que utiliza arquitectura ARM64), añada las siguientes líneas en el Dockerfile. Estas líneas instalan el agente Lambda Insights como una extensión en la imagen de contenedor.
RUN curl -O https://lambda-insights-extension-arm64.s3-ap-northeast-1.amazonaws.com/amazon_linux/lambda-insights-extension-arm64.rpm && \ rpm -U lambda-insights-extension-arm64.rpm && \ rm -f lambda-insights-extension-arm64.rpm
Después de crear la función de Lambda, asigne la política de IAM CloudWatchLambdaInsightsExecutionRolePolicy al rol de ejecución de la función; Lambda Insights se habilita en la función de Lambda basada en imágenes de contenedor.
nota
Para utilizar una versión anterior de la extensión de Lambda Insights, reemplace la URL de los comandos anteriores por esta URL: https://lambda-insights-extension-arm64.s3-ap-northeast-1.amazonaws.com/amazon_linux/lambda-insights-extension-arm64.1.0.229.0.rpm
. Actualmente, solo están disponibles la versión 1.0.229.0 y las versiones posteriores de Lambda Insights. Para obtener más información, consulte Versiones disponibles de la extensión de Lambda Insights.
Para verificar la firma del paquete de agente de Lambda Insights en un servidor Linux
Ingrese el siguiente comando para descargar la clave pública.
shell$
wget https://lambda-insights-extension-arm64.s3-ap-northeast-1.amazonaws.com/lambda-insights-extension.gpgIngrese el siguiente comando para importar la clave pública en el archivo de claves.
shell$
gpg --import lambda-insights-extension.gpgEl resultado será similar al siguiente. Tome nota del valor de
key
, ya que lo necesitará en el siguiente paso. En este resultado de ejemplo, el valor de clave es848ABDC8
.gpg: key 848ABDC8: public key "Amazon Lambda Insights Extension" imported gpg: Total number processed: 1 gpg: imported: 1 (RSA: 1)
Compruebe la huella digital mediante el siguiente comando. Reemplace
key-value
con el valor de clave del paso anterior.shell$
gpg --fingerprint key-valueLa cadena de huellas digitales en el resultado de este comando debe ser
E0AF FA11 FFF3 5BD7 349E E222 479C 97A1 848A BDC8
. Si la cadena de huellas digitales no concuerda, no instale el agente y contáctese con AWS.Después de haber verificado la huella digital, puede utilizarla para verificar la firma del paquete del agente de Lambda Insights. Ingrese el siguiente comando para descargar el paquete de archivo SIGNATURE.
shell$
wget https://lambda-insights-extension-arm64.s3-ap-northeast-1.amazonaws.com/amazon_linux/lambda-insights-extension-arm64.rpm.sigPara verificar la firma, ejecute el siguiente comando:
shell$
gpg --verify lambda-insights-extension-arm64.rpm.sig lambda-insights-extension-arm64.rpmEl resultado debe tener el siguiente aspecto:
gpg: Signature made Thu 08 Apr 2021 06:41:00 PM UTC using RSA key ID 848ABDC8 gpg: Good signature from "Amazon Lambda Insights Extension" gpg: WARNING: This key is not certified with a trusted signature! gpg: There is no indication that the signature belongs to the owner. Primary key fingerprint: E0AF FA11 FFF3 5BD7 349E E222 479C 97A1 848A BDC8
En el resultado esperado, puede haber una advertencia sobre una firma de confianza. Una clave solo es de confianza si la ha firmado usted o alguien en quien confíe. Esto no significa que la firma no sea válida, solo que no ha verificado la clave pública.
Si el resultado contiene
BAD signature
, verifique si ha realizado los pasos correctamente. Si sigue recibiendo una respuestaBAD signature
, contáctese con AWS y evite usar el archivo descargado.
Ejemplo de ARM64
Esta sección incluye un ejemplo de habilitación de Lambda Insights en una función Python de Lambda basada en imágenes de contenedor.
Un ejemplo de habilitación de Lambda Insights en una imagen de contenedor de Lambda
Cree un archivo Dockerfile similar al que se muestra a continuación:
FROM public.ecr.aws/lambda/python:3.8 // extra lines to install the agent here RUN curl -O https://lambda-insights-extension-arm64.s3-ap-northeast-1.amazonaws.com/amazon_linux/lambda-insights-extension-arm64.rpm && \ rpm -U lambda-insights-extension-arm64.rpm && \ rm -f lambda-insights-extension-arm64.rpm COPY index.py ${LAMBDA_TASK_ROOT} CMD [ "index.handler" ]
Cree un archivo Python denominado
index.py
que es similar al que se muestra a continuación:def handler(event, context): return { 'message': 'Hello World!' }
Coloque el archivo Dockerfile y
index.py
en el mismo directorio. A continuación, en ese directorio, ejecute los siguientes pasos para crear la imagen de Docker y cargarla en Amazon ECR.// create an ECR repository aws ecr create-repository --repository-name test-repository // build the docker image docker build -t test-image . // sign in to AWS aws ecr get-login-password | docker login --username AWS --password-stdin "${ACCOUNT_ID}".dkr.ecr."${REGION}".amazonaws.com // tag the image docker tag test-image:latest "${ACCOUNT_ID}".dkr.ecr."${REGION}".amazonaws.com/test-repository:latest // push the image to ECR docker push "${ACCOUNT_ID}".dkr.ecr."${REGION}".amazonaws.com/test-repository:latest
Utilice la imagen de Amazon ECR que acaba de crear para crear la función de Lambda.
Asigne la política de IAM CloudWatchLambdaInsightsExecutionRolePolicy para el rol de ejecución de la función.