So erstellen und teilen Sie Lambda -Schichten

So erstellen und teilen Sie Lambda -Schichten
Lambda Layer ist eine intelligente Möglichkeit, die Abhängigkeiten und Bibliotheken zu verpacken, die die serverlose Bereitstellung vereinfachen. Layer ist tatsächlich eine Zip -Datei, die alle Abhängigkeiten enthält. Es schrumpft die Größe des Bereitstellungspakets und macht Ihre Bereitstellung robuster. Manchmal ist es erforderlich, die Funktion Multiple Lambda für Ihre Anwendung zu verwenden, und jede Lambda -Funktion erfordert beispielsweise einige gleiche Bibliotheken Anfragen Bibliothek. In diesem Fall müssen Sie die Ebene erstellen, die die Anforderungsbibliothek hat und die Ebene mit Ihren Lambda -Funktionen angeschlossen wird. In diesem Blog werden wir untersuchen, wie Sie die Lambda -Ebene erstellen und wie Sie sie in Ihrer Lambda -Funktion verwenden können.

Erstellen von Lambda -Schicht

AWS bietet die folgenden vier Möglichkeiten, um die Schichten in Lambda zu erstellen:

  • AWS -Konsole
  • Wolkenformation
  • Lambda -API
  • SAM (Serverless Anwendungsmodell)

In diesem Blog werden wir die AWS -Konsole verwenden, um die Lambda -Ebene zu erstellen, die die enthält Anfragen Modul. Um die Ebene zu erstellen, erstellen Sie zuerst ein leeres Verzeichnis, um den Code für die Ebene hinzuzufügen.

Ubuntu@Ubuntu: ~ $ mkdir Demo_Requests

Gehen Sie zum neu erstellten Verzeichnis und installieren Sie die Anfragen Modul.

Ubuntu@Ubuntu: ~ $ CD Demo_Requests
Ubuntu@ubuntu: ~ $ pip3 Installieren Sie Anfragen -t -t .

Dieser Befehl installiert die Anfragen Bibliothek in diesem Ordner. Um dies zu verwenden Anfragen Modul als Ebene, zip diesen Ordner zuerst mit dem folgenden Befehl anziehen:

Ubuntu@Ubuntu: ~ $ Zip -r Demo_Requests.Zip Demo_Requests

Gehen Sie nach dem Erstellen einer ZIP -Datei des Moduls zu Ihrer Lambda -Konsole und klicken Sie auf die Lagen Registerkarte aus der linken Seite.

Es öffnet die Lambda -Schichtenkonsole. Sie können Ihre Ebene hinzufügen, indem Sie auf die klicken Schicht erstellen Taste.

Eine neue Seite scheint die Details der Lambda -Ebene einzugeben. Geben Sie den Namen und die Beschreibung der Ebene an. Für diese Demo verwenden wir die Demo_Layer als Name der Schicht.

Jetzt gibt es zwei Optionen, um den Code für die Ebene bereitzustellen. Einer besteht darin, eine ZIP -Datei zu hochladen, und der andere besteht darin, den Code aus der S3 -Konsole hochzuladen. Für diese Demo laden wir die ZIP -Datei hoch, die die enthält Anfragen Modul.

Für Kompatible Architektur Optionen, lassen Sie es leer und überprüfen Sie kein Kontrollkästchen für diese Option. Wie unser Ebenencode a enthält Anfragen Modul, das ein Python -Modul ist, die Laufzeit für diese Ebene ist Python. Klicken Sie nach Eingabe der erforderlichen Ebenenkonfiguration auf die erstellen Schaltfläche zum Erstellen der Ebene.

Verwenden Sie Lambda -Schicht in Ihrer Lambda -Funktion

Im vorherigen Abschnitt haben wir eine Lambda -Schicht erstellt, die a enthält Anfragen Modul. In diesem Abschnitt fügen wir diese Lambda -Schicht in unsere Lambda -Funktion hinzu. Klicken Sie auf die Lambda -Funktion und scrollen Lagen Abschnitt.

Klicken Sie auf die Anzeiged eine Schicht Schaltfläche zum Hinzufügen einer neuen Ebene zu Ihrer Lambda -Funktion. Es wird eine neue Seite geöffnet, auf der Lambda -Schichtdetails gefragt werden. Es gibt drei Arten von Lambda -Schichtquellen:

  • AWS -Schichten
  • Benutzerdefinierte Ebenen
  • Geben Sie eine ARN an

