1. Übersicht
Diese Reihe von Codelabs (eigenständige, praktische Anleitungen) soll Entwicklern helfen, die verschiedenen Optionen zu verstehen, die ihnen beim Bereitstellen ihrer Anwendungen zur Verfügung stehen. In diesem Codelab erfahren Sie, wie Sie die Google Cloud Translation API mit Python verwenden und entweder lokal ausführen oder auf einer serverlosen Computing-Plattform in der Cloud (App Engine, Cloud Functions oder Cloud Run) bereitstellen. Die Beispiel-App im Repository dieses Tutorials kann (mindestens) auf acht verschiedene Arten bereitgestellt werden, mit nur geringfügigen Konfigurationsänderungen:
- Lokaler Flask-Server (Python 2)
- Lokaler Flask-Server (Python 3)
- App Engine (Python 2)
- App Engine (Python 3)
- Cloud Functions (Python 3)
- Cloud Run (Python 2 über Docker)
- Cloud Run (Python 3 über Docker)
- Cloud Run (Python 3 über Cloud Buildpacks)
In diesem Codelab geht es hauptsächlich um die Bereitstellung dieser App auf den oben fett gedruckten Plattformen.
Sie lernen, wie Sie
- Google Cloud APIs verwenden, insbesondere die Cloud Translation API (erweitert/v3)
- Eine einfache Webanwendung lokal ausführen oder auf einer serverlosen Cloud-Rechenplattform bereitstellen
Voraussetzungen
- Ein Google Cloud-Projekt mit einem aktiven Cloud-Rechnungskonto
- Flask, das für die lokale Ausführung installiert ist, oder eine serverlose Cloud-Computing-Plattform, die für cloudbasierte Bereitstellungen aktiviert ist
- Grundlegende Python-Kenntnisse
- Grundkenntnisse in den grundlegenden Befehlen des Betriebssystems
Umfrage
Wie möchten Sie diese Anleitung verwenden?
Wie würden Sie Ihre Erfahrung mit Python bewerten?
Wie würden Sie Ihre Erfahrungen mit der Nutzung von Google Cloud-Diensten bewerten?
2. Einrichtung und Anforderungen
Einrichtung der Umgebung im eigenen Tempo
- Melden Sie sich in der Google Cloud Console an und erstellen Sie ein neues Projekt oder verwenden Sie ein vorhandenes. Wenn Sie noch kein Gmail- oder Google Workspace-Konto haben, müssen Sie ein Konto erstellen.
- Der Projektname ist der Anzeigename für die Teilnehmer dieses Projekts. Es handelt sich um einen Zeichenstring, der nicht von Google APIs verwendet wird. Sie können ihn jederzeit aktualisieren.
- Die Projekt-ID muss für alle Google Cloud-Projekte eindeutig sein und kann nach der Festlegung nicht mehr geändert werden. Die Cloud Console generiert automatisch einen eindeutigen String. In den meisten Codelabs müssen Sie auf die Projekt-ID verweisen, die normalerweise als
PROJECT_ID
gekennzeichnet ist. Wenn Ihnen die ID nicht gefällt, generieren Sie eine andere zufällige ID oder versuchen Sie, Ihre eigene zu verwenden und prüfen Sie, ob sie verfügbar ist. Nach dem Erstellen des Projekts wird es „eingefroren“. - Es gibt einen dritten Wert, die Projektnummer, die von einigen APIs verwendet wird. Weitere Informationen zu diesen drei Werten finden Sie in der Dokumentation.
- Als Nächstes müssen Sie die Abrechnung in der Cloud Console aktivieren, um Cloud-Ressourcen/-APIs verwenden zu können. Die Ausführung dieses Codelabs sollte nur wenige Kosten verursachen, wenn überhaupt. Wenn Sie die Ressourcen herunterfahren möchten, damit keine Kosten über diese Anleitung hinaus anfallen, folgen Sie der Anleitung zum Bereinigen am Ende des Codelabs. Neuen Nutzern der Google Cloud Platform steht das kostenlose Testprogramm mit einem Guthaben von 300$ zur Verfügung.
3. Translation API aktivieren
Für unsere Beispiel-App aktivieren Sie stattdessen die Cloud Translation API und den App Engine-Dienst. Folgen Sie dazu der Anleitung unten.
Cloud APIs aktivieren
Einführung
Unabhängig davon, welche Google API Sie in Ihrer Anwendung verwenden möchten, muss sie aktiviert sein. Das folgende Beispiel zeigt zwei Möglichkeiten, die Cloud Vision API zu aktivieren. Nachdem Sie gelernt haben, wie Sie eine Cloud API aktivieren, können Sie auch andere APIs aktivieren, da der Vorgang ähnlich ist.
Option 1: Über Cloud Shell oder die Befehlszeile
Das Aktivieren von APIs über die Cloud Console ist zwar gängiger, einige Entwickler bevorzugen jedoch die Befehlszeile. Dazu müssen Sie den „Dienstnamen“ einer API suchen. Sie sieht aus wie eine URL: SERVICE_NAME
.googleapis.com
. Sie finden sie im Diagramm zu unterstützten Produkten oder können sie programmatisch mit der Google Discovery API abfragen.
Mit diesen Informationen können Sie in Cloud Shell (oder in Ihrer lokalen Entwicklungsumgebung mit installiertem gcloud
-Befehlszeilentool) eine API so aktivieren:
gcloud services enable SERVICE_NAME.googleapis.com
Mit diesem Befehl wird beispielsweise die Cloud Vision API aktiviert:
gcloud services enable vision.googleapis.com
Mit diesem Befehl werden die folgenden App Engine-Funktionen aktiviert:
gcloud services enable appengine.googleapis.com
Sie können auch mehrere APIs mit einer einzigen Anfrage aktivieren. Mit dieser Befehlszeile werden beispielsweise Cloud Run, Cloud Artifact Registry und die Cloud Translation API aktiviert:
gcloud services enable artifactregistry.googleapis.com run.googleapis.com translate.googleapis.com
Option 2: Über die Cloud Console
Sie können die Vision API auch im API Manager aktivieren. Rufen Sie in der Cloud Console API Manager auf und wählen Sie Bibliothek aus.
Wenn Sie die Cloud Vision API aktivieren möchten, geben Sie in die Suchleiste „vision“ ein. Daraufhin werden alle Elemente angezeigt, die mit dem Gesuchten übereinstimmen:
Wählen Sie die API aus, die Sie aktivieren möchten, und klicken Sie auf Aktivieren:
Kosten
Viele Google APIs können kostenlos verwendet werden, die Nutzung von Google Cloud-Produkten und ‑APIs ist jedoch nicht kostenlos. Wenn Sie Cloud APIs aktivieren, werden Sie möglicherweise nach einem aktiven Rechnungskonto gefragt. Einige Google Cloud-Produkte bieten jedoch eine „Immer kostenlos“-Stufe (täglich/monatlich), die Sie überschreiten müssen, damit Ihnen Kosten in Rechnung gestellt werden. Andernfalls wird Ihre Kreditkarte (oder das angegebene Abrechnungsmittel) nicht belastet.
Nutzer sollten sich vor der Aktivierung die Preisinformationen für jede API ansehen und insbesondere darauf achten, ob es eine kostenlose Stufe gibt und wenn ja, welche. Wenn Sie die Cloud Vision API aktivieren, sollten Sie sich die Preisinformationen ansehen. Cloud Vision hat ein kostenloses Kontingent. Solange Sie die Limits insgesamt (innerhalb eines Monats) einhalten, fallen keine Kosten an.
Preise und kostenlose Stufen variieren je nach Google API. Beispiele:
- Google Cloud/GCP: Jedes Produkt wird unterschiedlich abgerechnet und ist in der Regel nach vCPU-Zyklus, Speicherverbrauch, Speichernutzung oder Pay-per-Use abgerechnet. Weitere Informationen zur kostenlosen Stufe finden Sie oben.
- Google Maps: Bietet eine Reihe von APIs und ein monatliches Guthaben von 200$.
- Google Workspace (früher G Suite) APIs: Die Nutzung ist bis zu bestimmten Limits kostenlos und wird durch eine monatliche Workspace-Abogebühr abgedeckt. Die APIs für Gmail, Google Drive, Kalender, Docs, Tabellen und Präsentationen werden also nicht direkt abgerechnet.
Die Abrechnung verschiedener Google-Produkte unterscheidet sich. Weitere Informationen finden Sie in der Dokumentation Ihrer API.
Zusammenfassung
Da Sie nun wissen, wie Sie Google APIs allgemein aktivieren, rufen Sie den API-Manager auf und aktivieren Sie sowohl die Cloud Translation API als auch den App Engine-Dienst, falls Sie das noch nicht getan haben. Die erste, weil sie von unserer Anwendung verwendet wird, und die zweite, weil Sie eine App Engine-Anwendung bereitstellen. Wenn Sie die Aktivierung lieber über die Befehlszeile vornehmen möchten, geben Sie stattdessen diesen Befehl ein:
gcloud services enable appengine.googleapis.com translate.googleapis.com
Das monatliche Kontingent ist zwar nicht auf der Übersichtsseite der Stufe „Immer kostenlos“ aufgeführt, aber auf der Preisseite der Translation API wird angegeben, dass alle Nutzer monatlich eine feste Anzahl von übersetzten Zeichen erhalten. Wenn Sie unter diesem Grenzwert bleiben, fallen keine Kosten für die API an. Falls weitere Google Cloud-bezogene Kosten anfallen, werden diese am Ende im Abschnitt „Aufräumen“ erläutert.
4. Beispiel-App-Code abrufen
Klonen Sie den Code in dem Repository lokal oder in Cloud Shell (mit dem Befehl git clone
) oder laden Sie die ZIP-Datei über die Schaltfläche Code herunter (siehe folgender Screenshot):
Nachdem Sie alles haben, erstellen Sie eine vollständige Kopie des Ordners für diese Anleitung, da Sie wahrscheinlich Dateien löschen oder ändern müssen. Wenn Sie eine andere Bereitstellung durchführen möchten, können Sie mit dem Kopieren des Originals beginnen, damit Sie es nicht noch einmal klonen oder herunterladen müssen.
5. Beispiel-App ansehen
Die Beispiel-App ist eine einfache Ableitung von Google Übersetzer, bei der Nutzer aufgefordert werden, Text auf Englisch einzugeben und die entsprechende Übersetzung ins Spanische zu erhalten. Öffnen Sie jetzt die Datei main.py
, damit wir sehen können, wie sie funktioniert. Ohne die kommentierten Zeilen zur Lizenzierung sieht das oben und unten so aus:
from flask import Flask, render_template, request
import google.auth
from google.cloud import translate
app = Flask(__name__)
_, PROJECT_ID = google.auth.default()
TRANSLATE = translate.TranslationServiceClient()
PARENT = 'projects/{}'.format(PROJECT_ID)
SOURCE, TARGET = ('en', 'English'), ('es', 'Spanish')
# . . . [translate() function definition] . . .
if __name__ == '__main__':
import os
app.run(debug=True, threaded=True, host='0.0.0.0',
port=int(os.environ.get('PORT', 8080)))
- Durch die Importe werden die Flask-Funktionen, das
google.auth
-Modul und die Cloud Translation API-Clientbibliothek eingebunden. - Die globalen Variablen stehen für die Flask-Anwendung, die Cloud-Projekt-ID, den Translation API-Client, den übergeordneten „Speicherortpfad“ für Translation API-Aufrufe sowie die Quell- und Zielsprachen. In diesem Fall sind das Englisch (
en
) und Spanisch (es
). Sie können diese Werte jedoch in andere Sprachcodes ändern, die von der Cloud Translation API unterstützt werden. - Der große
if
-Block unten wird in der Anleitung zum Lokalen Ausführen dieser App verwendet. Dabei wird der Flask-Entwicklungsserver verwendet, um die App bereitzustellen. Dieser Abschnitt ist auch in den Anleitungen zur Cloud Run-Bereitstellung enthalten, falls der Webserver nicht im Container enthalten ist. Sie werden aufgefordert, das Binden des Servers im Container zu aktivieren. Falls Sie dies übersehen, verwendet der App-Code den Flask-Entwicklungsserver. Bei der App Engine oder Cloud Functions ist das kein Problem, da es sich um quellenbasierte Plattformen handelt, d. h. Google Cloud stellt einen Standardwebserver bereit und verwaltet ihn.
In der Mitte von main.py
befindet sich schließlich das Herzstück der Anwendung, die translate()
-Funktion:
@app.route('/', methods=['GET', 'POST'])
def translate(gcf_request=None):
"""
main handler - show form and possibly previous translation
"""
# Flask Request object passed in for Cloud Functions
# (use gcf_request for GCF but flask.request otherwise)
local_request = gcf_request if gcf_request else request
# reset all variables (GET)
text = translated = None
# if there is data to process (POST)
if local_request.method == 'POST':
text = local_request.form['text']
data = {
'contents': [text],
'parent': PARENT,
'target_language_code': TARGET[0],
}
# handle older call for backwards-compatibility
try:
rsp = TRANSLATE.translate_text(request=data)
except TypeError:
rsp = TRANSLATE.translate_text(**data)
translated = rsp.translations[0].translated_text
# create context & render template
context = {
'orig': {'text': text, 'lc': SOURCE},
'trans': {'text': translated, 'lc': TARGET},
}
return render_template('index.html', **context)
Die Hauptfunktion übernimmt die Nutzereingabe und ruft die Translation API auf, um die eigentliche Arbeit zu erledigen. Sehen wir uns das genauer an:
- Prüfen Sie mithilfe der Variablen
local_request
, ob Anfragen von Cloud Functions stammen. Cloud Functions sendet ein eigenes Flask-Anfrageobjekt, während alle anderen (lokal ausgeführt oder in der App Engine oder Cloud Run bereitgestellt) das Anfrageobjekt direkt von Flask erhalten. - Setzen Sie die grundlegenden Variablen für das Formular zurück. Dies gilt hauptsächlich für GET-Anfragen, da POST-Anfragen Daten enthalten, die diese ersetzen.
- Wenn es sich um eine POST-Anfrage handelt, rufen Sie den zu übersetzenden Text ab und erstellen Sie eine JSON-Struktur, die die API-Metadatenanforderung darstellt. Rufen Sie dann die API auf und greifen Sie auf eine vorherige Version der API zurück, wenn der Nutzer eine ältere Bibliothek verwendet.
- Formatieren Sie die tatsächlichen Ergebnisse (POST) oder keine Daten (GET) im Vorlagenkontext und rendern Sie sie.
Der visuelle Teil der Anwendung befindet sich in der Vorlagendatei index.html
. Es werden alle zuvor übersetzten Ergebnisse angezeigt (ansonsten leer), gefolgt vom Formular, in dem Sie etwas zum Übersetzen eingeben können:
<!doctype html>
<html><head><title>My Google Translate 1990s</title><body>
<h2>My Google Translate (1990s edition)</h2>
{% if trans['text'] %}
<h4>Previous translation</h4>
<li><b>Original</b>: {{ orig['text'] }} (<i>{{ orig['lc'][0] }}</i>)</li>
<li><b>Translated</b>: {{ trans['text'] }} (<i>{{ trans['lc'][0] }}</i>)</li>
{% endif %}
<h4>Enter <i>{{ orig['lc'][1] }}</i> text to translate to <i>{{ trans['lc'][1] }}</i>:</h4>
<form method="POST"><input name="text"><input type="submit"></form>
</body></html>
6. Lokale Pakete/Abhängigkeiten in „lib“ installieren
Wie bereits erwähnt, verwendet die Beispielanwendung das Flask-Micro-Web-Framework und die Clientbibliothek der Google Cloud Translation API für Python. Installieren und aktualisieren Sie pip
und diese beiden Pakete mit dem folgenden pip
- oder pip3
-Befehl:
pip install -t lib -r requirements.txt
Nachdem Sie den obigen Kommentar ausgeführt haben, wird die Installationsausgabe angezeigt, die in etwa so aussehen könnte:
$ pip install -t lib -r requirements.txt DEPRECATION: Python 2.7 reached the end of its life on January 1st, 2020. Please upgrade your Python as Python 2.7 is no longer maintained. pip 21.0 will drop support for Python 2.7 in January 2021. More details about Python 2 support in pip can be found at https://pip.pypa.io/en/latest/development/release-process/#python-2-support pip 21.0 will remove support for this functionality. Collecting flask>=1.1.2 Using cached Flask-1.1.4-py2.py3-none-any.whl (94 kB) Collecting google-cloud-translate>=2.0.1 Using cached google_cloud_translate-2.0.2-py2.py3-none-any.whl (91 kB) Collecting click<8.0,>=5.1 Using cached click-7.1.2-py2.py3-none-any.whl (82 kB) Collecting Jinja2<3.0,>=2.10.1 Using cached Jinja2-2.11.3-py2.py3-none-any.whl (125 kB) Collecting Werkzeug<2.0,>=0.15 Using cached Werkzeug-1.0.1-py2.py3-none-any.whl (298 kB) Collecting itsdangerous<2.0,>=0.24 Using cached itsdangerous-1.1.0-py2.py3-none-any.whl (16 kB) Collecting google-api-core[grpc]<2.0.0dev,>=1.15.0 Downloading google_api_core-1.29.0-py2.py3-none-any.whl (93 kB) |████████████████████████████████| 93 kB 2.1 MB/s Collecting google-cloud-core<2.0dev,>=1.1.0 Using cached google_cloud_core-1.6.0-py2.py3-none-any.whl (28 kB) Collecting MarkupSafe>=0.23 Using cached MarkupSafe-1.1.1-cp27-cp27m-macosx_10_6_intel.whl (17 kB) Collecting protobuf>=3.12.0 Downloading protobuf-3.17.2-cp27-cp27m-macosx_10_9_x86_64.whl (958 kB) |████████████████████████████████| 958 kB 21.6 MB/s Collecting futures>=3.2.0; python_version < "3.2" Using cached futures-3.3.0-py2-none-any.whl (16 kB) Collecting six>=1.13.0 Using cached six-1.16.0-py2.py3-none-any.whl (11 kB) Collecting packaging>=14.3 Using cached packaging-20.9-py2.py3-none-any.whl (40 kB) Collecting googleapis-common-protos<2.0dev,>=1.6.0 Using cached googleapis_common_protos-1.52.0-py2.py3-none-any.whl (100 kB) Collecting requests<3.0.0dev,>=2.18.0 Using cached requests-2.25.1-py2.py3-none-any.whl (61 kB) Collecting google-auth<2.0dev,>=1.25.0 Using cached google_auth-1.30.1-py2.py3-none-any.whl (146 kB) Collecting pytz Using cached pytz-2021.1-py2.py3-none-any.whl (510 kB) Collecting setuptools>=40.3.0 Using cached setuptools-44.1.1-py2.py3-none-any.whl (583 kB) Collecting grpcio<2.0dev,>=1.29.0; extra == "grpc" Using cached grpcio-1.38.0-cp27-cp27m-macosx_10_10_x86_64.whl (3.8 MB) Collecting pyparsing>=2.0.2 Using cached pyparsing-2.4.7-py2.py3-none-any.whl (67 kB) Collecting chardet<5,>=3.0.2 Using cached chardet-4.0.0-py2.py3-none-any.whl (178 kB) Collecting urllib3<1.27,>=1.21.1 Using cached urllib3-1.26.5-py2.py3-none-any.whl (138 kB) Collecting idna<3,>=2.5 Using cached idna-2.10-py2.py3-none-any.whl (58 kB) Collecting certifi>=2017.4.17 Downloading certifi-2021.5.30-py2.py3-none-any.whl (145 kB) |████████████████████████████████| 145 kB 61.1 MB/s Collecting pyasn1-modules>=0.2.1 Using cached pyasn1_modules-0.2.8-py2.py3-none-any.whl (155 kB) Collecting rsa<4.6; python_version < "3.6" Using cached rsa-4.5-py2.py3-none-any.whl (36 kB) Collecting cachetools<5.0,>=2.0.0 Using cached cachetools-3.1.1-py2.py3-none-any.whl (11 kB) Collecting enum34>=1.0.4; python_version < "3.4" Using cached enum34-1.1.10-py2-none-any.whl (11 kB) Collecting pyasn1<0.5.0,>=0.4.6 Using cached pyasn1-0.4.8-py2.py3-none-any.whl (77 kB) Installing collected packages: click, MarkupSafe, Jinja2, Werkzeug, itsdangerous, flask, six, protobuf, futures, pyparsing, packaging, googleapis-common-protos, chardet, urllib3, idna, certifi, requests, pyasn1, pyasn1-modules, rsa, cachetools, setuptools, google-auth, pytz, enum34, grpcio, google-api-core, google-cloud-core, google-cloud-translate ERROR: pip's legacy dependency resolver does not consider dependency conflicts when selecting packages. This behaviour is the source of the following dependency conflicts. matplotlib 1.3.1 requires nose, which is not installed. matplotlib 1.3.1 requires tornado, which is not installed. Successfully installed Jinja2-2.11.3 MarkupSafe-1.1.1 Werkzeug-1.0.1 cachetools-3.1.1 certifi-2021.5.30 chardet-4.0.0 click-7.1.2 enum34-1.1.10 flask-1.1.4 futures-3.3.0 google-api-core-1.29.0 google-auth-1.30.1 google-cloud-core-1.6.0 google-cloud-translate-2.0.2 googleapis-common-protos-1.52.0 grpcio-1.38.0 idna-2.10 itsdangerous-1.1.0 packaging-20.9 protobuf-3.17.2 pyasn1-0.4.8 pyasn1-modules-0.2.8 pyparsing-2.4.7 pytz-2021.1 requests-2.25.1 rsa-4.5 setuptools-44.1.1 six-1.16.0 urllib3-1.26.5
7. Dienst bereitstellen
Führen Sie zum Bereitstellen Ihres Übersetzungsdienstes in der Python 2 App Engine diesen Befehl aus:
gcloud app deploy
Die Ausgabe sollte in etwa so aussehen und einige Vorschläge für die nächsten Schritte enthalten:
$ gcloud app deploy Services to deploy: descriptor: [/private/tmp/nebulous-serverless-python/app.yaml] source: [/private/tmp/nebulous-serverless-python] target project: [PROJECT_ID] target service: [default] target version: [20210422t161025] target url: [https://PROJECT_ID.appspot.com] Do you want to continue (Y/n)? Beginning deployment of service [default]... ╔════════════════════════════════════════════════════════════╗ ╠═ Uploading 1290 files to Google Cloud Storage ═╣ ╚════════════════════════════════════════════════════════════╝ File upload done. Updating service [default]...done. Setting traffic split for service [default]...done. Deployed service [default] to [https://PROJECT_ID.appspot.com] You can stream logs from the command line by running: $ gcloud app logs tail -s default To view your application in the web browser run: $ gcloud app browse
Da Ihre App jetzt weltweit verfügbar ist, sollten Sie sie unter der in der Bereitstellungsausgabe angegebenen URL (mit Ihrer Projekt-ID) aufrufen können:
Probieren Sie es aus, indem Sie etwas übersetzen.
8. Fazit
Glückwunsch! Sie haben gelernt, wie Sie die Cloud Translation API aktivieren, die erforderlichen Anmeldedaten abrufen und eine einfache Webanwendung in der Python 2 App Engine bereitstellen. Weitere Informationen zu dieser Bereitstellung finden Sie in dieser Tabelle im Repository.
Bereinigen
Mit der Cloud Translation API können Sie pro Monat eine bestimmte Anzahl von Zeichen kostenlos übersetzen. Die App Engine hat ebenfalls ein kostenloses Kontingent. Das gilt auch für Cloud Functions und Cloud Run. Wenn einer der beiden Grenzwerte überschritten wird, fallen Gebühren an. Wenn Sie mit dem nächsten Codelab fortfahren möchten, müssen Sie Ihre App nicht beenden.
Wenn Sie jedoch noch nicht bereit sind, mit dem nächsten Tutorial fortzufahren, oder Bedenken haben, dass die gerade bereitgestellte App im Internet gefunden wird, deaktivieren Sie Ihre App Engine-App, löschen Sie Ihre Cloud-Funktion oder deaktivieren Sie Ihren Cloud Run-Dienst, um Kosten zu vermeiden. Wenn Sie bereit sind, mit dem nächsten Codelab fortzufahren, können Sie die Funktion wieder aktivieren. Wenn Sie diese Anwendung oder andere Codelabs nicht weiter verwenden und alles vollständig löschen möchten, können Sie Ihr Projekt beenden.
Außerdem fallen beim Bereitstellen auf einer serverlosen Computing-Plattform von Google Cloud geringe Erstellungs- und Speicherkosten an. Cloud Build und Cloud Storage haben jeweils ein eigenes kostenloses Kontingent. Für mehr Transparenz erstellt Cloud Build Ihr Anwendungs-Image, das dann entweder in der Cloud Container Registry oder in der Artifact Registry, ihrem Nachfolger, gespeichert wird. Das Speichern dieses Bildes beansprucht einen Teil dieses Kontingents, ebenso wie der ausgehende Netzwerktraffic bei der Übertragung dieses Bildes an den Dienst. Möglicherweise leben Sie jedoch in einer Region, in der es keine solche kostenlose Stufe gibt. Achten Sie daher auf Ihre Speichernutzung, um potenzielle Kosten zu minimieren.
9. Zusätzliche Ressourcen
In den folgenden Abschnitten finden Sie zusätzliche Lesematerialien sowie empfohlene Übungen, mit denen Sie Ihr Wissen aus diesem Tutorial erweitern können.
Zusätzliche Studie
Sie haben jetzt einige Erfahrung mit der Translation API gesammelt. Sehen wir uns nun einige weitere Übungen an, um Ihre Fähigkeiten zu erweitern. Ändern Sie unsere Beispielanwendung, um mit dem Lernpfad fortzufahren:
- Schließen Sie alle anderen Versionen dieses Codelabs ab, um den Code lokal auszuführen oder auf serverlosen Computing-Plattformen von Google Cloud bereitzustellen (siehe README des Repos).
- Führen Sie dieses Tutorial mit einer anderen Programmiersprache aus.
- Ändern Sie diese Anwendung, um andere Ausgangs- oder Zielsprachen zu unterstützen.
- Diese Anwendung so aktualisieren, dass Text in mehrere Sprachen übersetzt werden kann; ändern Sie die Vorlagendatei so, dass ein Drop-down-Menü mit unterstützten Zielsprachen angezeigt wird.
Weitere Informationen
Google App Engine
- App Engine-Startseite
- App Engine-Dokumentation
- App Engine Python 3 – Kurzanleitung
- Standarddienstkonten für die App Engine
- Python 2 App Engine (Standard)-Laufzeit
- Python 3 App Engine (Standard)-Laufzeit
- Unterschiede zwischen den App Engine-Laufzeiten (Standard) für Python 2 und Python 3
- App Engine (Standard) – Migrationsanleitung von Python 2 zu Python 3
Google Cloud Functions
- Cloud Functions-Startseite
- Cloud Functions-Dokumentation
- Schnellstart für Python-Cloud Functions
- Standarddienstkonten für Cloud Functions
Google Cloud Run
- Cloud Run-Startseite
- Cloud Run-Dokumentation
- Python Cloud Run-Kurzanleitung
- Standarddienstkonten für Cloud Run
Google Cloud Buildpacks, Container Registry, Artifact Registry
- Ankündigung von Cloud Buildpacks
- Cloud Buildpacks-Repository
- Cloud Artifact Registry-Startseite
- Cloud Artifact Registry-Dokumentation
- Startseite der Cloud Container Registry
- Cloud Container Registry-Dokumentation
Google Cloud Translation und Google ML Kit
- Cloud Translation-Startseite
- Cloud Translation-Dokumentation
- Preisseite der Translation API
- Alle Cloud AI/ML-APIs vom Typ „Baustein“
- Google ML Kit (Subset der Cloud-KI/ML-APIs für Mobilgeräte)
- Google ML Kit Translation API
Andere Google Cloud-Produkte/-Seiten
- Google Cloud Python-Support
- Google Cloud-Clientbibliotheken
- „Immer kostenlos“-Stufe von Google Cloud
- Gesamte Google Cloud-Dokumentation
Python und Flask
Lizenz
Dieses Tutorial ist mit einer Creative Commons Attribution 2.0 Generic License lizenziert, während der Quellcode im Repository unter Apache 2 lizenziert ist.