View a markdown version of this page

Actualizar la configuración de una función de 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 de Lambda con CodeBuild Lambda Python

El siguiente ejemplo de Python usa Boto3 y CodeBuild Lambda Python para actualizar la configuración de una función de Lambda. Este ejemplo se puede ampliar para administrar 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 de Lambda en su cuenta.

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

Configuración del repositorio de origen

Cree un repositorio de origen para almacenar su script de Boto3 para Python.

Para configurar el repositorio de origen
  1. Copie el siguiente script de Python en un archivo nuevo denominado update_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 de python a un repositorio de origen compatible. Para obtener una lista de los tipos de fuentes compatibles, consulte ProjectSource.

Cree un proyecto de CodeBuild Lambda Python

Cree un proyecto de CodeBuild Lambda Python.

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

  2. Si aparece una página de CodeBuild información, seleccione Crear proyecto de construcció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 construcción deben ser únicos en cada AWS cuenta. 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 Source, selecciona el repositorio de origen en el que se encuentra tu AWS SAM proyecto.

  5. En Environment (Entorno):

    • En Computación, seleccione Lambda.

    • En Tiempo(s) de ejecución, elija Python.

    • Para Imagen, selecciona aws/codebuild /amazonlinux-x86_64-lambda-standard:python3.12.

    • En Rol de servicio, seleccione Nuevo rol de servicio. Anote el Nombre del rol. Lo necesitará 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 Roles y seleccione el rol de servicio asociado a su proyecto. Para encontrar tu rol en CodeBuild el proyecto, selecciona el proyecto de compilación, elige Editar, Entorno y, a continuación, el rol de servicio.

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

  10. Agregue la siguiente política insertada al rol de IAM. Esto se usará para implementar tu AWS SAM infraestructura más adelante. Para obtener más información, consulta Adición y eliminación de permisos de identidad de IAM en la Guía del usuario de IAM.

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

Configuración de la especificación de compilación del proyecto

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

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

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

  3. Elimine los comandos de compilación rellenados previamente 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).

Actualización de la configuración de Lambda

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

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

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

  3. Seleccione Configuración y, a continuación, elija las variables de Entorno. Debería aparecer una nueva variable de entorno con la clave FEATURE_ENABLED y el valor true.

Limpieza de la infraestructura

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

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

  2. Navega hasta la CodeBuild consola y elimina tu CodeBuild proyecto seleccionando Eliminar proyecto de compilación.

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

Extensiones

Si quieres ampliar este ejemplo para administrar otros AWS recursos con AWS CodeBuild Lambda Python:

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

  • Actualice la función de IAM asociada a su CodeBuild proyecto para tener permisos para los nuevos recursos.

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