Ich habe Tabpy noch nie berührt Ein Memo, als ich versuchte, Tabpy auf Cloud Run (auf GKE) auszuführen, während ich gleichzeitig Cloud Run studierte
Ein Mechanismus, mit dem Tableau die Ergebnisse der statistischen Verarbeitung und des maschinellen Lernens in Python durch Verknüpfung von Tableau und Python visualisieren kann. Installieren Sie das Python-Modul mit pip auf einem beliebigen PC oder Server, starten Sie den Tabpy-Dienst und greifen Sie über die externe Dienstverbindung von Tableau auf Tabpy zu.
https://cloud.google.com/run/?hl=ja Vollständig verwalteter Service zum Ausführen von Containern Wird gemäß der Bearbeitungszeit der Anfrage berechnet Es scheint sich um eine automatische Waage mit einem guten Gefühl zu handeln, daher ist weniger Infrastruktur als bei GKE erforderlich, es gibt jedoch verschiedene Einschränkungen (Zeitlimit, Portbezeichnung usw.). Cloud-Funktionen-ähnliches Bild, mit dem Personen alles bewegen können
Unterschied zu GKE https://tomokazu-kozuma.com/the-difference-between-cloud-run-and-cloud-run-on-gke/
Ich konnte mit Cloud Run keine Verbindung zu Tabpy herstellen. .. Ich bin nicht sicher, ob die Inkonsistenz zwischen dem von Cloud Run automatisch ausgestellten SSL-Zertifikat und dem für die SSL-Konvertierung von Tabpy verwendeten SSL-Zertifikat schlecht ist. .. .. (Von Cloud Run automatisch ausgestellte Zertifikate können nicht verwendet werden.)
Voraussetzung für die Verwendung von Cloud Shell
Richten Sie dies unter Bezugnahme auf Folgendes ein https://cloud.google.com/run/docs/gke/setup
Beispielcluster erstellen
gcloud beta container clusters create <Clustername> \
--machine-type=g1-small \
--preemptible \
--num-nodes=3 \
--disk-size=10 \
--zone=us-central1-a \
--addons=HorizontalPodAutoscaling,HttpLoadBalancing,Istio,CloudRun \
--cluster-version=latest \
--enable-stackdriver-kubernetes \
--enable-ip-alias \
--scopes cloud-platform
Um Cloud Run für einen bereits eingerichteten GKE-Cluster zu aktivieren, aktivieren Sie die blauen Kreiselemente in der Erfassung unten in der Reihenfolge von oben.
Fügen Sie nach Bedarf zu installierende Bibliotheken hinzu Installieren Sie einfach tabpy mit pip install und starten Sie tabpy, es ist im Grunde OK
Dockerfile
from continuumio/miniconda3:latest
ARG config_dir=/tmp/
ADD file.conf $config_dir
WORKDIR $config_dir
RUN pip install --upgrade pip && \
pip install numpy pandas scikit-learn scipy textblob nltk vaderSentiment && \
pip install reverse_geocoder geopy && \
pip install tabpy==1.0.0
RUN tabpy-user add -u <username> -p <password> -f pwd.txt
ENV PORT 8080
EXPOSE 8080
ENTRYPOINT tabpy --config=file.conf
file.conf
#Erstellen Sie diese Datei im selben Verzeichnis wie die Docker-Datei
[TabPy]
TABPY_PORT = 8080
TABPY_PWD_FILE = /tmp/pwd.txt
Führen Sie den folgenden Befehl in dem Verzeichnis aus, in dem die Docker-Datei gespeichert ist. Ein Bild namens tabpy-sample wird erstellt.
python
docker image build -t asia.gcr.io/<Projekt-ID>/tabpy-sample:latest .
Zur Containerregistrierung verschieben
python
docker push asia.gcr.io/<Projekt-ID>/tabpy-sample:latest
CloudRunOnGKE
gcloud beta run deploy tabpy-sample \
--image asia.gcr.io/<Projekt-ID>/tabpy-sample \
--platform gke \
--cluster <GKE-Clustername> \
--cluster-location <Ort>
Wenn die Plattformoption verwaltet wird, wird sie in CloudRun bereitgestellt
(Referenz)CloudRun
gcloud beta run deploy tabpy-sample \
--image asia.gcr.io/<Projekt-ID>/tabpy-sample \
--platform managed \
--region <Region>
https://cloud.google.com/run/docs/mapping-custom-domains?hl=ja
Bei Bereitstellung auf Cloudrun auf GKE, Standardmäßig kann nicht auf den Dienst zugegriffen werden, ohne den Host im Header über curl anzugeben. Da mit dem externen Verbindungsdienst von Tableau keine Header angegeben werden können, müssen Sie eine benutzerdefinierte Domäne zuordnen und darauf zugreifen.
python
gcloud domains verify [DOMAIN]
python
gcloud beta run domain-mappings create --service [SERVICE] --domain [DOMAIN]
python
gcloud beta run domain-mappings describe --domain [DOMAIN]
python
gcloud compute addresses create [IP-NAME] --addresses [EXTERNAL-IP] --region [REGION]
EXTERNAL-IP gibt die IP-Adresse des A-Eintrags an, der im Verfahren zum Erfassen von DNS-Eintragsdaten erfasst wurde.
https://cloud.google.com/run/docs/mapping-custom-domains?hl=ja#dns_update
Dockerfile Ich habe eine Docker-Datei mit Bezug auf Folgendes erstellt, aber es scheint, dass sie etwas alt war. .. https://github.com/erichannell/TabPy-docker Derzeit scheint die Tabpy-Installation mit der Pip-Installation abgeschlossen zu sein.
Ändern Sie Dockerfile anhand der offiziellen Tabpy-Dokumentation https://github.com/tableau/TabPy/blob/master/docs/server-install.md#starting-tabpy
Cloudrun muss listen PORT to 8080 angeben https://stackoverflow.com/questions/55662222/container-failed-to-start-failed-to-start-and-then-listen-on-the-port-defined-b https://cloud.google.com/run/docs/reference/container-contract?hl=ja#port
Tabpy hat einen Standardport von 9004, daher müssen Sie den Port 8080 mithilfe der Konfigurationsdatei angeben. https://github.com/tableau/TabPy/blob/master/docs/server-config.md
Klicken Sie im oberen Hilfemenü auf Externe Dienstverbindungen verwalten
Server: Benutzerdefinierter Domänensatz Port: 80 Benutzername: Benutzer in Dockerfile festgelegt Passwort: Benutzer in Dockerfile festgelegt
https://help.tableau.com/current/server-linux/ja-jp/config_r_tabpy.htm https://help.tableau.com/current/server-linux/ja-jp/cli_security_tsm.htm#tsm_security_vizql-extsvc-ssl-enable
Führen Sie die folgenden Schritte in der Tableau Server-Befehlszeile aus
Aktivieren Sie externe Dienste auf dem Tableau-Server
tsm security vizql-extsvc-ssl enable --connection-type tabpy --extsvc-host <Hostname> --extsvc-port <PORT> --extsvc-username <Tabpy Benutzername> --extsvc-password <Tabpy Passwort>
tsm pending-changes apply
orz https://help.tableau.com/current/pro/desktop/ja-jp/r_connection_manage.htm
Arbeitsmappen mit externen Service-Skripten können nicht in Tableau Online veröffentlicht werden.
[Lassen Sie uns Tabpy mit Docker in einem Container ausführen! ](Http://lovedata.main.jp/2018/11/20/docker%E3%82%92%E4%BD%BF%E3%81%A3%E3%81%A6mac%E3%81%A7% E3% 82% 82tabpy% E3% 82% 92% E5% 8B% 95% E3% 81% 8B% E3% 81% 9D% E3% 81% 86% EF% BC% 81 /)
Denken Sie an Google Cloud Run-Ports
[Knative in Cloud Run auf GKE](https://qiita.com/toshi0607/items/eeeabe81b1beac343b6b#cloud-run-on-gke%E3%81%AE%E3%83%87%E3%83%97% E3% 83% AD% E3% 82% A4)
Recommended Posts