arrow_back

Cloud Run Functions zum Laden von BigQuery verwenden

Anmelden Teilnehmen
Zugriff auf über 700 Labs und Kurse nutzen

Cloud Run Functions zum Laden von BigQuery verwenden

Lab 45 Minuten universal_currency_alt 5 Guthabenpunkte show_chart Einsteiger
info Dieses Lab kann KI-Tools enthalten, die den Lernprozess unterstützen.
Zugriff auf über 700 Labs und Kurse nutzen

Übersicht

Eine Cloud Run-Funktion ist ein Teil eines Codes, der als Reaktion auf ein Ereignis ausgeführt wird, zum Beispiel eine HTTP-Anfrage, eine Nachricht von einem Messaging-Dienst oder ein Dateiupload. In Ihrer Cloudumgebung gibt es Cloudereignisse. Dazu zählen beispielsweise das Ändern von Daten in einer Datenbank, das Hinzufügen von Dateien zu einem Speichersystem oder das Erstellen einer neuen Instanz einer virtuellen Maschine.

Da Cloud Run-Funktionen ereignisgesteuert sind, werden sie nur ausgeführt, wenn ein Ereignis eintritt. Das macht sie ideal für Aufgaben, die schnell erledigt oder nicht kontinuierlich ausgeführt werden sollen.

In diesem Lab erfahren Sie, wie Sie mit dem Google Cloud SDK eine Cloud Run-Funktion erstellen, bereitstellen und testen, die eine BigQuery-Tabelle lädt.

Aufgaben

  • Cloud Run-Funktion erstellen
  • Cloud Run-Funktion bereitstellen und testen
  • Daten in BigQuery und Cloud Run-Funktionslogs ansehen

Einrichtung und Anforderungen

Für jedes Lab werden Ihnen ein neues Google Cloud-Projekt und die entsprechenden Ressourcen für eine bestimmte Zeit kostenlos zur Verfügung gestellt.

  1. Klicken Sie auf Lab starten. Wenn Sie für das Lab bezahlen müssen, wird ein Pop-up-Fenster geöffnet, in dem Sie Ihre Zahlungsmethode auswählen können. Auf der linken Seite befindet sich der Bereich Details zum Lab mit diesen Informationen:

    • Schaltfläche Google Cloud Console öffnen
    • Restzeit
    • Temporäre Anmeldedaten für das Lab
    • Ggf. weitere Informationen für dieses Lab
  2. Klicken Sie auf Google Cloud Console öffnen (oder klicken Sie mit der rechten Maustaste und wählen Sie Link in Inkognitofenster öffnen aus, wenn Sie Chrome verwenden).

    Im Lab werden Ressourcen aktiviert. Anschließend wird ein weiterer Tab mit der Seite Anmelden geöffnet.

    Tipp: Ordnen Sie die Tabs nebeneinander in separaten Fenstern an.

    Hinweis: Wird das Dialogfeld Konto auswählen angezeigt, klicken Sie auf Anderes Konto verwenden.
  3. Kopieren Sie bei Bedarf den folgenden Nutzernamen und fügen Sie ihn in das Dialogfeld Anmelden ein.

    {{{user_0.username | "Username"}}}

    Sie finden den Nutzernamen auch im Bereich Details zum Lab.

  4. Klicken Sie auf Weiter.

  5. Kopieren Sie das folgende Passwort und fügen Sie es in das Dialogfeld Willkommen ein.

    {{{user_0.password | "Password"}}}

    Sie finden das Passwort auch im Bereich Details zum Lab.

  6. Klicken Sie auf Weiter.

    Wichtig: Sie müssen die für das Lab bereitgestellten Anmeldedaten verwenden. Nutzen Sie nicht die Anmeldedaten Ihres Google Cloud-Kontos. Hinweis: Wenn Sie Ihr eigenes Google Cloud-Konto für dieses Lab nutzen, können zusätzliche Kosten anfallen.
  7. Klicken Sie sich durch die nachfolgenden Seiten:

    • Akzeptieren Sie die Nutzungsbedingungen.
    • Fügen Sie keine Wiederherstellungsoptionen oder Zwei-Faktor-Authentifizierung hinzu (da dies nur ein temporäres Konto ist).
    • Melden Sie sich nicht für kostenlose Testversionen an.

