Unterstützte Connectors für Application Integration
Webdienst erstellen
Auf dieser Seite wird beschrieben, wie Sie in der VM einen Webdienst mit dem in Golang geschriebenen Gin-Webframework erstellen. Sie können den Webdienst auch in einem anderen Framework erstellen, das Sie verwenden möchten.
- Führen Sie auf der VM den folgenden Befehl aus, um das Go-Paket herunterzuladen:
wget https://go.dev/dl/go1.22.5.linux-amd64.tar.gz
- Installieren Sie Go auf der VM. Weitere Informationen finden Sie unter Go installieren.
- Führen Sie den folgenden Befehl aus, um ein neues Verzeichnis für den Webdienst zu erstellen:
mkdir SERVICE_REPO cd SERVICE_REPO
Weitere Überlegungen
Beim Erstellen eines Webdienstes müssen Sie die folgenden Aspekte berücksichtigen:
- Eingaben, die Sie während der VM-Erstellung benötigen, sind als Umgebungsvariablen verfügbar und haben das folgende Präfix:
CONNECTOR_ENV_
. - Wenn Sie den Webdienst einrichten, verwenden Sie die Umgebungsvariablen, um diese Werte zu lesen.
- Bei der VM-Erstellung dürfen nur Werte als Eingabe verwendet werden, die zum Einrichten des Webdienstes erforderlich sind.
- Der Port des Dienstes muss als Eingabe aus der Variablen CONNECTOR_ENV_PORT übernommen werden.
- Verwenden Sie andere Umgebungsvariablen für optionale Eingaben.
- Sie können auch während der Verbindungsherstellung Eingaben erhalten. Sie können diese Felder beim Erstellen des benutzerdefinierten Connectors definieren und sie als Pfad, Abfrage oder Header in jedem API-Aufruf übergeben.
- Achten Sie darauf, dass der Server auf dem Localhost ausgeführt wird.
Logging
Protokollieren Sie die erforderlichen Informationen und übertragen Sie die Logs an Cloud Logging. So können Connector-Nutzer Fehler nachvollziehen und beheben. Wenn Sie Logs in Cloud Logging veröffentlichen möchten, können Sie den folgenden Cloud Logging-Client in Go verwenden: https://pkg.go.dev/cloud.google.com/go/logging#NewClient.
Sie müssen den Logger in „main“ initialisieren und eine Middleware in Gin hinzufügen, um alle eingehenden Anfragen zu erfassen. Sie müssen die Methode, den Pfad, den Status und die Latenz für eine Anfrage erfassen. Verwenden Sie beim Logging den entsprechenden Schweregrad, um die Logs zu filtern. Lesen Sie im Webdienst die Protokollebene aus der Umgebungsvariable. Die Protokollebene wird während der VM-Erstellung als optionale Eingabe verwendet. Standardmäßig können Info-Logs verwendet werden. Folgende Logebenen sind verfügbar:
- DEBUG: Protokolliert jeden Teil der Anfrage, einschließlich der HTTP-Anfrage-/Antwort-Traces.
- INFO: Protokolliert den Start und das Herunterfahren des Dienstes, Anfragen und andere Informationen.
- ERROR: Protokolliert Anforderungsfehler, Formatierungsausnahmen und andere Fehler.
Ordnungsgemäßes Herunterfahren
Richten Sie den Server so ein, dass er ordnungsgemäß heruntergefahren wird und die laufenden Anfragen verarbeitet. Informationen zum ordnungsgemäßen Neustarten oder Beenden des Servers finden Sie unter Ordnungsgemäßer Neustart oder Stopp.
Gleichzeitigkeit
Gin-Server unterstützen von Natur aus gleichzeitige Anfragen mithilfe von Go-Routinen. Standardmäßig kann eine unbestimmte Anzahl von Anfragen von Go-Routinen verarbeitet werden. In einigen Fällen, in denen Anfragen voraussichtlich ressourcenintensiv sind, sollten Sie jedoch Worker-Pools verwenden, um die Anfragen auf dem Server einzuschränken und zu puffern. Weitere Informationen finden Sie unter Beispiel für Worker-Pools.
Binärdatei testen und erstellen
- Legen Sie den Port fest und führen Sie den Server mit den folgenden Befehlen aus:
- Führen Sie den folgenden curl-Befehl auf der VM aus, um den Server zu prüfen:
curl -X POST -H "Content-Type: application/json" -H "X-Custom-Header: MyValue" -d '{"name": "Alice", "address": "123 Main St", "gender": "F"}' http://localhost:8081/postData/456
curl -v http://localhost:8081/getData -H "TestKey: MyValue"
- Erstellen Sie die Binärdatei und verwenden Sie sie als VM-Image mit dem folgenden Befehl:
go build -o SERVICE_NAME
- Verschieben Sie die Binärdatei mit dem folgenden Befehl in den Stammordner:
sudo cp SERVICE_NAME /opt
- Führen Sie den Dienst noch einmal aus, um zu prüfen, ob das Binärprogramm wie erwartet funktioniert. Verwenden Sie dazu den folgenden Befehl:
sudo chmod +x SERVICE_NAME ./SERVICE_NAME
EXPORT CONNECTOR_ENV_PORT = 8081 go get . go run .
Mit diesen Befehlen werden die erforderlichen Bibliotheken gebündelt und der Server wird ausgeführt.
Anwendung containerisieren
- Installieren Sie Docker. Weitere Informationen finden Sie unter Docker installieren.
- Erstellen Sie eine Docker-Datei zum Ausführen von Binärdateien.
FROM alpine:latest WORKDIR /opt COPY . . CMD ["./SERVICE_NAME"]
- Erstellen Sie den Connector-Container mit dem folgenden Befehl:
sudo docker build -t connector-container .
- Führen Sie den Docker-Container aus. Legen Sie
--restart=unless-stopped
fest, um den Dienst bei einem unerwarteten Fehler neu zu starten.
Aufgabe auf Containerebene
Alle Logs in stdout können an Cloud Logging weitergeleitet werden, indem Sie den Log-Treiber „gcplogs“ verwenden, wenn Sie den Docker-Container ausführen. So lässt sich der Start, unerwartete Fehler oder das Herunterfahren des Dienstes nachvollziehen.
Führen Sie den folgenden Befehl aus, um die Logs an Cloud Logging weiterzuleiten:sudo docker run --name connector-service -e CONNECTOR_ENV_PORT=$CONNECTOR_ENV_PORT -p $CONNECTOR_ENV_PORT:$CONNECTOR_ENV_PORT --restart=unless-stopped ----log-driver=gcplogs connector-container