Lambda Insights für eine Lambda-Container-Image-Bereitstellung aktivieren - Amazon CloudWatch

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.

Lambda Insights für eine Lambda-Container-Image-Bereitstellung aktivieren

Um Lambda Insights für eine Lambda-Funktion zu aktivieren, die als Container-Image bereitgestellt wird, fügen Sie Zeilen in Ihre Dockerdatei ein. Mit diesen Zeilen wird der Lambda-Insights-Agent als Erweiterung in Ihrem Container-Image installiert. Die hinzuzufügenden Zeilen unterscheiden sich für x86-64-Container und Container. ARM64

Anmerkung

Der Lambda-Insights-Agent wird nur bei Lambda-Laufzeiten unterstützt, die Amazon Linux 2 verwenden.

Bereitstellung eines x86-64-Container-Images

Um Lambda Insights für eine Lambda-Funktion zu aktivieren, die als Container-Image, das auf einem x86-64-Container läuft, bereitgestellt wird, fügen Sie die folgenden Zeilen in Ihre Dockerdatei ein. Mit diesen Zeilen wird der Lambda-Insights-Agent als Erweiterung in Ihrem Container-Image installiert.

RUN curl -O https://lambda-insights-extension.s3-ap-northeast-1.amazonaws.com/amazon_linux/lambda-insights-extension.rpm && \ rpm -U lambda-insights-extension.rpm && \ rm -f lambda-insights-extension.rpm

Nachdem Sie Ihre Lambda-Funktion erstellt haben, weisen Sie die CloudWatchLambdaInsightsExecutionRolePolicyIAMRichtlinie der Ausführungsrolle der Funktion zu, und Lambda Insights wird für die auf Container-Images basierende Lambda-Funktion aktiviert.

Anmerkung

Um eine ältere Version der Lambda Insights-Erweiterung zu verwenden, ersetzen Sie die URL in den vorherigen Befehlen durch dieseURL:https://lambda-insights-extension.s3-ap-northeast-1.amazonaws.com/amazon_linux/lambda-insights-extension.1.0.111.0.rpm. Derzeit sind nur Lambda Insights Versionen 1.0.111.0 und höher verfügbar. Weitere Informationen finden Sie unter Verfügbare Versionen der Lambda-Insights-Erweiterung.

So überprüfen Sie die Signatur des Lambda-Insights-Agent-Pakets auf einem Linux-Server
  1. Geben Sie den folgenden Befehl ein, um den öffentlichen Schlüssel herunterzuladen.

    shell$ wget https://lambda-insights-extension.s3-ap-northeast-1.amazonaws.com/lambda-insights-extension.gpg
  2. Geben Sie den folgenden Befehl ein, um den öffentlichen Schlüssel in Ihren Schlüsselbund zu importieren.

    shell$ gpg --import lambda-insights-extension.gpg

    Die Ausgabe sieht folgendermaßen oder ähnlich aus: Notieren Sie sich den key-Wert, den Sie im nächsten Schritt benötigen. In dieser Beispielausgabe ist der Schlüssel-Wert 848ABDC8.

    gpg: key 848ABDC8: public key "Amazon Lambda Insights Extension" imported gpg: Total number processed: 1 gpg: imported: 1 (RSA: 1)
  3. Überprüfen Sie den Fingerabdruck, indem Sie den folgenden Befehl eingeben. Ersetzen Sie key-value durch den Wert des Schlüssels aus dem vorherigen Schritt.

    shell$ gpg --fingerprint key-value

    Die Fingerabdruck-Zeichenfolge in der Ausgabe dieses Befehls sollte E0AF FA11 FFF3 5BD7 349E E222 479C 97A1 848A BDC8 sein. Wenn die Zeichenfolge nicht übereinstimmt, installieren Sie den Agenten nicht und wenden Sie sich an AWS.

  4. Nachdem Sie den Fingerabdruck verifiziert haben, können Sie ihn verwenden, um das Lambda-Insights-Agenten-Paket zu verifizieren. Laden Sie die Paket-Signaturdatei herunter, indem Sie den folgenden Befehl eingeben.

    shell$ wget https://lambda-insights-extension.s3-ap-northeast-1.amazonaws.com/amazon_linux/lambda-insights-extension.rpm.sig
  5. Überprüfen Sie die Signatur, indem Sie den folgenden Befehl eingeben.

    shell$ gpg --verify lambda-insights-extension.rpm.sig lambda-insights-extension.rpm

    Die Ausgabe sollte wie folgt aussehen:

    gpg: Signature made Thu 08 Apr 2021 06:41:00 PM UTC using RSA key ID 848ABDC8 gpg: Good signature from "Amazon Lambda Insights Extension" gpg: WARNING: This key is not certified with a trusted signature! gpg: There is no indication that the signature belongs to the owner. Primary key fingerprint: E0AF FA11 FFF3 5BD7 349E E222 479C 97A1 848A BDC8

    In der erwarteten Ausgabe wird möglicherweise eine Warnung über eine vertrauenswürdige Signatur angezeigt. Beachten Sie die Warnung zu vertrauenswürdigen Inhalten. Das bedeutet nicht, dass die Signatur ungültig ist, sondern nur, dass Sie den öffentlichen Schlüssel nicht überprüft haben.

    Wenn die Ausgabe BAD signature enthält, überprüfen Sie, ob Sie die Schritte richtig ausgeführt haben. Wenn Sie weiterhin eine BAD signature Antwort erhalten, kontaktieren Sie uns AWS und vermeiden Sie es, die heruntergeladene Datei zu verwenden.

