Wenn Sie zwei oder mehr serverlose API Gateways gleichzeitig lokal ausführen möchten, können Sie dies einfach mit dem Parameter tun.
Grundsätzlich öffnen zwei Kommandozeilen-Fenster und im ersten Fenster, gehen Sie zu Ihrem ersten Dienstverzeichnis und führt:
sls offline start --port 3001
im anderen Fenster, gehen Sie zu Ihrem zweiten Service und laufen:
sls offline start --port 3002
diese Weise werden Sie haben Sie zwei Dienste auf zwei Ports hören (in diesen Beispielen http://localhost:3001
und http://localhost:3002
).
Es gibt einen Haken (zur Zeit), wenn Sie auch ohne Server-DynamoDB-local-Plugin verwenden:
Wenn Sie DynamoDB Plugin nicht dann Sie sind in Ordnung und jetzt aufhören zu lesen kann :)
DynamoDB Plugin die gleichen --port
Parameter verwendet, und das verursacht java.net.BindException: Address already in use
dieses Problem Siehe: https://github.com/99xt/serverless-dynamodb-local/issues/135
T Er Workaround dafür ist serverless-offline-local
Plugin in nur ein Service (wenn Sie zwei oder mehr haben) aktiviert zu halten.
Beispiel, In my-service-1
halten Sie alle DynamoDB config in serverless.yaml
Datei und starten Sie diesen Dienst mit Standard-Port: sls offline start --migrate true
. Im nächsten Service nennen wir es my-service-2
Sie entfernenserverless-dynamodb-local
von plugins
in serverless.yaml
(es gibt keine Notwendigkeit für andere Änderungen) und dann können Sie den Service mit starten: sls offline start --port 3001
.
Der erste Dienst wird DynamoDB starten und der zweite wird es verwenden können.
Es scheint, dass 'serverless-offline' standardmäßig Anfragen an 'http: // localhost: 3000' proxyt und Anfragen mit mehreren Endpunkten/Funktionen behandelt werden. Aber es hört sich an, als hättest du etwas anderes vor - kannst du deine 'serverless.yml' postulieren? Ich kenne die Antwort auf diese Frage nicht wirklich, da dies ein sehr blutendes Projekt ist, aber ich könnte vielleicht ein paar Dinge durchsprechen. – killthrush
Ich hatte mehrere Dienste/.ymls: so unterschiedliche API-Gateways, die auf verschiedenen Servern laufen mussten. – gr3g