Nach wenigen Augenblicken wird die Google Cloud Console in diesem Tab geöffnet.

Hinweis: Wenn Sie eine Liste der Google Cloud-Produkte und ‑Dienste aufrufen möchten, klicken Sie oben links auf das Navigationsmenü oder geben Sie den Namen des Produkts oder Dienstes in das Feld Suchen ein. Symbol für Navigationsmenü

Google Cloud Shell aktivieren

Google Cloud Shell ist eine virtuelle Maschine, auf der Entwicklertools installiert sind. Sie bietet ein Basisverzeichnis mit 5 GB nichtflüchtigem Speicher und läuft in Google Cloud.

Mit Google Cloud Shell erhalten Sie Befehlszeilenzugriff auf Ihre Google Cloud-Ressourcen.

  1. Klicken Sie in der Cloud Console in der rechten oberen Symbolleiste auf „Cloud Shell öffnen“.

    Hervorgehobenes Cloud Shell-Symbol

  2. Klicken Sie auf Weiter.

Die Bereitstellung und Verbindung mit der Umgebung dauert einen kleinen Moment. Wenn Sie verbunden sind, sind Sie auch bereits authentifiziert und das Projekt ist auf Ihre PROJECT_ID eingestellt. Beispiel:

Hervorgehobene Projekt-ID im Cloud Shell-Terminal

gcloud ist das Befehlszeilentool für Google Cloud. Das Tool ist in Cloud Shell vorinstalliert und unterstützt die Tab-Vervollständigung.

  • Sie können den aktiven Kontonamen mit diesem Befehl auflisten:
gcloud auth list

Ausgabe:

Konten mit Anmeldedaten: - @.com (aktiv)

Beispielausgabe:

Konten mit Anmeldedaten: - google1623327_student@qwiklabs.net
  • Sie können die Projekt-ID mit diesem Befehl auflisten:
gcloud config list project

Ausgabe:

[core] Projekt =

Beispielausgabe:

[core] Projekt = qwiklabs-gcp-44776a13dea667a6 Hinweis: Die vollständige Dokumentation zu gcloud finden Sie in der Übersicht zur gcloud CLI.

Aufgabe 1: APIs aktivieren

In dieser Aufgabe aktivieren Sie die relevanten APIs, bevor Sie die Cloud Run-Funktionen erstellen.

  1. Führen Sie in Cloud Shell den folgenden Befehl aus, um die Variable für die Projekt-ID festzulegen:
export PROJECT_ID=$(gcloud config get-value project)
  1. Führen Sie die folgenden Befehle aus, um die Variable „Region“ festzulegen:
export REGION={{{project_0.default_region | "REGION"}}} gcloud config set compute/region $REGION
  1. Führen Sie die folgenden Befehle aus, um die Konfigurationsvariablen festzulegen:
gcloud config set run/region $REGION gcloud config set run/platform managed gcloud config set eventarc/location $REGION
  1. Führen Sie die folgenden Befehle aus, um alle erforderlichen Dienste zu aktivieren:
gcloud services enable \ artifactregistry.googleapis.com \ cloudfunctions.googleapis.com \ cloudbuild.googleapis.com \ eventarc.googleapis.com \ run.googleapis.com \ logging.googleapis.com \ pubsub.googleapis.com Hinweis: Bei Eventarc kann es einige Minuten dauern, bis alle Berechtigungen an den Dienst-Agent weitergegeben wurden.

Aufgabe 2: Erforderliche Berechtigungen festlegen