x86-64-Beispiel

Dieser Abschnitt enthält ein Beispiel für die Aktivierung von Lambda Insights für eine auf Container-Images basierende Python-Lambda-Funktion.

Ein Beispiel für die Aktivierung von Lambda Insights für ein Lambda-Container-Image
  1. Erstellen Sie eine Dockerdatei, die der folgenden ähnlich ist:

    FROM public.ecr.aws/lambda/python:3.8 // extra lines to install the agent here RUN curl -O https://lambda-insights-extension.s3-ap-northeast-1.amazonaws.com/amazon_linux/lambda-insights-extension.rpm && \ rpm -U lambda-insights-extension.rpm && \ rm -f lambda-insights-extension.rpm COPY index.py ${LAMBDA_TASK_ROOT} CMD [ "index.handler" ]
  2. Erstellen Sie eine Python-Datei namens index.py, die der folgenden ähnelt:

    def handler(event, context): return { 'message': 'Hello World!' }
  3. Legen Sie Dockerfile und index.py in dasselbe Verzeichnis. Führen Sie dann in diesem Verzeichnis die folgenden Schritte aus, um das Docker-Image zu erstellen und auf Amazon ECR hochzuladen.

    // create an ECR repository aws ecr create-repository --repository-name test-repository // build the docker image docker build -t test-image . // sign in to AWS aws ecr get-login-password | docker login --username AWS --password-stdin "${ACCOUNT_ID}".dkr.ecr."${REGION}".amazonaws.com // tag the image docker tag test-image:latest "${ACCOUNT_ID}".dkr.ecr."${REGION}".amazonaws.com/test-repository:latest // push the image to ECR docker push "${ACCOUNT_ID}".dkr.ecr."${REGION}".amazonaws.com/test-repository:latest
  4. Verwenden Sie das ECR Amazon-Image, das Sie gerade erstellt haben, um die Lambda-Funktion zu erstellen.

  5. Weisen Sie die CloudWatchLambdaInsightsExecutionRolePolicyIAMRichtlinie der Ausführungsrolle der Funktion zu.

ARM64Bereitstellung eines Container-Images

Um Lambda Insights für eine Lambda-Funktion zu aktivieren, die als Container-Image bereitgestellt wird, das auf einem AL2 _aarch64-Container (der ARM64 Architektur verwendet) ausgeführt wird, fügen Sie Ihrem Dockerfile die folgenden Zeilen hinzu. Mit diesen Zeilen wird der Lambda-Insights-Agent als Erweiterung in Ihrem Container-Image installiert.

RUN curl -O https://lambda-insights-extension-arm64.s3-ap-northeast-1.amazonaws.com/amazon_linux/lambda-insights-extension-arm64.rpm && \ rpm -U lambda-insights-extension-arm64.rpm && \ rm -f lambda-insights-extension-arm64.rpm

Nachdem Sie Ihre Lambda-Funktion erstellt haben, weisen Sie die CloudWatchLambdaInsightsExecutionRolePolicyIAMRichtlinie der Ausführungsrolle der Funktion zu, und Lambda Insights wird für die auf Container-Images basierende Lambda-Funktion aktiviert.

Anmerkung

Um eine ältere Version der Lambda Insights-Erweiterung zu verwenden, ersetzen Sie die URL in den vorherigen Befehlen durch dieseURL:https://lambda-insights-extension-arm64.s3-ap-northeast-1.amazonaws.com/amazon_linux/lambda-insights-extension-arm64.1.0.229.0.rpm. Derzeit sind nur Lambda-Insights-Versionen 1.0.229.0 und höher verfügbar. Weitere Informationen finden Sie unter Verfügbare Versionen der Lambda-Insights-Erweiterung.

