In dieser Anleitung wird beschrieben, wie Sie einen Webdienst für die Ausführung in einem Container auf Knative vorbereiten. Die Datenmigration wird nicht behandelt.
Port identifizieren, den Ihr Code überwacht
Ihr Dienst sollte auf Anfragen an einem bestimmten Port warten. Sie müssen diesen Port identifizieren und die Knative-Bereitstellung so konfigurieren, dass Anfragen an denselben Port gesendet werden.
Dies ist derselbe Port, den Sie auch beim Aufrufen Ihres Dienstes auf Ihrem lokalen Computer verwenden würden. Wenn Sie beispielsweise Ihren Code testen möchten, öffnen Sie localhost:3000
und legen Sie den Containerport in der Knative-Bereitstellung auf 3000
fest.
Die Knative-Bereitstellung sendet standardmäßig Anfragen an 8080
.
Der Wert des Ports, an den Anfragen gesendet werden, ist immer in der Umgebungsvariable PORT
verfügbar. Als Best Practice empfiehlt es sich, dass der Code den Wert überwacht, der durch die Umgebungsvariable PORT
definiert ist.
Lokales Dateisystem von der Abhängigkeit von nichtflüchtigem Speicher befreien
Prüfen Sie Ihren Anwendungscode auf Abhängigkeiten von lokalen Dateisystemen und ersetzen Sie diese durch Dateispeicher in Cloud Storage oder Datenspeicher wie Firestore oder Cloud SQL.
Dockerfile
hinzufügen
Zur Verpackung des Dienstes in einem Container empfiehlt sich ein Dockerfile, mit dem die Betriebsumgebung definiert wird. Weitere Informationen zum Anpassen von Dockerfile
finden Sie auf der Seite Dienst entwickeln
Nebenläufigkeit und Speicherlimits abstimmen
Weitere Informationen zur Gleichzeitigkeit in der Knative-Bereitstellung und zur Optimierung Ihrer Dienste finden Sie in den Tipps zur Optimierung der Nebenläufigkeit.
Achten Sie darauf, das Speicherlimit hoch genug anzusetzen, damit die Anwendung ausgeführt wird und der Dienst genügend Speicher für die temporäre Speicherung von Dateien hat.
Logs an stdout oder stderr senden
Die Knative-Bereitstellung verwendet automatisch die Beobachtbarkeit von Google Cloud, um Ihre Logs zu aggregieren und zu prüfen, wie auf der Logging-Seite beschrieben.