Bird
Raised Fist0
GCPcloud~5 mins

HTTP triggered functions in GCP - Time & Space Complexity

Choose your learning style10 modes available
Time Complexity: HTTP triggered functions
O(n)
Understanding Time Complexity

When using HTTP triggered functions, it's important to understand how the number of requests affects the work done.

We want to know how the function's work grows as more HTTP requests come in.

Scenario Under Consideration

Analyze the time complexity of the following operation sequence.

exports.helloHttp = (req, res) => {
  const name = req.query.name || 'World';
  res.status(200).send(`Hello, ${name}!`);
};

This function responds to each HTTP request by sending a greeting message.

Identify Repeating Operations

Identify the API calls, resource provisioning, data transfers that repeat.

  • Primary operation: Handling each HTTP request and sending a response.
  • How many times: Once per incoming HTTP request.
How Execution Grows With Input

Each new HTTP request causes the function to run once, doing a small fixed amount of work.

Input Size (n)Approx. API Calls/Operations
1010 function executions
100100 function executions
10001000 function executions

Pattern observation: The work grows directly with the number of requests.

Final Time Complexity

Time Complexity: O(n)

This means the total work grows linearly with the number of HTTP requests received.

Common Mistake

[X] Wrong: "The function runs once and handles all requests at the same time."

[OK] Correct: Each HTTP request triggers a separate function execution, so work grows with requests.

Interview Connect

Understanding how serverless functions scale with requests helps you design efficient cloud services and answer real-world questions confidently.

Self-Check

"What if the function made an external API call for each request? How would the time complexity change?"

Practice

(1/5)
1. What happens when an HTTP triggered function in GCP receives a web request?
easy
A. The function only logs the request but does not respond.
B. The function stores the request without running any code.
C. The function runs the code and sends back a response.
D. The function waits for a manual trigger to run.

Solution

  1. Step 1: Understand the trigger type

    HTTP triggered functions run automatically when they receive a web request.
  2. Step 2: Identify the function behavior

    They process the request and return a response to the caller.
  3. Final Answer:

    The function runs the code and sends back a response. -> Option C
  4. Quick Check:

    HTTP trigger = runs code + responds [OK]
Hint: HTTP trigger means code runs on web request [OK]
Common Mistakes:
  • Thinking the function only logs requests
  • Assuming manual trigger is needed
  • Believing the function stores requests without running
2. Which of the following is the correct way to define an HTTP triggered function in Python for GCP Cloud Functions?
easy
A. def my_function(data, context):
B. def my_function(event, context):
C. def my_function():
D. def my_function(request):

Solution

  1. Step 1: Recall function signature for HTTP triggers

    HTTP triggered functions accept a single 'request' parameter representing the web request.
  2. Step 2: Match the correct signature

    Only 'def my_function(request):' matches this pattern.
  3. Final Answer:

    def my_function(request): -> Option D
  4. Quick Check:

    HTTP function signature = def func(request) [OK]
Hint: HTTP functions take one 'request' parameter [OK]
Common Mistakes:
  • Using event and context parameters (for background triggers)
  • Defining function without parameters
  • Using wrong parameter names
3. Given this Python HTTP function code snippet, what will be the HTTP response body when a GET request is made?
def hello_world(request):
    if request.method == 'GET':
        return 'Hello, World!'
    else:
        return 'Unsupported method', 405
medium
A. "Hello, World!"
B. "Unsupported method"
C. Error: Missing return statement
D. Empty response

Solution

  1. Step 1: Check the request method

    The function checks if the request method is 'GET'.
  2. Step 2: Determine response for GET

    For 'GET', it returns the string 'Hello, World!'.
  3. Final Answer:

    "Hello, World!" -> Option A
  4. Quick Check:

    GET request returns greeting [OK]
Hint: GET request returns 'Hello, World!' string [OK]
Common Mistakes:
  • Confusing method names case sensitivity
  • Expecting a JSON response without formatting
  • Ignoring else branch
4. Identify the error in this HTTP triggered function code snippet:
def process_request(request):
    if request.method == 'POST'
        return 'Received POST'
    else:
        return 'Only POST allowed', 405
medium
A. Missing colon ':' after if statement
B. Incorrect return type for HTTP function
C. Wrong parameter name for request
D. No error in the code

Solution

  1. Step 1: Check syntax of if statement

    The if statement is missing a colon ':' at the end.
  2. Step 2: Confirm syntax error impact

    Without the colon, the code will cause a syntax error and fail to deploy.
  3. Final Answer:

    Missing colon ':' after if statement -> Option A
  4. Quick Check:

    if statement needs ':' [OK]
Hint: Check colons after if statements [OK]
Common Mistakes:
  • Ignoring syntax errors
  • Assuming return types are wrong
  • Confusing parameter names
5. You want to create an HTTP triggered function that accepts JSON data in a POST request and returns the value of the 'name' field. Which code snippet correctly handles this in Python?
hard
A. def get_name(request): data = request.get_json() return f"Hello, {data.name}!"
B. def get_name(request): data = request.get_json() return f"Hello, {data['name']}!"
C. def get_name(request): data = request.get_json return f"Hello, {data['name']}!"
D. def get_name(request): data = request.json() return f"Hello, {data.name}!"

Solution

  1. Step 1: Use correct method to parse JSON

    request.get_json() is the correct method to parse JSON body in GCP HTTP functions.
  2. Step 2: Access JSON data correctly

    JSON data is a dictionary, so access fields with data['name'], not data.name.
  3. Final Answer:

    def get_name(request): data = request.get_json() return f"Hello, {data['name']}!" -> Option B
  4. Quick Check:

    Use get_json() and dict access [OK]
Hint: Use get_json() and dict keys for JSON data [OK]
Common Mistakes:
  • Using request.json() instead of get_json()
  • Accessing JSON fields with dot notation
  • Forgetting parentheses on get_json
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