So überprüfen Sie die Signatur des Lambda-Insights-Agent-Pakets auf einem Linux-Server
  1. Geben Sie den folgenden Befehl ein, um den öffentlichen Schlüssel herunterzuladen.

    shell$ wget https://lambda-insights-extension-arm64.s3-ap-northeast-1.amazonaws.com/lambda-insights-extension.gpg
  2. Geben Sie den folgenden Befehl ein, um den öffentlichen Schlüssel in Ihren Schlüsselbund zu importieren.

    shell$ gpg --import lambda-insights-extension.gpg

    Die Ausgabe sieht folgendermaßen oder ähnlich aus: Notieren Sie sich den key-Wert, den Sie im nächsten Schritt benötigen. In dieser Beispielausgabe ist der Schlüssel-Wert 848ABDC8.

    gpg: key 848ABDC8: public key "Amazon Lambda Insights Extension" imported gpg: Total number processed: 1 gpg: imported: 1 (RSA: 1)
  3. Überprüfen Sie den Fingerabdruck, indem Sie den folgenden Befehl eingeben. Ersetzen Sie key-value durch den Wert des Schlüssels aus dem vorherigen Schritt.

    shell$ gpg --fingerprint key-value

    Die Fingerabdruck-Zeichenfolge in der Ausgabe dieses Befehls sollte E0AF FA11 FFF3 5BD7 349E E222 479C 97A1 848A BDC8 sein. Wenn die Zeichenfolge nicht übereinstimmt, installieren Sie den Agenten nicht und wenden Sie sich an AWS.

  4. Nachdem Sie den Fingerabdruck verifiziert haben, können Sie ihn verwenden, um das Lambda-Insights-Agenten-Paket zu verifizieren. Laden Sie die Paket-Signaturdatei herunter, indem Sie den folgenden Befehl eingeben.

    shell$ wget https://lambda-insights-extension-arm64.s3-ap-northeast-1.amazonaws.com/amazon_linux/lambda-insights-extension-arm64.rpm.sig
  5. Überprüfen Sie die Signatur, indem Sie den folgenden Befehl eingeben.

    shell$ gpg --verify lambda-insights-extension-arm64.rpm.sig lambda-insights-extension-arm64.rpm

    Die Ausgabe sollte wie folgt aussehen:

    gpg: Signature made Thu 08 Apr 2021 06:41:00 PM UTC using RSA key ID 848ABDC8 gpg: Good signature from "Amazon Lambda Insights Extension" gpg: WARNING: This key is not certified with a trusted signature! gpg: There is no indication that the signature belongs to the owner. Primary key fingerprint: E0AF FA11 FFF3 5BD7 349E E222 479C 97A1 848A BDC8

    In der erwarteten Ausgabe wird möglicherweise eine Warnung über eine vertrauenswürdige Signatur angezeigt. Beachten Sie die Warnung zu vertrauenswürdigen Inhalten. Das bedeutet nicht, dass die Signatur ungültig ist, sondern nur, dass Sie den öffentlichen Schlüssel nicht überprüft haben.

    Wenn die Ausgabe BAD signature enthält, überprüfen Sie, ob Sie die Schritte richtig ausgeführt haben. Wenn Sie weiterhin eine BAD signature Antwort erhalten, kontaktieren Sie uns AWS und vermeiden Sie es, die heruntergeladene Datei zu verwenden.

ARM64Beispiel

Dieser Abschnitt enthält ein Beispiel für die Aktivierung von Lambda Insights für eine auf Container-Images basierende Python-Lambda-Funktion.

Ein Beispiel für die Aktivierung von Lambda Insights für ein Lambda-Container-Image
  1. Erstellen Sie eine Dockerdatei, die der folgenden ähnlich ist:

    FROM public.ecr.aws/lambda/python:3.8 // extra lines to install the agent here RUN curl -O https://lambda-insights-extension-arm64.s3-ap-northeast-1.amazonaws.com/amazon_linux/lambda-insights-extension-arm64.rpm && \ rpm -U lambda-insights-extension-arm64.rpm && \ rm -f lambda-insights-extension-arm64.rpm COPY index.py ${LAMBDA_TASK_ROOT} CMD [ "index.handler" ]
  2. Erstellen Sie eine Python-Datei namens index.py, die der folgenden ähnelt:

    def handler(event, context): return { 'message': 'Hello World!' }
  3. Legen Sie Dockerfile und index.py in dasselbe Verzeichnis. Führen Sie dann in diesem Verzeichnis die folgenden Schritte aus, um das Docker-Image zu erstellen und auf Amazon ECR hochzuladen.

    // create an ECR repository aws ecr create-repository --repository-name test-repository // build the docker image docker build -t test-image . // sign in to AWS aws ecr get-login-password | docker login --username AWS --password-stdin "${ACCOUNT_ID}".dkr.ecr."${REGION}".amazonaws.com // tag the image docker tag test-image:latest "${ACCOUNT_ID}".dkr.ecr."${REGION}".amazonaws.com/test-repository:latest // push the image to ECR docker push "${ACCOUNT_ID}".dkr.ecr."${REGION}".amazonaws.com/test-repository:latest
  4. Verwenden Sie das ECR Amazon-Image, das Sie gerade erstellt haben, um die Lambda-Funktion zu erstellen.

  5. Weisen Sie die CloudWatchLambdaInsightsExecutionRolePolicyIAMRichtlinie der Ausführungsrolle der Funktion zu.