Verbinden von VPC-Endpunkten von eingehenden Schnittstellen für Lambda
Wenn Sie Amazon Virtual Private Cloud (Amazon VPC) zum Hosten Ihrer AWS-Ressourcen verwenden, können Sie eine Verbindung zwischen Ihrer VPC und Lambda herstellen. Sie können mit dieser Verbindung Ihre Lambda-Funktion aufrufen, ohne das öffentliche Internet überqueren.
Um eine private Verbindung zwischen Ihrer VPC und Lambda herzustellen, erstellen Sie einen Schnittstellen-VPC-Endpunkt. Schnittstellenendpunkte werden von AWS PrivateLink
Jeder Schnittstellenendpunkt wird durch eine oder mehrere Elastic Network-Schnittstellen in Ihren Subnetzen dargestellt. Eine Netzwerkschnittstelle stellt eine private IP-Adresse bereit, die als Einstiegspunkt für den Datenverkehr zu Lambda dient.
Abschnitte
Überlegungen für Lambda-Schnittstellenendpunkte
Bevor Sie einen Schnittstellenendpunkt für Lambda einrichten, lesen Sie unbedingt die Eigenschaften und Einschränkungen des Schnittstellenendpunkts im Amazon-VPC-Benutzerhandbuch.
Sie können alle Lambda-API-Operationen von Ihrer VPC aus aufrufen. Sie können die Lambda-Funktion beispielsweise aufrufen, indem Sie die Invoke-API aus Ihrer VPC aufrufen. Die vollständige Liste der Lambda-APIs finden Sie unter Aktionen in der Lambda-API-Referenz.
use1-az3 ist eine Region mit begrenzter Kapazität für Lambda-VPC-Funktionen. Sie sollten in dieser Availability Zone keine Subnetze für Ihre Lambda-Funktionen verwenden, da dies im Falle eines Ausfalls zu einer verringerten zonalen Redundanz führen kann.
Keep-Alive für persistente Verbindungen
Lambda löscht Leerlaufverbindungen im Laufe der Zeit. Daher müssen Sie eine Keep-Alive-Direktive verwenden, um dauerhafte Verbindungen zu pflegen. Der Versuch, eine Leerlaufverbindung beim Aufruf einer Funktion wiederzuverwenden, führt zu einem Verbindungsfehler. Um Ihre persistente Verbindung aufrechtzuerhalten, verwenden Sie die Keep-Alive-Direktive, die Ihrer Laufzeit zugeordnet ist. Ein Beispiel finden Sie unter Wiederverwenden von Verbindungen mit Keep-Alive in Node.js im AWS SDK für JavaScript-Entwicklerhandbuch.
Überlegungen zur Abrechnung
Es fallen keine zusätzlichen Kosten für den Zugriff auf eine Lambda-Funktion über einen Schnittstellen-Endpunkt an. Weitere Informationen über Lambda-Preise finden Sie unter AWS Lambda-Preise
Die Standardpreise für AWS PrivateLink gelten für Schnittstellenendpunkte für Lambda. IhremAWS -Konto wird jede Stunde in Rechnung gestellt, die ein Schnittstellenendpunkt in jeder Availability Zone bereitgestellt wird und für Daten, die über den Schnittstellenendpunkt verarbeitet werden. Weitere Informationen zu Preisen für Schnittstellenendpunkte finden Sie unter AWS PrivateLink-Preise
Überlegungen zu VPC Peering
Sie können andere VPCs mit Schnittstellenendpunkten über VPC-Peering mit der VPC verbinden. VPC-Peering ist eine Netzwerkverbindung zwischen zwei VPCs. Sie können eine VPC-Peering-Verbindung zwischen Ihren eigenen beiden VPCs oder mit einer VPC in einem anderen AWS-Konto herstellen. Die VPCs können sich auch in zwei verschiedenen AWS-Regionen befinden.
Der Datenverkehr zwischen über Peering verbundenen VPCs bleibt im AWS-Netzwerk und wird nicht über das öffentliche Internet übertragen. Sobald VPCs per Peering verbunden sind, können Ressourcen wie Amazon-Elastic-Compute-Cloud-(Amazon-EC2)-Instances, Amazon-Relational-Database-Service-(Amazon-RDS)-Instances oder VPC-fähige Lambda-Funktionen in beiden VPCs über Schnittstellenendpunkte, die in einem der VPCs erstellt wurden, auf die Lambda-API zugreifen.
Erstellen eines Schnittstellenendpunkts für Lambda
Sie können einen Schnittstellenendpunkt für Lambda entweder über die Amazon-VPC-Konsole oder die AWS Command Line Interface (AWS CLI) erstellen. Weitere Informationen finden Sie unter Erstellung eines Schnittstellenendpunkts im Amazon VPC Benutzerhandbuch.
So erstellen Sie einen Schnittstellenendpunkt für Lambda (Konsole)
-
Öffnen Sie die Seite Endpunkte
der Amazon-VPC-Konsole. -
Klicken Sie auf Create Endpoint.
-
Stellen Sie sicher, dass für Service-Kategorie die Option AWS-Services ausgewählt ist.
-
Wählen Sie als Service Name (Servicename) com.amazonaws.
region.lambda aus. Stellen Sie sicher, dass als Typ die Option Schnittstelle gewählt ist. -
Auswählen von VPC und Subnetzen
-
Um ein privates DNS für den Schnittstellenendpunkt zu aktivieren, aktivieren Sie das Kontrollkästchen für Name eines DNS aktivieren. Wir empfehlen die Aktivierung privater DNS-Namen für Ihren VPC-Endpunkt für AWS-Services. Dadurch wird sichergestellt, dass Anfragen, die die Endpunkte des öffentlichen Dienstes verwenden, z. B. Anfragen, die über ein AWS-SDK gestellt wurden, an Ihren VPC-Endpunkt weitergeleitet werden.
-
Wählen Sie unter Security group (Sicherheitsgruppe) eine oder mehrere Sicherheitsgruppen aus.
-
Wählen Sie Create endpoint.
Um die private DNS-Option verwenden zu können, müssen Sie enableDnsHostnames und enableDnsSupportattributes Ihrer VPC festlegen. Weitere Informationen finden Sie unter Anzeigen und Aktualisieren der DNS-Unterstützung für Ihre VPC im Amazon-VPC-Benutzerhandbuch. Wenn Sie einen privaten DNS für den Schnittstellenendpunkt aktivieren, können Sie mittels seines standardmäßigen DNS-Namen für die Region, beispielsweise , API-Anforderungen an Lambda senden., lambda.us-east-1.amazonaws.com. Weitere Service-Endpunkte finden Sie unter Service-Endpunkte und Kontingente im Allgemeine AWS-Referenz.
Weitere Informationen finden Sie unter Zugriff auf einen Service über einen Schnittstellenendpunkt im Amazon VPC Benutzerhandbuch.
Informationen zum Erstellen und Konfigurieren eines Endpunkts mit CloudFormation finden Sie in der AWS::EC2::VPCEndpoint-Ressource im AWS CloudFormation-Benutzerhandbuch.
So erstellen Sie einen Schnittstellen-Endpunkt für Lambda (AWS CLI)
Verwenden Sie den create-vpc-endpoint
aws ec2 create-vpc-endpoint --vpc-idvpc-ec43eb89--vpc-endpoint-type Interface --service-name com.amazonaws.us-east-1.lambda --subnet-id subnet-abababab --security-group-idsg-1a2b3c4d
Erstellen einer Richtlinie des Schnittstellenendpunkts für Lambda
Wenn Sie steuern möchten, wer Ihren Schnittstellenendpunkt verwenden kann und auf welche Lambda-Funktionen der Benutzer zugreifen kann, können Sie eine Endpunktrichtlinie an Ihren Endpunkt anfügen. Die Richtlinie gibt die folgenden Informationen an:
-
Prinzipal, der die Aktionen ausführen kann
-
Die Aktionen, die der Prinzipal ausführen kann.
-
Die Ressourcen, auf denen der Prinzipal Aktionen ausführen kann.
Weitere Informationen finden Sie unter Steuerung des Zugriffs auf Services mit VPC-Endpunkten im Amazon VPC Benutzerhandbuch.
Beispiel: Schnittstellenendpunktrichtlinie für Lambda-Aktionen
Im Folgenden finden Sie ein Beispiel für eine Endpunktrichtlinie für Lambda. Bei Anfügung an einen Endpunkt ermöglicht diese Richtlinie dem Benutzer MyUser die Funktion my-function aufzurufen.
Anmerkung
Sie müssen sowohl den qualifizierten als auch den nicht qualifizierten Funktions-ARN in die Ressource aufnehmen.
{ "Statement":[ { "Principal": { "AWS": "arn:aws:iam::111122223333:user/MyUser" }, "Effect":"Allow", "Action":[ "lambda:InvokeFunction" ], "Resource": [ "arn:aws:lambda:us-east-2:123456789012:function:my-function", "arn:aws:lambda:us-east-2:123456789012:function:my-function:*" ] } ] }