Actualizar la configuración de una función Lambda con CodeBuild Lambda Python - AWS CodeBuild

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.

Actualizar la configuración de una función Lambda con CodeBuild Lambda Python

En el siguiente ejemplo de Python, se utilizan Boto3 y Lambda CodeBuild Python para actualizar la configuración de una función Lambda. Este ejemplo se puede ampliar para gestionar otros recursos mediante programación. AWS Para obtener más información, consulte la documentación de Boto3.

Requisitos previos

Cree o busque una función Lambda en su cuenta.

En este ejemplo se supone que ya ha creado una función Lambda en su cuenta y que la utilizará CodeBuild para actualizar las variables de entorno de la función Lambda. Para obtener más información sobre cómo configurar una función Lambda mediante CodeBuild, consulte el Implemente una función Lambda con AWS SAM CodeBuild Lambda Java ejemplo o visite. AWS Lambda

Configura tu repositorio de código fuente

Crea un repositorio de código fuente para almacenar tu script de Python de Boto3.

Para configurar el repositorio de código fuente
  1. Copie el siguiente script de Python en un nuevo archivo llamadoupdate_lambda_environment_variables.py.

    import boto3 from os import environ def update_lambda_env_variable(lambda_client): lambda_function_name = environ['LAMBDA_FUNC_NAME'] lambda_env_variable = environ['LAMBDA_ENV_VARIABLE'] lambda_env_variable_value = environ['LAMBDA_ENV_VARIABLE_VALUE'] print("Updating lambda function " + lambda_function_name + " environment variable " + lambda_env_variable + " to " + lambda_env_variable_value) lambda_client.update_function_configuration( FunctionName=lambda_function_name, Environment={ 'Variables': { lambda_env_variable: lambda_env_variable_value } }, ) if __name__ == "__main__": region = environ['AWS_REGION'] client = boto3.client('lambda', region) update_lambda_env_variable(client)
  2. Cargue el archivo python en un repositorio de código fuente compatible. Para obtener una lista de los tipos de fuentes compatibles, consulte ProjectSource.

Crear un proyecto de CodeBuild Python Lambda

Cree un proyecto de CodeBuild Python Lambda.

Para crear su proyecto CodeBuild Lambda Java
  1. Abra la consola de AWS CodeBuild en https://console.aws.amazon.com/codesuite/codebuild/home.

  2. Si aparece una página de CodeBuild información, elija Crear proyecto de compilación. De lo contrario, en el panel de navegación, expanda Compilar, elija Proyectos de compilación y, a continuación, elija Crear proyecto de compilación.

  3. En Project name (Nombre de proyecto), escriba un nombre para este proyecto de compilación. Los nombres de los proyectos de compilación debe ser únicos en cada cuenta de AWS. También puede introducir una descripción opcional del proyecto de compilación para ayudar a otros usuarios a entender para qué se utiliza el proyecto.

  4. En Fuente, seleccione el repositorio de origen en el que se encuentra el AWS SAM proyecto.

  5. En Environment (Entorno):

    • Para Compute, selecciona Lambda.

    • Para Runtime (s), selecciona Python.

    • En Imagen, seleccione aws/codebuild/amazonlinux-x86_64-lambda-standard:python3.12.

    • En Función de servicio, deje seleccionada Nueva función de servicio. Anote el nombre del rol. Esto será necesario cuando actualice los permisos de IAM del proyecto más adelante en este ejemplo.

  6. Elija Crear el proyecto de compilación.

  7. Abra la consola de IAM en https://console.aws.amazon.com/iam/.

  8. En el panel de navegación, elija Funciones y seleccione la función de servicio asociada a su proyecto. Para encontrar su función en el proyecto, seleccione CodeBuild el proyecto de construcción, elija Edición, Entorno y, a continuación, la función de servicio.

  9. Elija la pestaña Relaciones de confianza y, a continuación, Editar política de confianza.

  10. Añada la siguiente política en línea a su función de IAM. Esto se utilizará para implementar su AWS SAM infraestructura más adelante. Para más información, consulte Adición y eliminación de permisos de identidad de IAM en la Guía del usuario de IAM de .

    { "Version": "2012-10-17", "Statement": [ { "Sid": "UpdateLambdaPermissions", "Effect": "Allow", "Action": [ "lambda:UpdateFunctionConfiguration" ], "Resource": [ "*" ] } ] }

Configure el proyecto: buildspec

Para actualizar la función Lambda, el script lee las variables de entorno de la especificación de compilación para buscar el nombre de la función Lambda, el nombre de la variable de entorno y el valor de la variable de entorno.

Para configurar su proyecto, buildspec
  1. En la CodeBuild consola, selecciona tu proyecto de compilación y, a continuación, selecciona Editar y Buildspec.

  2. En Buildspec, selecciona Insertar comandos de compilación y, a continuación, Cambiar al editor.

  3. Elimine los comandos de compilación preconfigurados y pegue la siguiente especificación de compilación.

    version: 0.2 env: variables: LAMBDA_FUNC_NAME: "<lambda-function-name>" LAMBDA_ENV_VARIABLE: "FEATURE_ENABLED" LAMBDA_ENV_VARIABLE_VALUE: "true" phases: install: commands: - pip3 install boto3 build: commands: - python3 update_lambda_environment_variables.py
  4. Seleccione Update buildspec (Actualizar buildspec).

Actualice la configuración de Lambda

Utilice CodeBuild Lambda Python para actualizar automáticamente la configuración de la función Lambda.

Para actualizar la configuración de la función Lambda
  1. Seleccione Iniciar la compilación.

  2. Una vez finalizada la compilación, navegue hasta la función Lambda.

  3. Seleccione Configuración y, a continuación, Variables de entorno. Debería ver una nueva variable de entorno con la clave FEATURE_ENABLED y el valortrue.

Limpie su infraestructura

Para evitar cargos adicionales por los recursos que utilizó durante este tutorial, elimine los recursos creados para su CodeBuild proyecto.

Para limpiar su infraestructura
  1. Ve a la CloudWatch consola y elimina los grupos de CloudWatch registros asociados a tu CodeBuild proyecto.

  2. Ve a la CodeBuild consola y elimina tu CodeBuild proyecto seleccionando Eliminar proyecto de compilación.

  3. Si ha creado una función Lambda para los fines de este ejemplo, elija Acciones y Eliminar función para limpiar la función Lambda.

Extensiones

Si desea ampliar este ejemplo para gestionar otros AWS recursos mediante AWS CodeBuild Lambda Python:

  • Actualice el script de Python para modificar los nuevos recursos con Boto3.

  • Actualice el rol de IAM asociado a su CodeBuild proyecto para tener permisos para los nuevos recursos.

  • Agrega cualquier variable de entorno nueva asociada a los nuevos recursos a tu especificación de compilación.