Aktualisieren einer Lambda-Funktionskonfiguration mit CodeBuild Lambda Python - AWS CodeBuild

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Aktualisieren einer Lambda-Funktionskonfiguration mit CodeBuild Lambda Python

Das folgende Python-Beispiel verwendet Boto3 und CodeBuild Lambda Python, um die Konfiguration einer Lambda-Funktion zu aktualisieren. Dieses Beispiel kann erweitert werden, um andere AWS Ressourcen programmgesteuert zu verwalten. Weitere Informationen finden Sie in der Boto3-Dokumentation.

Voraussetzungen

Erstellen oder finden Sie eine Lambda-Funktion in Ihrem Konto.

In diesem Beispiel wird davon ausgegangen, dass Sie bereits eine Lambda-Funktion in Ihrem Konto erstellt haben und verwenden, CodeBuild um die Umgebungsvariablen der Lambda-Funktion zu aktualisieren. Weitere Informationen zum Einrichten einer Lambda-Funktion über CodeBuildfinden Sie im Bereitstellen einer Lambda-Funktion mit AWS SAM mit CodeBuild Lambda Java Beispiel oder unter AWS Lambda.

Einrichten Ihres Quell-Repositorys

Erstellen Sie ein Quell-Repository, um Ihr Boto3-Python-Skript zu speichern.

So richten Sie das Quell-Repository ein
  1. Kopieren Sie das folgende Python-Skript in eine neue Datei namens 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. Laden Sie die Python-Datei in ein unterstütztes Quell-Repository hoch. Eine Liste der unterstützten Quelltypen finden Sie unter ProjectSource.

Erstellen eines CodeBuild Lambda-Python-Projekts

Erstellen Sie ein CodeBuild Lambda-Python-Projekt.

So erstellen Sie Ihr CodeBuild Lambda-Java-Projekt
  1. Öffnen Sie die -AWS CodeBuildKonsole unter https://console.aws.amazon.com/codesuite/codebuild/home.

  2. Wenn eine CodeBuild Informationsseite angezeigt wird, wählen Sie Build-Projekt erstellen aus. Erweitern Sie andernfalls im Navigationsbereich Build, wählen Sie Build-Projekte und dann Build-Projekt erstellen aus.

  3. Geben Sie unter Project name (Projektname) einen Namen für dieses Build-Projekt ein. Build-Projektnamen müssen in allen AWS-Konten eindeutig sein. Sie können auch eine optionale Beschreibung des Build-Projekts einfügen, um anderen Benutzern zu helfen zu verstehen, wofür dieses Projekt verwendet wird.

  4. Wählen Sie unter Quelle das Quell-Repository aus, in dem sich Ihr AWS SAM Projekt befindet.

  5. In Environment (Umgebung):

    • Wählen Sie für Datenverarbeitung die Option Lambda aus.

    • Wählen Sie für Laufzeit(en) Python aus.

    • Wählen Sie für Image aws/codebuild/amazonlinux-x86_64-lambda-standard :python3.12 aus.

    • Lassen Sie für Servicerolle die Option Neue Servicerolle ausgewählt. Notieren Sie sich den Rollennamen . Dies ist erforderlich, wenn Sie die IAM-Berechtigungen des Projekts später in diesem Beispiel aktualisieren.

  6. Wählen Sie Create build project (Build-Projekt erstellen) aus.

  7. Öffnen Sie die IAM-Konsole unter https://console.aws.amazon.com/iam/.

  8. Wählen Sie im Navigationsbereich Rollen und dann die Servicerolle aus, die Ihrem Projekt zugeordnet ist. Sie finden Ihre Projektrolle in , CodeBuild indem Sie Ihr Build-Projekt auswählen, Bearbeiten, Umgebung und dann Servicerolle auswählen.

  9. Wählen Sie die Registerkarte Trust Relationships (Vertrauensstellungen) und dann Edit trust policy (Vertrauensrichtlinie bearbeiten) aus.

  10. Fügen Sie Ihrer IAM-Rolle die folgende Inline-Richtlinie hinzu. Dies wird verwendet, um Ihre AWS SAM Infrastruktur später bereitzustellen. Informationen finden Sie im Abschnitt Hinzufügen und Entfernen von IAM-Identitätsberechtigungen im -IAM-Benutzerhandbuch.

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

Einrichten der Projekt-Build-Spezifikation

Um die Lambda-Funktion zu aktualisieren, liest das Skript Umgebungsvariablen aus der buildspec, um den Namen der Lambda-Funktion, den Namen der Umgebungsvariablen und den Wert der Umgebungsvariablen zu finden.

So richten Sie Ihre Projekt-Build-Spezifikation ein
  1. Wählen Sie in der - CodeBuild Konsole Ihr Build-Projekt und dann Bearbeiten und Buildspec aus.

  2. Wählen Sie unter Buildspec die Option Build-Befehle einfügen und dann Zum Editor wechseln aus.

  3. Löschen Sie die vorausgefüllten Build-Befehle und fügen Sie die folgende Build-Spezifikation ein.

    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. Wählen Sie Update buildspec (Buildspec aktualisieren).

Aktualisieren Ihrer Lambda-Konfiguration

Verwenden Sie CodeBuild Lambda Python, um die Konfiguration Ihrer Lambda-Funktion automatisch zu aktualisieren.

So aktualisieren Sie die Konfiguration Ihrer Lambda-Funktion
  1. Wählen Sie Start build (Build starten).

  2. Sobald der Build abgeschlossen ist, navigieren Sie zu Ihrer Lambda-Funktion.

  3. Wählen Sie Konfiguration und dann Umgebungsvariablen aus. Sie sollten eine neue Umgebungsvariable mit Schlüssel FEATURE_ENABLED und Wert sehentrue.

Bereinigen Ihrer Infrastruktur

Um weitere Gebühren für Ressourcen zu vermeiden, die Sie in diesem Tutorial verwendet haben, löschen Sie die für Ihr CodeBuild Projekt erstellten Ressourcen.

So bereinigen Sie Ihre Infrastruktur
  1. Navigieren Sie zur - CloudWatch Konsole und löschen Sie die CloudWatch Protokollgruppen, die Ihrem CodeBuild Projekt zugeordnet sind.

  2. Navigieren Sie zur - CodeBuild Konsole und löschen Sie Ihr CodeBuild Projekt, indem Sie Build-Projekt löschen auswählen.

  3. Wenn Sie für dieses Beispiel eine Lambda-Funktion erstellt haben, wählen Sie Aktionen und Funktion löschen, um Ihre Lambda-Funktion zu bereinigen.

Erweiterungen

Wenn Sie dieses Beispiel erweitern möchten, um andere AWS Ressourcen mit AWS CodeBuild Lambda Python zu verwalten:

  • Aktualisieren Sie das Python-Skript, um die neuen Ressourcen mit Boto3 zu ändern.

  • Aktualisieren Sie die Ihrem CodeBuild Projekt zugeordnete IAM-Rolle, um über Berechtigungen für die neuen Ressourcen zu verfügen.

  • Fügen Sie Ihrer Build-Spezifikation alle neuen Umgebungsvariablen hinzu, die den neuen Ressourcen zugeordnet sind.