Um der Lambda -Funktion, die wir in unserem Konto erstellt haben. Wählen Sie nach Auswahl der Ebenequelle aus der Liste eine Ebene aus, die Sie im vorherigen Abschnitt erstellt haben, und klicken Sie auf die Hinzufügen Taste, um die Ebene in Ihrer Lambda -Funktion hinzuzufügen.

Nach dem Hinzufügen der Ebene müssen Sie nun nicht die installieren Anfragen Modul in Ihrer Lambda -Funktion beim Importieren der Anfragen Modul über die Lambda -Schicht.

Teilen von Lambda -Schichten

Standardmäßig ist die Lambda -Schicht privat und kann nur in Ihrem AWS -Konto verwendet werden. Sie können jedoch die Berechtigungen Ihrer Lambda -Schicht mithilfe der Befehlszeilenschnittstelle verwalten, um die Ebenen mit einem anderen AWS -Konto oder einer anderen Organisation zu teilen. Die AWS -Konsole hat nicht das Teilen der Lambda -Ebenen mit anderen AWS -Konten. Der Fügen Sie die Layer-Version-Permission hinzu Die Methode wird verwendet, um die Ebenen mit der Befehlszeilenschnittstelle zu teilen. In den kommenden Abschnitten des Blogs werden wir sehen, wie wir die Lambda -Ebenen mit anderen AWS -Konten oder -organisationen teilen können.

Teilen Sie die Lambda -Schicht für ein bestimmtes AWS -Konto

Um die Lambda -Schicht zu teilen, die Fügen Sie die Layer-Version-Permission hinzu Methode der Befehlszeilenschnittstelle wird verwendet. Sie müssen den Namen der Ebene angeben, die Sie die Anweisung-ID-, Versionsnummer- und AWS-Konto-ID teilen möchten, an die Sie die Ebene teilen möchten. Im Folgenden ist der Befehl zum Freigeben der Lambda -Ebene mit einem anderen AWS -Konto mit der Befehlszeilenschnittstelle:

Ubuntu@ubuntu: ~ $ aws lambda add-layer-version-permission \
--Layer-Name Demo_Layer \
--Action Lambda: GetLayerversion \
--Anweisung-ID-Anweisung-1 \
--Versionsnummer 1
--Rektor \

Lambda -Schicht öffentlich teilen

Um eine Lambda -Schicht auf Ihrem AWS -Konto öffentlich zu teilen, um über alle AWS -Konten auf dem Laufenden zu kommen, müssen Sie nur die ändern Rektor Parameter des Befehls, der im vorherigen Abschnitt verwendet wird. Anstatt eine AWS -Konto -ID anzugeben, müssen Sie ein „*“ als Schulleiter verwenden, um die Lambda -Schicht auf allen AWS -Konten öffentlich zu teilen.

Ubuntu@ubuntu: ~ $ aws lambda add-layer-version-permission \
--Layer-Name Demo_Layer \
--Anweisung-ID-Anweisung-2 \
--Action Lambda: GetLayerversion \
--Rektor * \
--Versionsnummer 1

Teilen Sie die Lambda -Schicht mit allen AWS -Konten in einer Organisation

Genau wie bei einem AWS -Konto können die Lambda -Ebenen auch mit allen AWS -Konten in einer Organisation geteilt werden. Um die Lambda -Schicht mit allen Konten in einer Organisation zu teilen, müssen Sie die hinzufügen organisatorisch Parameter in der Fügen Sie die Layer-Version-Permission hinzu Befehl. Hier ist der Befehl, um die Lambda -Ebene an alle AWS -Konten in einer Organisation weiterzugeben:

Ubuntu@ubuntu: ~ $ aws lambda add-layer-version-permission \
--Layer-Name Demo_Layer \
--Anweisung-ID-Anweisung-3 \
--Action Lambda: GetLayerversion \
--Rektor * \
--organisatorisch \
--Versionsnummer 1

Abschluss

In diesem Blog haben wir untersucht. Wir haben gelernt, wie man eine ZIP -Datei einer Python -Anforderungsbibliothek erstellt und mit dieser ZIP -Datei eine Lambda -Ebene erstellt hat. Nachdem wir die Lambda -Schicht erstellt hatten, haben wir diese Lambda -Schicht unserer Lambda -Funktion hinzugefügt, um die Wiederverwendbarkeit der Code zu erhöhen. Außerdem haben wir diskutiert, wie wir die Lambda -Ebenen mit bestimmten AWS -Konten und allen Konten in einer Organisation teilen können.