Bird
Raised Fist0
GCPcloud~20 mins

Cloud Functions with Pub/Sub triggers in GCP - Practice Problems & Coding Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
Cloud Functions Pub/Sub Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
❓ service_behavior
intermediate
2:00remaining
What happens when a Cloud Function triggered by Pub/Sub fails?

You have a Google Cloud Function triggered by a Pub/Sub topic. The function processes messages but sometimes throws an error.

What is the behavior of the system when the function fails to process a message?

AThe message is immediately deleted from the Pub/Sub subscription and lost.
BThe message is retried automatically until the function succeeds or the message expires.
CThe message is sent to a dead-letter topic immediately after the first failure.
DThe function stops processing any further messages until the error is fixed.
Attempts:
2 left
💡 Hint

Think about how Pub/Sub handles message delivery guarantees.

❓ Configuration
intermediate
2:00remaining
Which IAM role is required for a Cloud Function to subscribe to a Pub/Sub topic?

You want to deploy a Cloud Function that triggers on messages published to a Pub/Sub topic.

Which IAM role must be granted to the Cloud Function's service account to allow it to receive messages?

Aroles/pubsub.publisher
Broles/pubsub.subscriber
Croles/cloudfunctions.invoker
Droles/pubsub.viewer
Attempts:
2 left
💡 Hint

Consider the permissions needed to pull messages from a subscription.

❓ Architecture
advanced
3:00remaining
Designing a scalable Cloud Function triggered by Pub/Sub for high message volume

You expect a very high volume of messages published to a Pub/Sub topic. You want your Cloud Function to process these messages efficiently without losing any.

Which design approach best supports scalability and reliability?

AUse a single Cloud Function triggered by the Pub/Sub topic with default settings.
BConfigure the Cloud Function with a higher max instances limit and enable concurrency if supported.
CDeploy multiple Cloud Functions each subscribed to the same topic to share the load manually.
DUse a pull subscription and manually poll messages inside the Cloud Function.
Attempts:
2 left
💡 Hint

Think about how Cloud Functions scale automatically and how concurrency affects throughput.

❓ security
advanced
3:00remaining
Securing Cloud Functions triggered by Pub/Sub to prevent unauthorized invocation

You want to ensure that only Pub/Sub can trigger your Cloud Function and no other service or user can invoke it directly.

Which configuration enforces this security requirement?

ASet the Cloud Function to allow unauthenticated invocations.
BGrant the Cloud Function's invoker role to the Pub/Sub service account only.
CDisable authentication on the Cloud Function endpoint.
DUse a firewall rule to block all incoming traffic except from Pub/Sub IPs.
Attempts:
2 left
💡 Hint

Consider how Cloud Functions control who can invoke them.

✅ Best Practice
expert
4:00remaining
Handling message duplication in Cloud Functions triggered by Pub/Sub

Pub/Sub guarantees at-least-once delivery, which means your Cloud Function might receive the same message multiple times.

What is the best practice to handle potential duplicate message processing in your Cloud Function?

AIgnore duplicates because Pub/Sub ensures messages are unique.
BImplement idempotent processing by tracking message IDs and ignoring repeats.
CDelete messages manually from Pub/Sub after processing to avoid duplicates.
DUse a global lock in the Cloud Function to prevent concurrent executions.
Attempts:
2 left
💡 Hint

Think about how to safely handle repeated messages without side effects.

Practice

(1/5)
1. What happens when a Google Cloud Function is triggered by a Pub/Sub message?
easy
A. The function runs automatically when a new message arrives on the Pub/Sub topic.
B. The function must be manually started after the message is published.
C. The function only runs if the message contains a specific keyword.
D. The function runs only once a day regardless of messages.

Solution

  1. Step 1: Understand Pub/Sub trigger behavior

    Cloud Functions connected to Pub/Sub topics run automatically when a new message is published to that topic.
  2. Step 2: Confirm automatic execution

    There is no need for manual start or keyword filtering by default; the function triggers on every message.
  3. Final Answer:

    The function runs automatically when a new message arrives on the Pub/Sub topic. -> Option A
  4. Quick Check:

    Pub/Sub triggers auto-run functions on new messages [OK]
Hint: Pub/Sub triggers run functions automatically on new messages [OK]
Common Mistakes:
  • Thinking the function needs manual start
  • Assuming filtering happens automatically
  • Believing the function runs on a schedule
