Auf dieser Seite werden einige Dinge beschrieben, die Sie für die ersten Schritte bei der Entwicklung eines Dienstes für die Bereitstellung mit Knative wissen müssen.
Codeanforderungen
Der Dienst, den Sie entwickeln, muss folgende Anforderungen erfüllen:
- Der Dienst muss Anfragen überwachen.
Sie können den Port konfigurieren, an den Anfragen gesendet werden.
Innerhalb von Knative, die Containerinstanzen bereitstellen, entspricht der Wert der Umgebungsvariablen
PORT
immer dem Port, an den Anfragen gesendet werden. Ihr Code sollte prüfen, ob die UmgebungsvariablePORT
vorhanden ist. Ist dies der Fall, sollte sie überwacht werden, um die Übertragbarkeit zu optimieren. - Er muss zustandslos sein. Der Dienst darf nicht von einem nichtflüchtigen lokalen Zustand abhängig sein.
- Der Dienst darf keine Hintergrundaktivitäten ausführen, die außerhalb der Bearbeitung von Anfragen liegen.
Weitere Informationen zu diesen Einschränkungen finden Sie im Containerlaufzeitvertrag.
Unterstützung von Programmiersprachen
Mit Knative können Sie Code in einer Programmiersprache Ihrer Wahl schreiben.
Webserver verwenden
Sie können einen Webserver verwenden, um den erforderlichen Port zu überwachen und eingehende Anfragen zu verarbeiten und weiterzuleiten. Node.js-Entwickler können beispielsweise Express.js verwenden, Python-Entwickler Flask, Ruby-Entwickler Sinatra usw.
Code containerisieren
Für die Bereitstellung in Knative müssen Sie ein Container-Image bereitstellen. Ein Container-Image ist ein Paketerstellungsformat, das Ihren Code, dessen Pakete, eventuell erforderliche binäre Abhängigkeiten, das zu verwendende Betriebssystem und alle anderen zur Ausführung Ihres Dienstes erforderlichen Elemente enthält.
Mit der Datei Dockerfile wird häufig angegeben, wie das Container-Image erstellt werden soll.
Dockerfiles beginnen häufig mit einem Basis-Image (z. B. FROM golang:1.11
). Basis-Images, die von Betriebssystem- und Sprachautoren verwaltet werden, finden Sie auf Docker Hub. Cloud Build prüft vor dem Abrufen aus Docker Hub, ob im Cache gespeicherte Images verwendet werden. Wenn Sie das Build-Tool eines Drittanbieters verwenden, können Sie Ihren Docker-Daemon so konfigurieren, dass im gleichen Cache nach Images gesucht wird. Von Google verwaltete Basis-Images finden Sie im Google Cloud Marketplace.
Wenn Sie Ihre eigenen Binärdateien verwenden, müssen diese für Linux ABI x86_64 kompiliert sein.
Diese Ressourcen bieten weitere Informationen zu Dockerfiles:
- Weitere Informationen zur Syntax finden Sie in der Referenz zu Dockerfile und in den Tipps unter Best Practices zum Schreiben von Dockerfiles.
- Erweiterte Informationen finden Sie in Best Practices für das Erstellen von Containern.
Nächste Schritte
- Sobald Sie Dienstcode und Dockerfile haben, sollten Sie ein Container-Image erstellen und dann das Iterieren mit lokalen Tests fortsetzen.
- Wenn Sie eine vorhandene Webanwendung migrieren, finden Sie weitere Informationen unter Dienst zu Knative-Bereitstellung migrieren.
- Best Practices für das Entwerfen, Implementieren, Testen und Bereitstellen eines Dienstes in Knative finden Sie in den Tipps zur Entwicklung.