Bird
Raised Fist0
GCPcloud~10 mins

Pub/Sub with Cloud Functions integration in GCP - Step-by-Step Execution

Choose your learning style10 modes available
Process Flow - Pub/Sub with Cloud Functions integration
Message Published to Topic
↓
Pub/Sub Topic Receives Message
↓
Cloud Function Triggered by Topic
↓
Cloud Function Executes Code
↓
Process Message & Perform Action
↓
Function Completes Execution
A message is sent to a Pub/Sub topic, which triggers a Cloud Function subscribed to that topic. The function runs code to process the message.
Execution Sample
GCP
def pubsub_trigger(event, context):
    message = event['data']
    print(f"Received message: {message}")
This Cloud Function runs when a Pub/Sub message arrives, printing the message content.
Process Table
StepEvent ReceivedMessage DataFunction ActionOutput
1Message published to topicHello, Cloud!Trigger functionFunction starts
2Function triggeredHello, Cloud!Decode messageMessage decoded
3Function runningHello, Cloud!Print messageOutput: Received message: Hello, Cloud!
4Function completesHello, Cloud!End executionFunction ends
💡 Function completes after processing the Pub/Sub message
Status Tracker
VariableStartAfter Step 2After Step 3Final
event['data']NoneHello, Cloud!Hello, Cloud!Hello, Cloud!
messageNoneHello, Cloud!Hello, Cloud!Hello, Cloud!
Key Moments - 2 Insights
Why does the function trigger automatically when a message is published?
Because the Cloud Function is configured to listen to the Pub/Sub topic, so any new message triggers it automatically as shown in execution_table step 1 and 2.
What is the format of the message received inside the function?
The message is base64-encoded in the event data, so the function decodes it before use, as seen in execution_table step 2.
Visual Quiz - 3 Questions
Test your understanding
Look at the execution table, what is the function output at step 3?
AFunction starts
BMessage decoded
COutput: Received message: Hello, Cloud!
DFunction ends
💡 Hint
Check the 'Output' column at step 3 in the execution_table
At which step does the function decode the message data?
AStep 1
BStep 2
CStep 3
DStep 4
💡 Hint
Look at the 'Function Action' column in execution_table for decoding
If the message data was empty, what would change in the variable_tracker?
Amessage variable would be None or empty after step 2
Bmessage variable would still be 'Hello, Cloud!'
Cevent['data'] would have a value
DNo change in variables
💡 Hint
Refer to variable_tracker rows for 'message' and 'event["data"]' values
Concept Snapshot
Pub/Sub sends messages to topics.
Cloud Functions can subscribe to these topics.
When a message arrives, the function triggers automatically.
The function receives event data with the message.
Decode and process the message inside the function.
Function completes after processing.
Full Transcript
In this concept, a message is published to a Pub/Sub topic. This triggers a Cloud Function that is subscribed to that topic. The function receives the event containing the message data, decodes it, and processes it. The execution table shows each step: message publishing, function triggering, decoding, printing the message, and function completion. Variables like 'message' hold the decoded data throughout execution. Key points include automatic triggering by Pub/Sub and decoding the base64 message data. The visual quiz tests understanding of these steps and variable changes.

Practice

(1/5)
1.

What is the main role of Google Cloud Pub/Sub when integrated with Cloud Functions?

easy
A. To send messages that trigger Cloud Functions automatically
B. To store large files for Cloud Functions to process
C. To provide a user interface for Cloud Functions
D. To manage user authentication for Cloud Functions

Solution

  1. Step 1: Understand Pub/Sub's purpose

    Pub/Sub is designed to send messages between parts of an app, acting as a messenger.
  2. Step 2: Connect Pub/Sub with Cloud Functions

    Cloud Functions run code automatically when they receive messages from Pub/Sub.
  3. Final Answer:

    To send messages that trigger Cloud Functions automatically -> Option A
  4. Quick Check:

    Pub/Sub triggers Cloud Functions [OK]
Hint: Pub/Sub sends messages; Cloud Functions react to them [OK]
Common Mistakes:
  • Thinking Pub/Sub stores files
  • Confusing Pub/Sub with UI or authentication
  • Assuming Cloud Functions manage user login