2. Which of the following is the correct way to declare a Cloud Function triggered by Pub/Sub in Node.js?
easy
A. exports.myFunction = (event, context) => { console.log(event.data); };
B. function myFunction(pubsubMessage) { console.log(pubsubMessage.data); }
C. exports.myFunction = (req, res) => { res.send('Hello'); };
D. function myFunction(event) { return event.data; }

Solution

  1. Step 1: Identify correct Cloud Function signature for Pub/Sub

    In Node.js, a Pub/Sub triggered function uses (event, context) parameters, where event.data contains the message.
  2. Step 2: Check options for correct syntax

    exports.myFunction = (event, context) => { console.log(event.data); }; uses exports with (event, context) and accesses event.data correctly. Others either use wrong parameters or HTTP function style.
  3. Final Answer:

    exports.myFunction = (event, context) => { console.log(event.data); }; -> Option A
  4. Quick Check:

    Pub/Sub functions use (event, context) signature [OK]
Hint: Pub/Sub functions use (event, context) parameters in Node.js [OK]
Common Mistakes:
  • Using HTTP function signature (req, res)
  • Missing exports keyword
  • Using wrong parameter names
3. Given this Python Cloud Function triggered by Pub/Sub:
def hello_pubsub(event, context):
    import base64
    message = base64.b64decode(event['data']).decode('utf-8')
    print(f'Received message: {message}')

What will be printed if the Pub/Sub message data is base64 encoding of 'Hello World'?
medium
A. Received message: event['data']
B. Received message: b'Hello World'
C. Received message: Hello World
D. Error: base64 decoding failed

Solution

  1. Step 1: Decode base64 message data

    The function decodes event['data'] from base64 to bytes, then decodes bytes to UTF-8 string.
  2. Step 2: Print the decoded message

    The decoded string is 'Hello World', so the print statement outputs 'Received message: Hello World'.
  3. Final Answer:

    Received message: Hello World -> Option C
  4. Quick Check:

    Base64 decode then UTF-8 decode gives original message [OK]
Hint: Base64 decode Pub/Sub data to get original message text [OK]
Common Mistakes:
  • Printing raw base64 string instead of decoded
  • Forgetting to decode bytes to string
  • Assuming event['data'] is plain text
4. You deployed a Cloud Function triggered by Pub/Sub, but it never runs when messages are published. What is the most likely cause?
medium
A. Cloud Functions do not support Pub/Sub triggers.
B. The function code has a syntax error.
C. The Pub/Sub topic is empty and cannot trigger functions.
D. The function is not subscribed to the correct Pub/Sub topic.

Solution

  1. Step 1: Check Pub/Sub subscription linkage

    If the function is not linked to the correct Pub/Sub topic, it will not trigger on published messages.
  2. Step 2: Eliminate other causes

    Syntax errors cause deployment failure, empty topics can still trigger if messages arrive, and Cloud Functions do support Pub/Sub triggers.
  3. Final Answer:

    The function is not subscribed to the correct Pub/Sub topic. -> Option D
  4. Quick Check:

    Correct topic subscription is required for triggers [OK]
Hint: Verify function subscribes to the right Pub/Sub topic [OK]
Common Mistakes:
  • Assuming empty topic blocks triggers
  • Ignoring subscription configuration
  • Thinking Cloud Functions lack Pub/Sub support
5. You want to ensure your Cloud Function triggered by Pub/Sub processes messages exactly once, even if Pub/Sub retries delivery. What is the best approach?
hard
A. Disable retries in Pub/Sub settings to avoid duplicate triggers.
B. Implement idempotent processing in the function using unique message IDs.
C. Use a global variable in the function to track processed messages.
D. Rely on Pub/Sub to guarantee exactly-once delivery automatically.

Solution

  1. Step 1: Understand Pub/Sub delivery guarantees

    Pub/Sub guarantees at-least-once delivery, so duplicates can occur if retries happen.
  2. Step 2: Implement idempotency in function

    To handle duplicates, the function should process messages idempotently, often by checking unique message IDs to avoid repeated work.
  3. Step 3: Evaluate other options

    Disabling retries risks message loss, global variables don't persist across executions, and Pub/Sub does not guarantee exactly-once delivery by itself.
  4. Final Answer:

    Implement idempotent processing in the function using unique message IDs. -> Option B
  5. Quick Check:

    Idempotent code handles retries safely [OK]
Hint: Make function idempotent using message IDs to avoid duplicates [OK]
Common Mistakes:
  • Expecting Pub/Sub to do exactly-once delivery
  • Disabling retries risking lost messages
  • Using non-persistent variables for tracking
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