View a markdown version of this page

Aktualisieren Sie eine 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 Sie eine 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 Ressourcen programmgesteuert zu verwalten. AWS Weitere Informationen finden Sie in der Boto3-Dokumentation.

Voraussetzungen

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

In diesem Beispiel wird davon ausgegangen, dass Sie in Ihrem Konto bereits eine Lambda-Funktion erstellt haben und diese CodeBuild zum Aktualisieren der Umgebungsvariablen der Lambda-Funktion verwenden werden. Weitere Informationen zur Einrichtung einer Lambda-Funktion über finden Sie im CodeBuild Stellen Sie eine Lambda-Funktion bereit mit AWS SAM mit CodeBuild Lambda Java Beispiel oder unter. AWS Lambda

Richten Sie Ihr Quell-Repository ein

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

Um das Quell-Repository einzurichten
  1. Kopieren Sie das folgende Python-Skript in eine neue Datei mit dem Namenupdate_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 Sie ein CodeBuild Lambda-Python-Projekt

Erstellen Sie ein CodeBuild Lambda-Python-Projekt.

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

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

  3. Geben Sie unter Project name (Projektname) einen Namen für dieses Build-Projekt ein. Die Namen der Build-Projekte müssen für jedes AWS Konto eindeutig sein. Sie können auch eine optionale Beschreibung des Build-Projekts hinzufügen, damit andere Benutzer 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 Compute Lambda aus.

    • Wählen Sie für Runtime (s) Python aus.

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

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

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

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

  8. Wählen Sie im Navigationsbereich Rollen und dann die Ihrem Projekt zugeordnete Servicerolle aus. 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 später für die Bereitstellung Ihrer AWS SAM Infrastruktur verwendet. Informationen finden Sie im Abschnitt Hinzufügen und Entfernen von IAM-Identitätsberechtigungen im -IAM-Benutzerhandbuch.

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

Richten Sie das Projekt buildspec ein

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 ermitteln.

Um die Buildspec Ihres Projekts einzurichten
  1. Wählen Sie in der CodeBuild Konsole Ihr Build-Projekt aus und wählen Sie dann Bearbeiten und Buildspec.

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

  3. Löschen Sie die vorgefüllten Build-Befehle und fügen Sie die folgende Buildspec 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 Sie Ihre Lambda-Konfiguration

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

Um die Konfiguration Ihrer Lambda-Funktion zu aktualisieren
  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 Sie Ihre Infrastruktur

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

Um Ihre Infrastruktur zu bereinigen
  1. Navigieren Sie zur CloudWatch Konsole und löschen Sie die mit Ihrem CodeBuild Projekt verknüpften CloudWatch Protokollgruppen.

  2. Navigieren Sie zur CodeBuild Konsole und löschen Sie Ihr CodeBuild Projekt, indem Sie Build-Projekt löschen wä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 mithilfe von 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 Buildspec alle neuen Umgebungsvariablen hinzu, die mit den neuen Ressourcen verknüpft sind.