In dieser Aufgabe gewähren Sie dem Standarddienstkonto von Compute Engine die Möglichkeit, Eventarc-Ereignisse zu empfangen, und dem Cloud Storage-Dienst-Agent die Berechtigung, Nachrichten in Pub/Sub-Themen zu veröffentlichen. So ermöglichen Sie ereignisgesteuerte Workflows und durch Speicher ausgelöste Aktionen.

  1. Führen Sie in Cloud Shell den folgenden Befehl aus, um die Variable PROJECT_NUMBER festzulegen:
export PROJECT_NUMBER=$(gcloud projects describe $PROJECT_ID --format='value(projectNumber)')
  1. Führen Sie den folgenden Befehl aus, um dem Compute Engine-Standarddienstkonto in Ihrem Projekt die erforderlichen Berechtigungen zum Empfangen von Ereignissen von Eventarc zu gewähren:
gcloud projects add-iam-policy-binding $PROJECT_ID \ --member="serviceAccount:$PROJECT_NUMBER-compute@developer.gserviceaccount.com" \ --role="roles/artifactregistry.reader"
  1. Führen Sie die folgenden Befehle aus, um den Cloud Storage-Dienst-Agent für Ihr Projekt abzurufen und ihm die Berechtigung zum Veröffentlichen von Nachrichten in Pub/Sub-Themen zu gewähren:
SERVICE_ACCOUNT="$(gcloud storage service-agent --project=$PROJECT_ID)" gcloud projects add-iam-policy-binding $PROJECT_ID \ --member="serviceAccount:${SERVICE_ACCOUNT}" \ --role='roles/pubsub.publisher'

Aufgabe 3: Funktion erstellen

In dieser Aufgabe erstellen Sie eine einfache Funktion namens loadBigQueryFromAvro. Diese Funktion liest eine Avro-Datei, die in Cloud Storage hochgeladen wird, und erstellt und lädt dann eine Tabelle in BigQuery.

  1. Führen Sie in Cloud Shell den folgenden Befehl aus, um eine Datei mit dem Namen index.js zu erstellen und zu öffnen:
nano index.js
  1. Kopieren Sie den folgenden Code für die Cloud Functions-Funktion in die Datei index.js:
/** * index.js Cloud Function - Avro on GCS to BQ */ const {Storage} = require('@google-cloud/storage'); const {BigQuery} = require('@google-cloud/bigquery'); const storage = new Storage(); const bigquery = new BigQuery(); exports.loadBigQueryFromAvro = async (event, context) => { try { // Check for valid event data and extract bucket name if (!event || !event.bucket) { throw new Error('Invalid event data. Missing bucket information.'); } const bucketName = event.bucket; const fileName = event.name; // BigQuery configuration const datasetId = 'loadavro'; const tableId = fileName.replace('.avro', ''); const options = { sourceFormat: 'AVRO', autodetect: true, createDisposition: 'CREATE_IF_NEEDED', writeDisposition: 'WRITE_TRUNCATE', }; // Load job configuration const loadJob = bigquery .dataset(datasetId) .table(tableId) .load(storage.bucket(bucketName).file(fileName), options); await loadJob; console.log(`Job ${loadJob.id} completed. Created table ${tableId}.`); } catch (error) { console.error('Error loading data into BigQuery:', error); throw error; } };
  1. Drücken Sie in nano (Strg + X), dann (Y) und dann die Eingabetaste, um die Datei zu speichern.
Funktion erstellen

Aufgabe 4: Cloud Storage-Bucket und BigQuery-Dataset erstellen

In dieser Aufgabe richten Sie die Hintergrundinfrastruktur zum Speichern von Assets ein, die zum Aufrufen der Cloud Run-Funktion verwendet werden (ein Cloud Storage-Bucket). Anschließend speichern Sie die Ausgabe in BigQuery, wenn sie abgeschlossen ist.

  1. Führen Sie in Cloud Shell den folgenden Befehl aus, um einen neuen Cloud Storage-Bucket als Staging-Speicherort zu erstellen:
gcloud storage buckets create gs://$PROJECT_ID --location=$REGION
  1. Führen Sie den folgenden Befehl aus, um ein BQ-Dataset zum Speichern der Daten zu erstellen:
bq mk -d loadavro Cloud Storage-Bucket und BigQuery-Dataset erstellen

Aufgabe 5: Funktion bereitstellen

In dieser Aufgabe stellen Sie die neue Cloud Run-Funktion bereit und lösen sie aus, damit die Daten in BigQuery geladen werden.

  1. Führen Sie in Cloud Shell den folgenden Befehl aus, um die beiden JavaScript-Bibliotheken zu installieren, mit denen Sie Daten aus Cloud Storage lesen und die Ausgabe in BigQuery speichern können:
npm install @google-cloud/storage @google-cloud/bigquery
  1. Führen Sie den folgenden Befehl aus, um die Funktion bereitzustellen:
gcloud functions deploy loadBigQueryFromAvro \ --gen2 \ --runtime nodejs20 \ --source . \ --region $REGION \ --trigger-resource gs://$PROJECT_ID \ --trigger-event google.storage.object.finalize \ --memory=512Mi \ --timeout=540s \ --service-account=$PROJECT_NUMBER-compute@developer.gserviceaccount.com Hinweis: Wenn eine Fehlermeldung zur Weitergabe des Eventarc-Dienst-Agents angezeigt wird, warten Sie einige Minuten und versuchen Sie es dann noch einmal.
  1. Führen Sie den folgenden Befehl aus, um zu prüfen, ob der Trigger erfolgreich erstellt wurde. Die Ausgabe sollte in etwa so aussehen:
gcloud eventarc triggers list --location=$REGION NAME: loadbigqueryfromavro-177311 TYPE: google.cloud.storage.object.v1.finalized DESTINATION: Cloud Functions: loadBigQueryFromAvro ACTIVE: Yes LOCATION: europe-west1
  1. Führen Sie den folgenden Befehl aus, um die Avro-Datei herunterzuladen, die von der Cloud Run-Funktion zur Speicherung in BigQuery verarbeitet wird:
wget https://storage.googleapis.com/cloud-training/dataengineering/lab_assets/idegc/campaigns.avro
  1. Führen Sie den folgenden Befehl aus, um die Avro-Datei in den Cloud Storage-Bucket „staging“ zu verschieben, den Sie zuvor erstellt haben. Dadurch wird die Cloud Run-Funktion ausgelöst:
gcloud storage cp campaigns.avro gs://{{{project_0.project_id |PROJECT_ID}}} Funktion bereitstellen.

Aufgabe 6: Prüfen, ob die Daten in BigQuery geladen wurden

In dieser Aufgabe prüfen Sie, ob die von der Cloud Run-Funktion verarbeiteten Daten erfolgreich in BigQuery geladen wurden. Dazu fragen Sie die Tabelle loadavro.campaigns mit dem Befehl bq ab.

  1. Führen Sie in Cloud Shell den folgenden Befehl aus, um die Daten in der neuen Tabelle in BigQuery mit dem Befehl bq aufzurufen:
bq query \ --use_legacy_sql=false \ 'SELECT * FROM `loadavro.campaigns`;' Hinweis: Die Cloud Run-Funktion wird in der Regel sehr schnell verarbeitet, aber es ist möglich, dass die für BigQuery ausgeführte Abfrage keine Ergebnisse zurückgibt. Warten Sie in diesem Fall einen Moment und führen Sie die Abfrage noch einmal aus.

Die Abfrage sollte Ergebnisse ähnlich den folgenden zurückgeben:

Beispielausgabe:

+------------+--------+---------------------+--------+---------------------+----------+-----+ | created_at | period | campaign_name | amount | advertising_channel | bid_type | id | +------------+--------+---------------------+--------+---------------------+----------+-----+ | 2020-09-17 | 90 | NA - Video - Other | 41 | Video | CPC | 81 | | 2021-01-19 | 30 | NA - Video - Promo | 325 | Video | CPC | 137 | | 2021-06-28 | 30 | NA - Video - Promo | 78 | Video | CPC | 214 | | 2021-03-15 | 30 | EU - Search - Brand | 465 | Search | CPC | 170 | | 2022-01-01 | 30 | EU - Search - Brand | 83 | Search | CPC | 276 | | 2020-02-18 | 30 | EU - Search - Brand | 30 | Search | CPC | 25 | | 2021-06-08 | 30 | EU - Search - Brand | 172 | Search | CPC | 201 | | 2020-11-29 | 60 | EU - Search - Other | 83 | Search | CPC | 115 | | 2021-09-11 | 30 | EU - Search - Other | 86 | Search | CPC | 237 | | 2022-02-17 | 30 | EU - Search - Other | 64 | Search | CPC | 296 | +------------+--------+---------------------+--------+---------------------+----------+-----+

Aufgabe 7: Logs ansehen

In dieser Aufgabe rufen Sie alle Logeinträge ab, die mit Ihrem Dienst namens loadBigQueryFromAvro verknüpft sind.

  1. Führen Sie in Cloud Shell den folgenden Befehl aus, um die Logs für Ihre Cloud Run-Funktion zu prüfen:
gcloud logging read "resource.labels.service_name=loadBigQueryFromAvro"

Die Meldungen im Log sehen in etwa so aus:

resource: labels: configuration_name: loadbigqueryfromavro location: europe-west1 project_id: qwiklabs-gcp-04-16fde64676e4 revision_name: loadbigqueryfromavro-00001-wim service_name: loadbigqueryfromavro type: cloud_run_revision spanId: '5804952652695382607' textPayload: | Job undefined completed. Created table campaigns. timestamp: '2025-03-10T17:24:43.560594Z'

Das wars! Sie haben das Lab erfolgreich abgeschlossen.

Sie haben mit dem Google Cloud SDK eine Cloud Run-Funktion erstellt, bereitgestellt und getestet, die eine BigQuery-Tabelle erstellt und geladen hat.

© 2025 Google LLC. Alle Rechte vorbehalten. Google und das Google-Logo sind Marken von Google LLC. Alle anderen Unternehmens- und Produktnamen können Marken der jeweils mit ihnen verbundenen Unternehmen sein.

Vorbereitung

  1. Labs erstellen ein Google Cloud-Projekt und Ressourcen für einen bestimmten Zeitraum
  2. Labs haben ein Zeitlimit und keine Pausenfunktion. Wenn Sie das Lab beenden, müssen Sie von vorne beginnen.
  3. Klicken Sie links oben auf dem Bildschirm auf Lab starten, um zu beginnen

Privates Surfen verwenden

  1. Kopieren Sie den bereitgestellten Nutzernamen und das Passwort für das Lab
  2. Klicken Sie im privaten Modus auf Konsole öffnen

In der Konsole anmelden

  1. Melden Sie sich mit Ihren Lab-Anmeldedaten an. Wenn Sie andere Anmeldedaten verwenden, kann dies zu Fehlern führen oder es fallen Kosten an.
  2. Akzeptieren Sie die Nutzungsbedingungen und überspringen Sie die Seite zur Wiederherstellung der Ressourcen
  3. Klicken Sie erst auf Lab beenden, wenn Sie das Lab abgeschlossen haben oder es neu starten möchten. Andernfalls werden Ihre bisherige Arbeit und das Projekt gelöscht.

Diese Inhalte sind derzeit nicht verfügbar

Bei Verfügbarkeit des Labs benachrichtigen wir Sie per E-Mail

Sehr gut!

Bei Verfügbarkeit kontaktieren wir Sie per E-Mail

Es ist immer nur ein Lab möglich

Bestätigen Sie, dass Sie alle vorhandenen Labs beenden und dieses Lab starten möchten

Privates Surfen für das Lab verwenden

Nutzen Sie den privaten oder Inkognitomodus, um dieses Lab durchzuführen. So wird verhindert, dass es zu Konflikten zwischen Ihrem persönlichen Konto und dem Teilnehmerkonto kommt und zusätzliche Gebühren für Ihr persönliches Konto erhoben werden.