1. Übersicht
Diese Reihe von Codelabs (selbstgesteuerte, praktische Tutorials) soll Entwicklern helfen, die verschiedenen Optionen für die Bereitstellung ihrer Anwendungen zu verstehen. Sie lernen, wie Sie die Google Cloud Translation API in einer einfachen Webanwendung verwenden. Diese App kann lokal ausgeführt oder auf einer serverlosen Cloud-Computing-Plattform (App Engine, Cloud Functions oder Cloud Run) bereitgestellt werden.
In dieser JavaScript-Anleitung verwenden Sie Node.js mit dem Express.js-Webframework. Außerdem erfahren Sie, wie Sie über unsere serverlosen Plattformen auf Google Cloud APIs zugreifen. Alle Versionen dieser App stammen aus dem Open-Source-Repository „nebulous serverless“, das eine Python-Version dieser App und unabhängige Codelabs enthält. Das Repository enthält auch ähnliche Apps, die Entwicklern zeigen, wie sie über unsere serverlosen Plattformen auf Nicht-Cloud-Google-APIs zugreifen können.
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
- Ein Web-Framework, das für die lokale Ausführung installiert ist ( Flask für das Python-Tutorial oder Express für das JavaScript-/Node.js-Tutorial)
- Mindestens eine serverlose Computing-Plattform für Google Cloud-Bereitstellungen aktiviert
- Grundlegende Programmierkenntnisse (Python oder JavaScript/Node.js)
- Grundkenntnisse der grundlegenden Betriebssystembefehle
Umfrage
Wie werden Sie diese Anleitung verwenden?
Wie würden Sie Ihre Erfahrung bei der Entwicklung in Python oder Node.js 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
In diesem Abschnitt erfahren Sie, wie Sie Google-APIs im Allgemeinen aktivieren. Für unsere Beispiel-App aktivieren Sie die Cloud Translation API. Außerdem aktivieren Sie App Engine, Cloud Functions und/oder Cloud Run (sowie Cloud Artifact Registry), je nachdem, auf welcher Plattform Sie die Beispiel-App bereitstellen möchten.
Google APIs aktivieren
Einführung
Unabhängig davon, welche Google-API Sie in Ihrer Anwendung verwenden möchten, muss sie aktiviert sein. APIs können über die Befehlszeile oder über die Cloud Console aktiviert werden. Das Aktivieren von APIs erfolgt immer auf dieselbe Weise. Wenn Sie also eine API aktiviert haben, können Sie eine andere auf dieselbe Weise aktivieren.
Option 1:gcloud Befehlszeile (Cloud Shell oder lokale Umgebung)
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
Beispiel 1:Cloud Vision API aktivieren
gcloud services enable vision.googleapis.com
Beispiel 2:Google App Engine aktivieren
gcloud services enable appengine.googleapis.com
Beispiel 3:Mehrere APIs mit einer Anfrage aktivieren. Wenn die Zuschauer in diesem Codelab beispielsweise eine App mit der Cloud Translation API in App Engine, Cloud Functions und Cloud Run bereitstellen, lautet die Befehlszeile:
gcloud services enable appengine.googleapis.com cloudfunctions.googleapis.com artifactregistry.googleapis.com run.googleapis.com translate.googleapis.com
Mit diesem Befehl werden App Engine, Cloud Functions, Cloud Run und die Cloud Translation API aktiviert. Außerdem wird die Cloud Artifact Registry aktiviert, da Container-Images vom Cloud Build-System registriert werden müssen, um in Cloud Run bereitgestellt zu werden.
Option 2: Cloud Console
Sie können die Google-APIs auch im API Manager aktivieren. Rufen Sie in der Cloud Console den API-Manager auf und wählen Sie Bibliothek aus.

Geben Sie den Namen einer API in die Suchleiste ein, um die entsprechenden Ergebnisse zu sehen:

Wählen Sie die API aus, die Sie aktivieren möchten, und klicken Sie auf die Schaltfläche Aktivieren:

Das Aktivieren aller APIs ist ähnlich, unabhängig davon, welche Google API Sie verwenden möchten.
Kosten
Viele Google-APIs können kostenlos verwendet werden. Für die meisten Google Cloud-Produkte und ‑APIs fallen jedoch Kosten an. Wenn Sie Cloud APIs aktivieren, werden Sie möglicherweise aufgefordert, ein aktives Rechnungskonto anzugeben. Für einige Google Cloud-Produkte gibt es jedoch eine kostenlose Stufe, die Sie überschreiten müssen, damit Abrechnungsgebühren anfallen.
Neue GCP-Nutzer können die kostenlose Testversion nutzen, die derzeit ein Guthaben von 300 $für die ersten 90 Tage umfasst. Für Codelabs fallen in der Regel keine oder nur geringe Kosten an. Wir empfehlen Ihnen daher, mit der kostenlosen Testphase zu warten, bis Sie sie wirklich nutzen möchten, da es sich um ein einmaliges Angebot handelt. Die Kontingente für die Kostenlose Stufe laufen nicht ab und gelten unabhängig davon, ob Sie den kostenlosen Testzeitraum nutzen oder nicht.
Nutzer sollten sich die Preisinformationen für jede API ansehen, bevor sie sie aktivieren (z. B. die Seite Cloud Vision API-Preise ). Dabei sollten sie insbesondere darauf achten, ob es ein kostenloses Kontingent gibt und wie hoch es ist. Solange Sie die angegebenen täglichen oder monatlichen Grenzwerte insgesamt nicht überschreiten, sollten keine Gebühren anfallen. Die Preise und kostenlosen Stufen variieren je nach API der Google-Produktgruppe. Beispiele:
- Google Cloud/GCP: Die Abrechnung erfolgt für jedes Produkt separat und in der Regel nach dem Pay-per-Use-Modell. Informationen zur kostenlosen Stufe finden Sie oben.
- Google Maps – bietet eine Reihe von APIs und Nutzern ein kostenloses monatliches Guthaben von 200$.
- Google Workspace-APIs (ehemals G Suite): Die Nutzung (bis zu bestimmten Limits) ist durch eine monatliche Workspace-Abogebühr abgedeckt. Es erfolgt also keine direkte Abrechnung für die Nutzung von APIs für Anwendungen wie Gmail, Google Drive, Google Kalender, Google Docs, Google Sheets oder Google Präsentationen.
Die Abrechnung für die verschiedenen Google-Produkte erfolgt unterschiedlich. Sehen Sie daher in der entsprechenden Dokumentation nach.
Gewünschte Dienste aktivieren
Achten Sie darauf, dass die Cloud Translation API wie oben beschrieben im API Manager aktiviert ist. Wenn Sie die serverlosen Plattformen nicht über die Befehlszeile aktiviert haben, können Sie dies über die jeweiligen Dashboards in der Cloud Console tun: App Engine, Cloud Functions, Cloud Run.
Das Aktivieren von APIs über die Cloud Console ist zwar visuell informativ, aber die Verwendung des gcloud-Tools ist schneller, da es nur wenige Sekunden dauert, alle Dienste zu aktivieren:
$ gcloud services enable appengine.googleapis.com \ cloudfunctions.googleapis.com artifactregistry.googleapis.com \ run.googleapis.com translate.googleapis.com Operation "operations/acf.p2-xxxxxx035451-704918f2-5470-4436-9bdd-c3b204yyyyyy" finished successfully.
Weitere Informationen zu Kosten
Der obige Abschnitt zu Kosten gilt allgemein für alle Google-APIs. Sehen wir uns die Details für diese Anleitung genauer an. 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. Weitere Informationen zu den Kosten bei Verwendung serverloser Google Cloud-Plattformen finden Sie im Abschnitt „Kosten“ des Repositorys. Im Abschnitt „Bereinigen“ am Ende wird erläutert, wie Sie nach Abschluss dieses Codelabs weitere Abrechnungen vermeiden können.
4. Beispiel-App-Code abrufen
ZIP-Datei herunterladen oder Repository klonen
- Laden Sie die ZIP-Datei herunter oder klonen Sie das Repository mit
git clone https://github.com/googlecodelabs/cloud-nebulous-serverless.git. - Wenn Sie keine lokale Entwicklungsumgebung haben und diese Anleitung in Cloud Shell durchführen möchten, können Sie das Repository dort mit demselben
git clone-Befehl klonen. - Sie können auch über die grüne Schaltfläche Code auf die ZIP-Datei zugreifen, 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. Node.js-Umgebung bestätigen
So richten Sie Ihre Node.js-Umgebung ein:
- Prüfen Sie, ob die aktuellen Versionen von Node (>=10) und NPM (>=6) installiert sind.
- Wechseln Sie zu dem Ort, an dem Sie das Repository geklont oder die ZIP-Datei entpackt haben, und rufen Sie den Ordner
cloud/nodejsauf. - Prüfen Sie, ob
package.jsonvorhanden ist, und führen Sie dannnpm installaus.
Für Punkt 1 oben können Sie über die Befehlszeile prüfen, welche Versionen Sie haben:
$ node -v v17.0.1 $ npm -v 8.1.0
6. Beispiel-App durchgehen
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.
Die Konfigurationsdatei package.json gibt an, welche Drittanbieterpakete für die Anwendung erforderlich sind. Die Paketversionen können sich von den hier aufgeführten unterscheiden:
{
"name": "cloud-nebulous-serverless-nodejs",
"version": "0.0.1",
"description": "Nebulous Serverless sample app",
"main": "index.js",
"scripts": {
"start": "node index.js",
"test": "mocha test/test_neb.js"
},
"author": "Google LLC",
"license": "Apache-2.0",
"dependencies": {
"@google-cloud/translate": "^6.3.1",
"express": "^4.17.1",
"nunjucks": "^3.2.3"
},
"devDependencies": {
"mocha": "^9.1.3",
"supertest": "^6.1.6"
}
}
Öffnen Sie jetzt die Datei index.js, damit wir uns ansehen können, wie sie funktioniert. Wenn die auskommentierten Zeilen zur Lizenzierung weggelassen werden, sieht es oben und unten so aus:
const express = require('express');
const nunjucks = require('nunjucks');
const {TranslationServiceClient} = require('@google-cloud/translate');
const app = express();
app.use(express.urlencoded({extended: true}));
nunjucks.configure('templates', {autoescape: true, express: app});
const TRANSLATE = new TranslationServiceClient();
const PORT = process.env.PORT || 8080;
const SOURCE = ['en', 'English'];
const TARGET = ['es', 'Spanish'];
let parent;
TRANSLATE.getProjectId().then(result => {
parent = `projects/${result}`;
});
if (!process.env.FUNCTION_TARGET) {
app.listen(PORT, () =>
console.log(`Listening on port ${PORT}`)
);
}
# . . . [translate() function definition] . . .
app.all('/', translate);
module.exports = {
app
};
- Die
requires bieten Framework- und Templating-Funktionen sowie die Cloud Translation API-Clientbibliothek. - Die globalen Variablen stehen für die Web-App, die Cloud-Projekt-ID, den Translation API-Client, den übergeordneten „Standortpfad“ für Translation API-Aufrufe sowie die Sprachen
SOURCEundTARGET. 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. - Das erste Element jedes Paars (
SOURCEundTARGET) ist der Sprachcode, das zweite der Sprachname. Letzterer wird nur zu Anzeigezwecken verwendet, da er für die API irrelevant ist. - Die wenigen Zeilen unten dienen dazu, alle HTTP-Anfragen an
translate()zu senden und dann das Anwendungsobjektappzu exportieren.
In der Mitte von index.js befindet sich das Herzstück der Anwendung, die Funktion translate():
async function translate(req, rsp) {
let text = null;
let translated = null;
if (req.method === 'POST') {
text = req.body.text.trim();
if (text) {
const data = {
contents: [text],
parent: parent,
targetLanguageCode: TARGET[0]
};
const [response] = await TRANSLATE.translateText(data);
translated = response.translations[0].translatedText;
}
}
const context = {
orig: {text: text, lc: SOURCE},
trans: {text: translated, lc: TARGET}
};
rsp.render('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:
- 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, falls er nicht leer ist, eine JSON-Struktur, die die API-Metadatenanforderung darstellt. Rufen Sie dann die API für den Dienst auf.
- Wir haben
SOURCE[0]nicht an die API für eine bestimmte englische Quelle übergeben. Wenn Sie die Ausgangssprache weglassen, fordern Sie die API auf, die Ausgangssprache automatisch zu erkennen (siehesourceLanguageCodein der Dokumentation). - 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>
<style>
body {
font-family: Verdana, Helvetica, sans-serif;
background-color: #DDDDDD;
}
</style>
<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>
Für den Rest des Tutorials können Sie eine oder alle vier Optionen zum Bereitstellen und Ausführen dieser App auswählen. Alle Bereitstellungen sind optional.
- Dienst lokal ausführen
- In App Engine (Standardumgebung) bereitstellen
- In Cloud Functions bereitstellen
- In Cloud Run bereitstellen
7. OPTION 1: Dienst lokal ausführen
Dieser Abschnitt des Codelabs ist nur für die lokale Ausführung vorgesehen. Wenn Sie nur in der Cloud bereitstellen, fahren Sie mit dem nächsten Abschnitt fort.
Um die Beispielanwendung lokal auszuführen, sind drei Schritte erforderlich:
- Dienstkonto erstellen
- Schlüsselpaar mit öffentlichem und privatem Schlüssel für ein Dienstkonto erstellen
- Anmeldedatendatei herunterladen und mit Anwendungscode bündeln
- Dienst starten
Weitere Informationen zu Dienstkonten
Dienstkonten sind der Sicherheitsmechanismus für den Zugriff auf Google APIs für cloudbasierte Anwendungen, wenn auf Daten zugegriffen wird, die nicht zu menschlichen Nutzern gehören. Um die Einarbeitungszeit für Nutzer in der Cloud zu verkürzen, stellen alle Google Cloud-Compute-Plattformen (serverlos und andere) Standarddienstkonten bereit.
Standarddienstkonten haben eine Vielzahl von Berechtigungen, um „bürokratische Hürden“ zu überwinden. Wenn Sie jedoch einen Produktionsdienst starten möchten, empfehlen wir dringend, die Best Practice „geringste Berechtigungen“ zu befolgen und nutzerverwaltete Dienstkonten zu erstellen, die nur die Berechtigungen haben, die für die ordnungsgemäße Funktion Ihrer App erforderlich sind. Unabhängig davon gibt es keine Standarddienstkonten für lokale Bereitstellungen. Sie müssen also ein Dienstkonto und einen Dienstkontoschlüssel (eigentlich ein Paar aus öffentlichem und privatem Schlüssel) erstellen und diese Anmeldedaten für den Anwendungscode verfügbar machen.
Dienstkonto-Schlüsselpaar erstellen und Anmeldedatendatei herunterladen
Folgen Sie der Anleitung auf dieser Seite, um ein Dienstkonto und ein Schlüsselpaar mit öffentlichem und privatem Schlüssel für die lokale Ausführung zu erstellen. Beim Erstellen des Dienstkontoschlüssels werden Sie aufgefordert, die gewünschten Berechtigungen anzugeben. Achten Sie darauf, roles/cloudtranslate.user auszuwählen, damit Sie erfolgreich auf die API zugreifen können.
Nachdem Ihr Schlüsselpaar erfolgreich erstellt wurde, werden Sie aufgefordert, die Dienstkontoschlüsseldatei herunterzuladen. Nennen Sie sie credentials.json und verschieben Sie sie in den Ordner auf oberster Ebene der Anwendung. Jetzt müssen Sie dem Cloud SDK mitteilen, dass es diese Anmeldedaten verwenden soll. Legen Sie dazu die Umgebungsvariable GOOGLE_APPLICATION_CREDENTIALS so fest, dass sie auf diese Datei verweist. Weitere Informationen zu diesem Prozess
Dienst starten
Wenn Sie bereit sind fortzufahren, starten Sie den Express-Server lokal mit dem folgenden Befehl:
$ npm start > cloud-nebulous-serverless-nodejs@0.0.1 start > node index.js Listening on port 8080
Rufen Sie in Ihrem Webbrowser localhost:8080 auf. Sie sollten dann etwa Folgendes sehen:

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

Wenn Sie zufrieden sind, beenden Sie den Server mit ^C (Strg+C) und schließen Sie das Fenster. Herzlichen Glückwunsch zur erfolgreichen lokalen Bereitstellung. Die gute Nachricht: Die Bereitstellung in der Cloud ist viel einfacher.
Fehlerbehebung
Erhalten Sie eine Fehlermeldung wie diese, wenn Sie eine Übersetzung anfordern?
node:fs:2486
handleErrorFromBinding(ctx);
^
Error: The file at credentials.json does not exist, or it is not a file. ENOENT: no such file or directory, lstat '/tmp/nodejs/credentials.json'
. . .
LÖSUNG: Dieser Fehler bedeutet, dass Sie die Erstellung eines Dienstkontos und das Herunterladen der Datei mit dem öffentlichen/privaten Schlüsselpaar credentials.json nicht abgeschlossen haben. Gehen Sie zurück zu OPTION 1: Dienst lokal ausführen und führen Sie diesen Vorgang aus. Installieren Sie die Anmeldedaten im Hauptordner, bevor Sie fortfahren.
8. OPTION 2: In der App Engine-Standardumgebung bereitstellen
Dieser Abschnitt des Codelabs gilt nur für die Bereitstellung in Node App Engine. Wenn Sie kein Interesse haben, fahren Sie mit dem nächsten Abschnitt fort.
Bei dieser Bereitstellung wird die Konfigurationsdatei app.yaml verwendet, in der mit einer einzigen Zeile angegeben wird, welche Laufzeit in App Engine verwendet werden soll:
runtime: nodejs16
Die Datei app.yaml wird weder von Cloud Functions noch von Cloud Run verwendet. Wenn Sie nicht vorhaben, App Engine zu verwenden, kann diese Datei gefahrlos gelöscht werden. Wenn Sie bereit sind, die Anwendung in App Engine bereitzustellen, führen Sie diesen Befehl aus:
$ gcloud app deploy
Nachdem eine Region ausgewählt wurde, ist die gcloud app deploy-Ausgabe viel weniger ausführlich und sollte so aussehen:
Services to deploy: descriptor: [/private/tmp/nodejs/app.yaml] source: [/private/tmp/nodejs] target project: [PROJECT_ID] target service: [default] target version: [2021...] target url: [https://PROJECT_ID.REG_ABBR.appspot.com] target service account: [App Engine default service account] Do you want to continue (Y/n)? Beginning deployment of service [default]... ╔════════════════════════════════════════════════════════════╗ ╠═ Uploading 2 files to Google Cloud Storage ═╣ ╚════════════════════════════════════════════════════════════╝ File upload done. Updating service [default]...⠏WARNING: *** Improve build performance by generating and committing package-lock.json. Updating service [default]...done. Setting traffic split for service [default]...done. Deployed service [default] to [https://PROJECT_ID.REG_ABBR.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 To take a quick anonymous survey, run: $ gcloud survey
Ihre App ist jetzt weltweit verfügbar. Sie sollte über die URL mit Ihrer Projekt-ID erreichbar sein. Die Ausgabe sollte der lokalen Express-Version ähneln, aber sie wird in der Cloud ausgeführt und ist weltweit verfügbar:

Wenn Sie eine Anfrage senden, funktioniert sie wie alle anderen Bereitstellungen.
9. OPTION 3: In Cloud Functions bereitstellen
Dieser Abschnitt des Codelabs ist nur für die Bereitstellung in Node Cloud Functions vorgesehen. Wenn Sie kein Interesse haben, fahren Sie mit dem nächsten Abschnitt fort.
Für Cloud Functions gibt es keine Konfigurationsdateien. Wenn Sie die Bereitstellung in Cloud Functions vornehmen möchten, führen Sie diesen Befehl aus:
$ gcloud functions deploy translate \ --runtime nodejs16 \ --entry-point app \ --trigger-http \ --region REGION \ --allow-unauthenticated
Ihr GCP-Projekt hat möglicherweise eine Standard-REGION, aber Sie können das Flag --region verwenden, um Ihre Funktion in einer bestimmten Region bereitzustellen. Bei Cloud Functions werden Sie nicht wie bei anderen Cloud-Produkten aufgefordert, die Nutzungsbedingungen zu akzeptieren. Unabhängig davon, welche Region Sie auswählen, sollte die gcloud functions deploy-Ausgabe so aussehen:
Deploying function (may take a while - up to 2 minutes)...⠛ For Cloud Build Logs, visit: https://console.cloud.google.com/cloud-build/builds;region=REGION/15ac7fc1-731d-4f3b-bc15-8f2614xxxxxx?project=062269xxxxxx Deploying function (may take a while - up to 2 minutes)...done. availableMemoryMb: 256 buildId: aaf7e0cd-fbbd-4624-abeb-3e7437xxxxxx buildName: projects/062269xxxxxx/locations/REGION/builds/aaf7e0cd-fbbd-4624-abeb-3e7437xxxxxx entryPoint: app httpsTrigger: securityLevel: SECURE_OPTIONAL url: https://REGION-PROJECT_ID.cloudfunctions.net/translate ingressSettings: ALLOW_ALL labels: deployment-tool: cli-gcloud name: projects/PROJECT_ID/locations/REGION/functions/translate runtime: nodejs16 serviceAccountEmail: PROJECT_ID@appspot.gserviceaccount.com sourceUploadUrl: https://storage.googleapis.com/gcf-upload-REGION-01de94c2-6eb4-4c49-aaff-09276cdb7ae9/a1db9f2d-3511-414b-aeeb-de6042xxxxxx.zip status: ACTIVE timeout: 60s updateTime: '2021...' versionId: '...'
Ihre App ist jetzt weltweit verfügbar. Sie sollte unter der URL mit Ihrer Projekt-ID erreichbar sein, wie in der Bereitstellungsausgabe (unter httpsTrigger/url) angegeben. Die URL sollte etwa so aussehen: https://REGION-PROJECT_ID.cloudfunctions.net/translate. Sie variiert je nach der von Ihnen ausgewählten Region und Ihrer Cloud-Projekt-ID.

10. OPTION 4: In Cloud Run bereitstellen
Dieser Abschnitt des Codelabs gilt nur für die Bereitstellung in Cloud Run. Wenn Sie kein Interesse haben, fahren Sie mit dem nächsten Abschnitt fort.
Für Cloud Run gibt es keine Konfigurationsdateien. Wenn Sie die Bereitstellung in Cloud Run vorbereitet haben, folgen Sie der Anleitung unten.
Jetzt können Sie Ihren Übersetzungsdienst in Cloud Run bereitstellen, indem Sie den folgenden Befehl ausführen:
$ gcloud run deploy translate --source . --allow-unauthenticated --platform managed
Die Ausgabe sollte so aussehen und einige Aufforderungen für die nächsten Schritte enthalten:
Please specify a region: [1] asia-east1 [2] asia-east2 . . . (other regions) . . . [28] us-west4 [29] cancel Please enter your numeric choice: REGION_CHOICE To make this the default region, run `gcloud config set run/region REGION`. Deploying from source requires an Artifact Registry repository to store build artifacts. A repository named [cloud-run-source-deploy] in region [REGION] will be created. Do you want to continue (Y/n)? This command is equivalent to running "gcloud builds submit --pack image=[IMAGE] ." and "gcloud run deploy translate --image [IMAGE]" Building . . . and deploying container to Cloud Run service [translate] in project [PROJECT_ID] region [REGION] ✓ Building and deploying... Done. ✓ Creating Container Repository... ✓ Uploading sources... ✓ Building Container... Logs are available at [https://console.cloud.google.com/cloud-build/builds/60e1b 9bb-b991-4b4e-8d8a-HASH?project=PROJECT_NUMBER]. ✓ Creating Revision... ✓ Routing traffic... ✓ Setting IAM Policy... Done. Service [translate] revision [translate-00001-xyz] has been deployed and is serving 100 percent of traffic. Service URL: https://SVC_NAME-HASH-REG_ABBR.a.run.app
Cloud Buildpacks erstellt Ihre Apps für Cloud Run, ähnlich wie wenn Sie Ihre App lokal ausführen. Für Node.js-Nutzer werden npm install und npm start ausgeführt. Bei Python wird pip install -r requirements.txt ausgeführt und die App wird anhand der Anweisungen in Ihrer Procfile gestartet. Das Gleiche gilt für alle anderen von Cloud Buildpacks unterstützten Sprachen. Ihre App ist einsatzbereit, sobald der Build-Prozess abgeschlossen ist.
Ihre App wird dann regional bereitgestellt, ist aber global verfügbar und kann unter der URL aufgerufen werden, die Ihre Projekt-ID enthält, wie in der Bereitstellungsausgabe unter „Service URL:“ gezeigt wird.

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

11. Fazit
Glückwunsch! Sie haben gelernt, wie Sie die Cloud Translation API aktivieren und verwenden, die erforderlichen Anmeldedaten abrufen und eine einfache Webanwendung lokal in Express, in App Engine, Cloud Functions und/oder Cloud Run bereitstellen. Weitere Informationen und Zugriff auf andere Versionen dieser App sowie auf andere Codelabs finden Sie im Repo-Ordner.
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.
12. 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
Google Cloud Functions
- Startseite von Cloud Functions
- Cloud Functions-Dokumentation
- Standarddienstkonten für Cloud Functions
Google 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
- Cloud Translation API-Clientbibliotheken (alle Entwicklungssprachen)
- Von der Cloud Translation API unterstützte (gesprochene/geschriebene) Sprachen
- 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-Clientbibliotheken
- Kostenlose Stufe von Google Cloud
- Gesamte Google Cloud-Dokumentation
Python-Links
- App Engine-Kurzanleitung für Python 3
- 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
- Cloud Functions – Schnellstart für Python
- Cloud Run-Kurzanleitung für Python
- Google Cloud-Support für Python
- Flask
Node.js-Links
- App Engine-Kurzanleitung für Node.js
- Node.js-Laufzeit für App Engine (Standard)
- Cloud Functions – Schnellstart für Node.js
- Cloud Run-Kurzanleitung für Node.js
- Google Cloud-Node.js-Support
- Express
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.