Courseiva

Cloud Digital Leader Google Cloud Products and Services Practice Question

A company wants to implement a serverless event-driven architecture where object uploads to Cloud Storage trigger a function that processes the file and stores results in Firestore. The function needs to be written in Python. Which three Google Cloud services are required?

⚠ Common exam trap

GCDL often tests whether candidates add Pub/Sub reflexively to any event-driven design; the trap is that Cloud Storage can trigger Cloud Functions directly, so Pub/Sub is not required unless multiple subscribers or decoupling is explicitly needed.

Answer choices

Why each option matters

Answer the question above first, then reveal the full breakdown to understand why each option is right or wrong.

Correct answer & explanation

✓

Cloud Functions

Cloud Functions (B) is correct because it is the serverless compute service that runs the Python function in response to the event, and it natively supports Python runtimes. Cloud Storage (D) is correct because it is the source of the event: object uploads (finalize events) to a bucket trigger the function, typically via an Eventarc or Cloud Storage trigger. Firestore (E) is correct because it is the destination datastore where the function writes the processing results, as required by the scenario. Pub/Sub (A) is not required because Cloud Storage events can trigger Cloud Functions directly without an explicit Pub/Sub topic, and Cloud Build (C) is a CI/CD service for building and deploying code, not a runtime component of this event-driven flow.

Answer analysis

Option-by-option breakdown

For each option: why learners choose it and why it is or isn't the right answer here.

  • ✗

    Pub/Sub

    Why it's wrong here

    Pub/Sub is a fully managed message-oriented middleware for asynchronous communication, but this pipeline does not require it because Cloud Storage natively emits event notifications that can directly invoke Cloud Functions via an Object Finalize trigger. Inserting Pub/Sub between storage and the function would add a message-publishing topic and subscription overhead, which is unnecessary unless you need fan-out, buffering, or delivery guarantees beyond the built-in retry behavior. The function receives the object metadata directly from the event, so Pub/Sub is not a required component for this serverless event-driven design.

  • ✓

    Cloud Functions

    Why this is correct

    Cloud Functions is the serverless compute layer that runs the Python code when a file is uploaded; the Cloud Storage event (object.finalize) triggers the function with event metadata like bucket and object name. It automatically scales to zero when idle, handles the processing synchronously or asynchronously, and integrates seamlessly with GCP services. Since the requirement specifies running Python code in an event-driven way, Cloud Functions is the correct service for executing the logic.

  • ✗

    Cloud Build

    Why it's wrong here

    Cloud Build is a CI/CD platform that executes build steps such as compiling source code, running tests, or packaging containers in ephemeral build environments. It is not a runtime for handling production events; although you could theoretically script a build step to react to storage, that would require continuous polling or a trigger setup that is not designed for low-latency event processing. The event-driven workload here needs a compute service, not a build pipeline, so Cloud Build is both unnecessary and architecturally inappropriate for the runtime processing of uploaded objects.

  • ✓

    Cloud Storage

    Why this is correct

    Cloud Storage is the source of the event and the blob store that holds the uploaded objects; when the Python script finishes its computation, it can also read the object or write results to a different bucket. The bucket supports enabling event notifications with triggers that match object creation or finalize operations, and these notifications carry the metadata needed by the function. As a result, Cloud Storage is a necessary component because it provides the event source and the content that drives the processing.

  • ✓

    Firestore

    Why this is correct

    Firestore is a NoSQL document database that acts as the persistent output layer, storing the records or processed results the Cloud Function writes after the Python logic runs. By storing results in Firestore, downstream applications can query and display the processed data in real time without coupling them to the storage bucket or the function invocation. This makes Firestore a correct part of the architecture for persisting the outcome, complementing Cloud Functions rather than being the compute engine itself.

Quick reference

Cloud Service Model Comparison

ModelYou ManageProvider ManagesExamples
IaaSOS, runtime, apps, dataHardware, hypervisor, networkingEC2, Azure VMs, GCP Compute Engine
PaaSApps and dataOS, runtime, middleware, hardwareElastic Beanstalk, Azure App Service
SaaSData and settings onlyEverything elseMicrosoft 365, Salesforce, Workday
FaaS / ServerlessFunction code onlyInfra, scaling, runtimeLambda, Azure Functions, Cloud Run
CaaSContainers and appsKubernetes, OS, hardwareEKS, AKS, GKE

About these practice questions

One of 848 original GCDL practice questions on Courseiva, each with a full explanation and wrong-answer analysis — not exam dumps or protected exam content. Learn why practice questions differ from exam dumps →

How Courseiva writes practice questions · Editorial policy

JA

Written and reviewed by Johnson Ajibi, MSc IT Security

Senior Network & Security Engineer · founder of Courseiva

Last reviewed September 2026 · checked against the official Google Cloud exam blueprint

This GCDL practice question is part of Courseiva's free Google Cloud certification practice question bank. Courseiva provides original exam-style practice questions with explanations, topic-based practice, mock exams, readiness tracking, and study analytics to help learners prepare for the GCDL exam.