Ich bin sehr neu in dem API-Gateway und AWS Lambda und ich versuche, sie in einem Szenario mit den folgenden Elementen zu verwenden:API-Gateway und Lambda-Funktion: erster Ansatz
- eine VPC mit einem privaten und einem öffentliche Subnetz
- ein AMI EC2 (Free Tier) mit Lampe installiert
- eine einfache index.html-Seite mit Text (etwas zu sagen: „Das ist eine Testseite“)
Was möchte ich tun ist in der Lage,zu schlagendurch die Verwendung des API-Gateways und Lambda, wie es in der AWS-Dokumentation vorgeschlagen scheint. Ich habe dann das grundlegende Hello World Lambda-Beispiel (einen der AWS Blueprints) für meine erste Lambda-Funktion wieder verwendet und die VPC-Details (mit dem privaten Subnetz auch) wie im Assistenten angefordert. Ich habe auch eine Beispiel-API mit einer Ressource (in diesem Fall mein Beispiel) und der Get-Methode mit dem Lambda-Funktionsintegrationstyp und der Hello-World-Funktion erstellt. Laut der Dokumentation habe ich die richtigen Berechtigungen (http://docs.aws.amazon.com/apigateway/latest/developerguide/create-lambda-roles.html) erstellt. Ich habe die GET-Methode von meiner API getestet und gibt die Antwort "Hello World" gemäß dem bereits vorhandenen AWS-Entwurf korrekt zurück. Ich weiß, das klingt nach einer sehr naiven Frage, aber ich bin mir nicht sicher, ob ich wirklich bewiesen habe, dass ich meine VPC schlagen kann. Ich würde gerne den Beispieltext von meiner index.html Seite zurückgeben können, zum Beispiel, Ist das möglich? Habe ich den Zweck von AWS Lambda in diesem speziellen Szenario missverstanden?
Vielen Dank für Ihre Hilfe,
EDIT:
Also, ich habe zusammen 4.3 die folgenden in Knoten JS setzen:
'use strict';
console.log('We are about to send a Get Request');
exports.handler = function(event, context, callback) {
var http = require("http")
var request = http.get("http://domain/example/index.html")
console.log('"This is my request":"' + request + '"');
callback(null, "The URL is succesfully retrieved")
};
Der Test läuft erfolgreich, bin ich richtig zu sagen, dass es beweist, dass ich eine Seite, die auf einer VPC läuft, treffen kann?
danke dafür, sehr geschätzt. Wollte nur herausfinden, ob ich tatsächlich in die richtige Richtung gehe und ja der Test scheint zu funktionieren und ich kann diese Seite innerhalb der VPC treffen. Ich denke, ich kann eine ähnliche Sache mit einem REST-Endpunkt anstelle einer HTTP-Ressource machen. Ist das korrekt? – paranza
Dieser Ansatz funktioniert, aber er ist nicht skalierbar, denn wenn Lambda auf eine Ressource in VPC zugreifen muss, benötigt es ENI (Elastic Network Interface) und eine ausreichende IP-Adresse und um sicherzustellen, dass dieses Zeug knifflig ist. Es würde empfehlen, sich vorher alle Bedenken auf http://docs.aws.amazon.com/lambda/latest/dg/vpc.html anzuschauen, um in diese Richtung zu gehen. –
@paranza: Wie war Ihre Erfahrung mit diesem Ansatz? –