Aggiornare la configurazione di una funzione Lambda con CodeBuild Lambda Python - AWS CodeBuild

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Aggiornare la configurazione di una funzione Lambda con CodeBuild Lambda Python

Il seguente esempio di Python utilizza Boto3 e Lambda Python per aggiornare la configurazione di una funzione CodeBuild Lambda. Questo esempio può essere esteso per gestire altre risorse a livello di codice. AWS Per ulteriori informazioni, consultate la documentazione di Boto3.

Prerequisiti

Crea o trova una funzione Lambda nel tuo account.

Questo esempio presuppone che tu abbia già creato una funzione Lambda nel tuo account e che la CodeBuild utilizzerai per aggiornare le variabili di ambiente della funzione Lambda. Per ulteriori informazioni sulla configurazione di una funzione Lambda CodeBuild, guarda l'Implementa una funzione Lambda utilizzando AWS SAM con Lambda Java CodeBuild esempio o visita. AWS Lambda

Configura il tuo repository dei sorgenti

Crea un repository di sorgenti per archiviare lo script python Boto3.

Per configurare il repository dei sorgenti
  1. Copia il seguente script python in un nuovo file chiamato. 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. Carica il file python in un repository di sorgenti supportato. Per un elenco dei tipi di sorgenti supportati, consulta. ProjectSource

Crea un progetto CodeBuild Lambda Python

Crea un progetto CodeBuild Lambda Python.

Per creare il tuo progetto CodeBuild Lambda Java
  1. Apri la AWS CodeBuild console all'indirizzo https://console.aws.amazon.com/codesuite/codebuild/home.

  2. Se viene visualizzata una pagina di CodeBuild informazioni, scegli Crea progetto di compilazione. Altrimenti, nel riquadro di navigazione, espandi Crea, scegli Crea progetti, quindi scegli Crea progetto di compilazione.

  3. In Project name (Nome progetto) immettere un nome per questo progetto di compilazione. I nomi dei progetti di compilazione devono essere univoci per ogni account AWS. Puoi anche includere una descrizione opzionale del progetto di compilazione per aiutare gli altri utenti a capire a cosa serve questo progetto.

  4. In Source, seleziona il repository di origine in cui si trova il AWS SAM progetto.

  5. In Environment (Ambiente):

    • Per Compute, seleziona Lambda.

    • Per Runtime (s), selezionate Python.

    • Per Image, seleziona aws/codebuild/amazonlinux-x86_64-lambda-standard:python3.12.

    • Per Ruolo di servizio, lascia selezionato Nuovo ruolo di servizio. Prendi nota del nome del ruolo. Ciò sarà necessario quando aggiornerai le autorizzazioni IAM del progetto più avanti in questo esempio.

  6. Scegliere Create build project (Crea progetto di compilazione).

  7. Aprire la console IAM all'indirizzo https://console.aws.amazon.com/iam/.

  8. Nel riquadro di navigazione, scegli Ruoli e seleziona il ruolo di servizio associato al tuo progetto. Puoi trovare il tuo ruolo nel progetto CodeBuild selezionando il progetto di compilazione, scegliendo Modifica, Ambiente e quindi Ruolo di servizio.

  9. Scegli la scheda Relazioni di attendibilità e quindi Modifica policy di attendibilità.

  10. Aggiungi la seguente policy in linea al tuo ruolo IAM. Questo verrà utilizzato per implementare la tua AWS SAM infrastruttura in un secondo momento. Per ulteriori informazioni, consulta Aggiunta e rimozione di autorizzazioni per identità IAM nella Guida per l'utente di IAM .

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

Configura il progetto buildspec

Per aggiornare la funzione Lambda, lo script legge le variabili di ambiente da buildspec per trovare il nome della funzione Lambda, il nome della variabile di ambiente e il valore della variabile di ambiente.

Per configurare il tuo progetto buildspec
  1. Nella CodeBuild console, seleziona il tuo progetto di build, quindi scegli Modifica e Buildspec.

  2. In Buildspec, scegli Inserisci comandi di compilazione e poi Passa all'editor.

  3. Elimina i comandi di compilazione precompilati e incollali nella seguente buildspec.

    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. Selezionare Update buildspec (Aggiorna buildspec).

Aggiorna la tua configurazione Lambda

Usa CodeBuild Lambda Python per aggiornare automaticamente la configurazione della tua funzione Lambda.

Per aggiornare la configurazione della funzione Lambda
  1. Selezionare Start build (Avvia compilazione).

  2. Una volta terminata la compilazione, accedi alla tua funzione Lambda.

  3. Seleziona Configurazione e poi Variabili di ambiente. Dovresti vedere una nuova variabile di ambiente con chiave FEATURE_ENABLED e valoretrue.

Pulisci la tua infrastruttura

Per evitare ulteriori addebiti per le risorse utilizzate durante questo tutorial, elimina le risorse create per il CodeBuild progetto.

Per ripulire la tua infrastruttura
  1. Accedi alla CloudWatch console ed elimina i gruppi di CloudWatch log associati al tuo CodeBuild progetto.

  2. Vai alla CodeBuild console ed elimina il tuo CodeBuild progetto scegliendo Elimina progetto di compilazione.

  3. Se hai creato una funzione Lambda ai fini di questo esempio, scegli la funzione Azioni ed Elimina per ripulire la funzione Lambda.

Estensioni

Se vuoi estendere questo esempio per gestire altre AWS risorse usando AWS CodeBuild Lambda Python:

  • Aggiorna lo script Python per modificare le nuove risorse usando Boto3.

  • Aggiorna il ruolo IAM associato al tuo CodeBuild progetto per disporre delle autorizzazioni per le nuove risorse.

  • Aggiungi eventuali nuove variabili di ambiente associate alle nuove risorse al tuo buildspec.