Insgesamt bin ich ziemlich verwirrt, wenn ich AWS Lambda in einer VPC verwende. Das Problem ist, dass Lambda beim Versuch, auf einen S3-Bucket zuzugreifen, Zeitlimits setzt. Die Lösung scheint ein VPC-Endpunkt zu sein.Zugriff auf AWS S3 von Lambda innerhalb von VPC
Ich habe die Lambda-Funktion zu einer VPC hinzugefügt, so dass sie auf eine RDS-gehostete Datenbank zugreifen kann (nicht im unten stehenden Code, aber funktional). Allerdings kann ich jetzt nicht auf S3 zugreifen und versuche es auch mal nicht.
Ich habe versucht, einen VPC S3-Endpunkt zu erstellen, aber nichts hat sich geändert.
VPC Konfiguration
ich standardmäßig eine einfache VPC verwenden erstellt, wenn ich eine EC2-Instanz gemacht zuerst. Es hat vier Subnetze, alle standardmäßig erstellt.
VPC-Routentabelle
_Destination - Target - Status - Propagated_
172.31.0.0/16 - local - Active - No
pl-63a5400a (com.amazonaws.us-east-1.s3) - vpce-b44c8bdd - Active - No
0.0.0.0/0 - igw-325e6a56 - Active - No
Einfach S3 Herunterladen Lambda:
import boto3
import pymysql
from StringIO import StringIO
def lambda_handler(event, context):
s3Obj = StringIO()
return boto3.resource('s3').Bucket('marineharvester').download_fileobj('Holding - Midsummer/sample', s3Obj)
VPC S3-Endpunkte erfordern die Konfiguration der Routentabelle und die Konfiguration der Sicherheitsrichtlinien. Sie müssten zeigen, wie Sie diese Einstellungen konfiguriert haben, wenn Sie Hilfe dabei benötigen. Die Dokumentation ist hier: http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/vpc-endpoints.html Alternativ könnten Sie der VPC ein NAT-Gateway hinzufügen, das der Lambda-Funktion Zugriff auf alles außerhalb der VPC geben würde nicht nur der S3-Service. –
Dies ist VPC-Konfigurationsproblem. Konfigurieren Sie eine beliebige sbunet assosiatio mit dem nat-Gateway auf der Routentabelle. Hast du noch Probleme? –
Ich habe einige Informationen zur VPC-Konfiguration hinzugefügt. Ich dachte mir, das wäre das Problem, aber die VPC ist für mich größtenteils eine Black Box. Ich weiß nicht, was ich damit prüfen soll, um zu sehen, was falsch konfiguriert ist. – noobiemcfoob