En el siguiente ejemplo de Python se utilizan Boto3
Requisitos previos
Cree o busque una función de Lambda en su cuenta.
En este ejemplo se supone que ya ha creado una función de Lambda en su cuenta y que va a usar 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 mediante CodeBuild, consulte el ejemplo Implementación de una función de Lambda mediante AWS SAM con CodeBuild Lambda Java o visite 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
-
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)
-
Cargue el archivo de python a un repositorio de origen compatible. Para obtener una lista de los tipos de origen admitidos, consulte ProjectSource.
Creación de un proyecto de CodeBuild Lambda Python
Cree un proyecto de CodeBuild Lambda Python.
Para crear su proyecto de CodeBuild Lambda Java
-
Abra la consola de AWS CodeBuild en https://console.aws.amazon.com/codesuite/codebuild/home
. -
Si se muestra una página de información de CodeBuild, 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.
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.
-
En Origen, seleccione el repositorio de origen en el que se encuentra su proyecto de AWS SAM.
-
En Environment (Entorno):
-
En Computación, seleccione Lambda.
-
En Tiempo(s) de ejecución, elija Python.
-
En Imagen, seleccione aws/codebuild/amazonlinux-x86_64-lambda-standard:python3.12.
-
En Rol de servicio, seleccione Nuevo rol de servicio. Anote el Nombre del rol. Esto será necesario cuando actualice los permisos de IAM del proyecto más adelante en este ejemplo.
-
-
Elija Crear el proyecto de compilación.
-
Abra la consola de IAM en https://console.aws.amazon.com/iam/
. -
En el panel de navegación, elija Roles y seleccione el rol de servicio asociado a su proyecto. Para encontrar su rol de proyecto en CodeBuild, seleccione su proyecto de compilación, elija Editar, Entorno y, después, Rol de servicio.
-
Elija la pestaña Relaciones de confianza y, a continuación, Editar política de confianza.
-
Agregue la siguiente política insertada al rol de IAM. Este se usará para implementar su infraestructura de AWS SAM 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.
{ "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 de Lambda, el script lee las variables de entorno de la especificación de compilación y busca el nombre de la función de 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
-
En la consola de CodeBuild, seleccione su proyecto de compilación y, a continuación, elija Editar y Especificación de compilación.
-
En Especificación de compilación, elija Insertar comandos de compilación y, a continuación, Cambiar al editor.
-
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 -
Seleccione Update buildspec (Actualizar buildspec).
Actualización de la configuración de Lambda
Utilice CodeBuild Lambda Python para actualizar la configuración de la función de Lambda de forma automática.
Para actualizar la configuración de la función de Lambda
-
Seleccione Iniciar la compilación.
-
Una vez finalizada la compilación, navegue hasta su función de Lambda.
-
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 valortrue
.
Limpieza de la infraestructura
Para evitar cargos adicionales por los recursos que ha utilizado durante este tutorial, elimine los recursos creados para el proyecto de CodeBuild.
Para limpiar la infraestructura
-
Desplácese a la consola de CloudWatch y elimine los grupos de registro de CloudWatch asociados a su proyecto de CodeBuild.
-
Desplácese a la consola de CodeBuild y elija Eliminar el proyecto de compilación para eliminar su proyecto de CodeBuild.
-
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 quiere ampliar este ejemplo para administrar otros recursos de AWS 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 proyecto de CodeBuild de forma que tenga permisos para los nuevos recursos.
-
Agregue cualquier variable de entorno nueva asociada a los nuevos recursos a su especificación de compilación.