2.

Which of the following is the correct way to specify a Pub/Sub trigger in a Cloud Function deployment command?

gcloud functions deploy myFunction --trigger-?
easy
A. --trigger-http my-topic
B. --trigger-bucket my-topic
C. --trigger-topic my-topic
D. --trigger-event my-topic

Solution

  1. Step 1: Identify the trigger type for Pub/Sub

    Pub/Sub triggers require specifying the topic name with --trigger-topic.
  2. Step 2: Match the correct flag

    --trigger-topic is the correct flag; others relate to storage or HTTP triggers.
  3. Final Answer:

    --trigger-topic my-topic -> Option C
  4. Quick Check:

    Pub/Sub trigger uses --trigger-topic [OK]
Hint: Pub/Sub triggers use --trigger-topic flag [OK]
Common Mistakes:
  • Using --trigger-bucket which is for Cloud Storage
  • Using --trigger-http which is for HTTP triggers
  • Confusing event triggers with topic triggers
3.

Given this Cloud Function code triggered by Pub/Sub messages, what will be logged when a message with data "Hello" is published?

def hello_pubsub(event, context):
    import base64
    message = base64.b64decode(event['data']).decode('utf-8')
    print(f"Received message: {message}")
medium
A. Received message: event['data']
B. Received message: Hello
C. Received message: b'Hello'
D. Error: 'data' key missing

Solution

  1. Step 1: Decode the Pub/Sub message data

    The message data is base64 encoded; decoding it gives the original string "Hello".
  2. Step 2: Print the decoded message

    The print statement outputs "Received message: Hello" exactly.
  3. Final Answer:

    Received message: Hello -> Option B
  4. Quick Check:

    Base64 decode then print = Received message: Hello [OK]
Hint: Decode base64 data to get original message [OK]
Common Mistakes:
  • Printing raw base64 bytes instead of decoded string
  • Using event['data'] directly without decoding
  • Assuming 'data' key is missing
4.

What is the likely cause if a Cloud Function triggered by Pub/Sub never runs after publishing messages?

medium
A. The Cloud Function is not subscribed to the correct Pub/Sub topic
B. The Cloud Function code has a syntax error
C. The Pub/Sub topic does not exist
D. The Cloud Function has too much memory allocated

Solution

  1. Step 1: Check the Cloud Function trigger configuration

    If the function is not subscribed to the right topic, it won't receive messages.
  2. Step 2: Rule out other causes

    Syntax errors cause deployment failure, not silent no-run; topic existence is needed but usually checked; memory size doesn't stop triggers.
  3. Final Answer:

    The Cloud Function is not subscribed to the correct Pub/Sub topic -> Option A
  4. Quick Check:

    Wrong topic subscription = no trigger [OK]
Hint: Check topic subscription if function never runs [OK]
Common Mistakes:
  • Assuming syntax error causes silent no-run
  • Ignoring topic existence or permissions
  • Blaming memory size for trigger issues
5.

You want to build a system where multiple Cloud Functions react independently to the same Pub/Sub messages. What is the best way to set this up?

hard
A. Publish messages multiple times to different topics
B. Create multiple Pub/Sub topics, each with one Cloud Function subscription
C. Use one Cloud Function that calls other functions internally
D. Create one Pub/Sub topic and multiple subscriptions, each triggering a different Cloud Function

Solution

  1. Step 1: Understand Pub/Sub fan-out pattern

    One topic can have multiple subscriptions; each subscription can trigger a different Cloud Function independently.
  2. Step 2: Compare options

    Multiple topics add complexity; one function calling others is indirect; publishing multiple times is inefficient.
  3. Final Answer:

    Create one Pub/Sub topic and multiple subscriptions, each triggering a different Cloud Function -> Option D
  4. Quick Check:

    One topic, many subscriptions = multiple triggers [OK]
Hint: Use multiple subscriptions on one topic for parallel triggers [OK]
Common Mistakes:
  • Creating many topics unnecessarily
  • Using one function to call others instead of triggers
  • Publishing duplicate messages to multiple topics
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard