1. Übersicht
Diese Reihe von Codelabs (selbstgesteuerte, praktische Tutorials) soll Entwicklern helfen, die verschiedenen Optionen für die Bereitstellung ihrer Anwendungen zu verstehen. In diesem Codelab erfahren Sie, wie Sie die Google Cloud Translation API mit Python verwenden und entweder lokal ausführen oder auf einer serverlosen Compute-Plattform in der Cloud (App Engine, Cloud Functions oder Cloud Run) bereitstellen. Die Beispiel-App im Repository dieses Tutorials kann mit nur geringfügigen Konfigurationsänderungen auf mindestens acht verschiedene Arten bereitgestellt werden:
- 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 darum, diese App auf den oben fettgedruckten Plattformen bereitzustellen.
In diesem Kurs lernen Sie, wie Sie
- Google Cloud APIs verwenden, insbesondere die Cloud Translation API (Advanced/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 ist für die lokale Ausführung installiert oder eine serverlose Cloud-Computing-Plattform ist für cloudbasierte Bereitstellungen aktiviert.
- Grundlegende Python-Kenntnisse
- Grundkenntnisse der grundlegenden Betriebssystembefehle
Umfrage
Wie werden Sie diese Anleitung verwenden?
Wie würden Sie Ihre Erfahrung mit Python bewerten?
Wie würden Sie Ihre Erfahrungen mit Google Cloud-Diensten bewerten?
2. Einrichtung und Anforderungen
Umgebung zum selbstbestimmten Lernen einrichten
- 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 eines erstellen.



- Der Projektname ist der Anzeigename für die Teilnehmer dieses Projekts. Es handelt sich um einen String, der nicht von Google APIs verwendet wird und den Sie jederzeit aktualisieren können.
- Die Projekt-ID muss für alle Google Cloud-Projekte eindeutig sein und ist unveränderlich (kann nach der Festlegung nicht mehr geändert werden). In der Cloud Console wird automatisch ein eindeutiger String generiert. Normalerweise ist es nicht wichtig, wie dieser aussieht. In den meisten Codelabs müssen Sie auf die Projekt-ID verweisen (die in der Regel als
PROJECT_IDangegeben wird). Wenn Ihnen die ID nicht gefällt, können Sie eine andere zufällige ID generieren oder eine eigene ID ausprobieren und sehen, ob sie verfügbar ist. Nachdem das Projekt erstellt wurde, wird es „eingefroren“. - Es gibt einen dritten Wert, die Projektnummer, die von einigen APIs verwendet wird. Weitere Informationen zu diesen drei Werten
- Als Nächstes müssen Sie die Abrechnung in der Cloud Console aktivieren, um Cloud-Ressourcen/-APIs verwenden zu können. Die Durchführung dieses Codelabs sollte keine oder nur geringe Kosten verursachen. Wenn Sie Ressourcen herunterfahren möchten, damit nach Abschluss dieses Codelabs keine Gebühren anfallen, folgen Sie den Bereinigungsanweisungen am Ende des Codelabs. Neue Nutzer von Google Cloud kommen für das Programm für kostenlose Testversionen mit einem Guthaben von 300$ infrage.
3. Translation API aktivieren
Für unsere Beispielanwendung aktivieren Sie stattdessen die Cloud Translation API und den App Engine-Dienst. Folgen Sie dazu der unten stehenden Anleitung.
Cloud APIs aktivieren
Einführung
Unabhängig davon, welche Google-API Sie in Ihrer Anwendung verwenden möchten, muss sie aktiviert sein. Im folgenden Beispiel sehen Sie zwei Möglichkeiten, die Cloud Vision API zu aktivieren. Wenn Sie wissen, 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 üblicher, aber einige Entwickler bevorzugen es, alles über die Befehlszeile zu erledigen. Dazu müssen Sie den „Dienstnamen“ einer API nachschlagen. Sie sieht aus wie eine URL: SERVICE_NAME.googleapis.com. Sie finden sie in der Tabelle mit unterstützten Produkten oder können sie programmatisch mit der Google Discovery API abfragen.
Mit diesen Informationen können Sie eine API in Cloud Shell (oder in Ihrer lokalen Entwicklungsumgebung mit dem gcloud-Befehlszeilentool) 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 wird App Engine aktiviert:
gcloud services enable appengine.googleapis.com
Sie können auch mehrere APIs mit einer 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 den API-Manager auf und wählen Sie Bibliothek aus.

Wenn Sie die Cloud Vision API aktivieren möchten, geben Sie „vision“ in die Suchleiste ein. Alles, was mit dem übereinstimmt, was Sie bisher eingegeben haben, wird angezeigt:

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 aufgefordert, ein aktives Rechnungskonto anzugeben. Es ist jedoch wichtig zu beachten, dass einige Google Cloud-Produkte ein kostenloses Kontingent (täglich/monatlich) haben, das Sie überschreiten müssen, damit Gebühren anfallen. Andernfalls wird Ihre Kreditkarte (oder das angegebene Abrechnungsinstrument) nicht belastet.
Nutzer sollten sich vor der Aktivierung die Preisinformationen für jede API ansehen und insbesondere darauf achten, ob es ein kostenloses Kontingent gibt und wie hoch dieses ist. Wenn Sie die Cloud Vision API aktivieren, sollten Sie die Preisinformationen aufrufen. Cloud Vision hat ein kostenloses Kontingent. Solange Sie die Limits insgesamt (innerhalb eines Monats) nicht überschreiten, sollten keine Gebühren anfallen.
Die Preise und kostenlosen Kontingente variieren je nach Google-API. Beispiele:
- Google Cloud/GCP: Die Abrechnung der einzelnen Produkte erfolgt unterschiedlich. In der Regel wird pro vCPU-Zyklus, Speicherverbrauch, Arbeitsspeichernutzung oder Pay-per-Use abgerechnet. Weitere Informationen finden Sie oben im Abschnitt zu kostenlosen Kontingenten.
- Google Maps – bietet eine Reihe von APIs und Nutzern ein kostenloses monatliches Guthaben von 200$.
- Google Workspace-APIs (ehemals G Suite): Die Nutzung ist kostenlos (bis zu bestimmten Limits), da sie durch eine monatliche Workspace-Abogebühr abgedeckt ist. Es erfolgt also keine direkte Abrechnung für die Nutzung der Gmail-, Google Drive-, Kalender-, Docs-, Sheets- und Präsentationen-APIs.
Die Abrechnung für verschiedene Google-Produkte erfolgt unterschiedlich. Weitere Informationen finden Sie in der Dokumentation Ihrer API.
Zusammenfassung
Nachdem Sie nun wissen, wie Sie Google APIs im Allgemeinen aktivieren, rufen Sie den API Manager auf und aktivieren Sie sowohl die Cloud Translation API als auch den App Engine-Dienst (falls noch nicht geschehen). Die Cloud Translation API wird von unserer Anwendung verwendet und der App Engine-Dienst ist erforderlich, da Sie eine App Engine-Anwendung bereitstellen. Wenn Sie die Aktivierung lieber über die Befehlszeile vornehmen möchten, führen Sie stattdessen diesen Befehl aus:
gcloud services enable appengine.googleapis.com translate.googleapis.com
Das monatliche Kontingent ist zwar nicht auf der Übersichtsseite für das „Always Free“-Kontingent aufgeführt, aber auf der Preisseite der Translation API wird angegeben, dass alle Nutzer monatlich eine bestimmte Anzahl von übersetzten Zeichen erhalten. Wenn Sie diesen Grenzwert nicht überschreiten, sollten keine Gebühren für die API anfallen. Andere Google Cloud-bezogene Gebühren werden am Ende im Abschnitt „Bereinigen“ behandelt.
4. Beispiel-App-Code abrufen
Klonen Sie den Code im Repository lokal oder in Cloud Shell (mit dem Befehl git clone) oder laden Sie die ZIP-Datei über die grüne Schaltfläche Code herunter, wie im folgenden Screenshot gezeigt:

Erstellen Sie nun eine vollständige Kopie des Ordners, um diese Anleitung durchzuarbeiten, da die Dateien wahrscheinlich gelöscht oder geändert werden müssen. Wenn Sie ein anderes Deployment durchführen möchten, können Sie von vorn beginnen, indem Sie das Original kopieren. So müssen Sie es nicht noch einmal klonen oder herunterladen.
5. Beispiel-App ansehen
Die Beispiel-App ist eine einfache Google Übersetzer-Variante, in der Nutzer aufgefordert werden, Text auf Englisch einzugeben, um die entsprechende Übersetzung ins Spanische zu erhalten. Öffnen Sie jetzt die Datei main.py, damit wir uns ansehen können, wie sie funktioniert. Wenn die auskommentierten Zeilen zur Lizenzierung weggelassen werden, sieht es 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 Flask-Funktionen, das
google.auth-Modul und die Cloud Translation API-Clientbibliothek eingebunden. - Die globalen Variablen stehen für die Flask-App, die Cloud-Projekt-ID, den Translation API-Client, den übergeordneten „Standortpfad“ 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 aber auch in andere von der Cloud Translation API unterstützte Sprachcodes ändern. - Der große
if-Block unten wird im Tutorial zum lokalen Ausführen dieser App verwendet. Er nutzt den Flask-Entwicklungsserver, um unsere App bereitzustellen. Dieser Abschnitt ist auch für die Tutorials zur Cloud Run-Bereitstellung enthalten, falls der Webserver nicht im Container enthalten ist. Sie werden aufgefordert, das Bündeln des Servers im Container zu aktivieren. Falls Sie dies übersehen, wird für den App-Code der Flask-Entwicklungsserver verwendet. (Es handelt sich nicht um ein Problem mit App Engine oder Cloud Functions, da diese auf Quellcode basieren. Das bedeutet, dass Google Cloud einen Standard-Webserver bereitstellt und ausführt.)
In der Mitte von main.py befindet sich das Herzstück der Anwendung, die Funktion translate():
@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 primäre Funktion übernimmt die Verarbeitung der Nutzereingabe und ruft die Translation API auf, um die eigentliche Arbeit zu erledigen. Sehen wir uns das mal genauer an:
- Prüfen Sie mit 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 App Engine oder Cloud Run bereitgestellt) das Anfrageobjekt direkt von Flask erhalten. - Setzen Sie die grundlegenden Variablen für das Formular zurück. Das gilt hauptsächlich für GET-Anfragen, da POST-Anfragen Daten enthalten, die diese ersetzen.
- Wenn es sich um einen POST handelt, erfassen Sie den zu übersetzenden Text und erstellen Sie eine JSON-Struktur, die die API-Metadatenanforderung darstellt. Rufen Sie dann die API auf und greifen Sie auf eine frühere Version der API zurück, wenn der Nutzer eine ältere Bibliothek verwendet.
- Unabhängig davon müssen die tatsächlichen Ergebnisse (POST) oder keine Daten (GET) in den Vorlagenkontext formatiert und gerendert werden.
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 angeben, was übersetzt werden soll:
<!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 installieren (in „lib“)
Wie bereits erwähnt, verwendet die Beispielanwendung das Flask-Micro-Web-Framework und die Google Cloud Translation API-Clientbibliothek für Python. Installieren und aktualisieren Sie pip sowie dieses Paketpaar mit dem folgenden pip-Befehl (oder pip3-Befehl):
pip install -t lib -r requirements.txt
Nachdem Sie den oben genannten Kommentar ausgeführt haben, wird die Installationsausgabe angezeigt, die in etwa so aussehen kann:
$ 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 den folgenden Befehl aus, um den Übersetzungsdienst in Python 2 App Engine bereitzustellen:
gcloud app deploy
Die Ausgabe sollte so aussehen und einige Aufforderungen 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, sollte sie unter der URL (mit Ihrer Projekt-ID) erreichbar sein, die in der Bereitstellungsausgabe angegeben ist:

Übersetzen Sie etwas, um zu sehen, wie es funktioniert.

8. Fazit
Glückwunsch! Sie haben gelernt, wie Sie die Cloud Translation API aktivieren, die erforderlichen Anmeldedaten abrufen und eine einfache Webanwendung in 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 monatlich eine bestimmte Anzahl von Zeichen kostenlos übersetzen. App Engine hat auch ein kostenloses Kontingent, ebenso wie Cloud Functions und Cloud Run. Wenn eines der beiden überschritten wird, fallen Gebühren an. Wenn Sie mit dem nächsten Codelab fortfahren möchten, müssen Sie die App nicht schließen.
Wenn Sie jedoch noch nicht bereit sind, mit dem nächsten Tutorial fortzufahren, oder Bedenken haben, dass das Internet die gerade bereitgestellte App entdeckt, können Sie Ihre App Engine-App deaktivieren, Ihre Cloud-Funktion löschen oder Ihren Cloud Run-Dienst deaktivieren, um Gebühren zu vermeiden. Wenn Sie mit dem nächsten Codelab fortfahren möchten, können Sie es wieder aktivieren. Wenn Sie diese Anwendung oder andere Codelabs nicht mehr verwenden und alles vollständig löschen möchten, können Sie Ihr Projekt beenden.
Außerdem fallen bei der Bereitstellung auf einer serverlosen Computing-Plattform von Google Cloud geringe Build- 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 Artifact Registry, dem Nachfolger, gespeichert wird. Das Speichern dieses Bildes verbraucht einen Teil dieses Kontingents, ebenso wie der ausgehende Netzwerktraffic beim Übertragen des Bildes an den Dienst. Möglicherweise leben Sie jedoch in einer Region, in der es kein solches kostenloses Kontingent gibt. Achten Sie daher auf Ihre Speichernutzung, um potenzielle Kosten zu minimieren.
9. Zusätzliche Ressourcen
In den folgenden Abschnitten finden Sie zusätzliches Lesematerial sowie empfohlene Übungen, um Ihr Wissen aus diesem Tutorial zu erweitern.
Zusätzliche Studie
Nachdem Sie nun etwas Erfahrung mit der Translation API gesammelt haben, wollen wir einige zusätzliche Übungen machen, um Ihre Fähigkeiten weiter zu verbessern. Um mit dem Lernpfad fortzufahren, ändern Sie unsere Beispiel-App so, dass sie Folgendes ausführt:
- Führen Sie alle anderen Versionen dieses Codelabs aus, um lokal zu arbeiten oder auf serverlosen Compute-Plattformen von Google Cloud bereitzustellen (siehe README des Repositorys).
- Dieses Tutorial in einer anderen Programmiersprache durcharbeiten
- Ändern Sie die Anwendung, um andere Ausgangs- oder Zielsprachen zu unterstützen.
- Aktualisieren Sie diese Anwendung, um Text in mehr als eine Sprache übersetzen zu können. Ä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-Kurzanleitung für Python 3
- Standarddienstkonten für App Engine
- Python 2-Laufzeit für App Engine (Standard)
- Python 3-Laufzeit für App Engine (Standard)
- Unterschiede zwischen den Python 2- und Python 3-Laufzeiten in App Engine (Standard)
- Migrationsleitfaden für App Engine (Standard) von Python 2 zu Python 3
Google Cloud Functions
- Startseite von Cloud Functions
- Cloud Functions-Dokumentation
- Cloud Functions – Schnellstart für Python
- Standarddienstkonten für Cloud Functions
Google Cloud Run
- Cloud Run-Startseite
- Cloud Run-Dokumentation
- Cloud Run-Kurzanleitung für Python
- 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 von Cloud Container Registry
- Cloud Container Registry-Dokumentation
Google Cloud Translation und Google ML Kit
- Cloud Translation-Startseite
- Cloud Translation-Dokumentation
- Preise für die Translation API
- Alle Cloud AI/ML-APIs für „Bausteine“
- Google ML Kit (Teilmenge der Cloud AI/ML-APIs für Mobilgeräte)
- Google ML Kit Translation API
Andere Google Cloud-Produkte/-Seiten
- Google Cloud-Support für Python
- Google Cloud-Clientbibliotheken
- Kostenlose Stufe von Google Cloud
- Gesamte Google Cloud-Dokumentation
Python und Flask
Lizenz
Dieses Tutorial ist unter der Creative Commons Attribution 2.0 Generic License lizenziert, während der Quellcode im Repository unter Apache 2 lizenziert ist.