Jump into concepts and practice - no test required
or
Recommended
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Requester Pays Configuration in Google Cloud Storage
📖 Scenario: You are managing a Google Cloud Storage bucket that contains large datasets. To control costs, you want to enable the Requester Pays feature so that users who access the data pay for the access costs.
🎯 Goal: Configure a Google Cloud Storage bucket named data-bucket to enable the Requester Pays feature.
📋 What You'll Learn
Create a variable called bucket_name with the value data-bucket.
Create a variable called requester_pays_enabled and set it to True.
Write a function called enable_requester_pays that takes bucket_name and requester_pays_enabled as parameters and configures the bucket accordingly.
Call the enable_requester_pays function with the correct arguments to enable Requester Pays on the bucket.
💡 Why This Matters
🌍 Real World
Many organizations store large datasets in Google Cloud Storage and want to control who pays for data access. Enabling Requester Pays shifts the cost to the users who access the data, helping manage budgets.
💼 Career
Cloud engineers and administrators often need to configure storage buckets with cost controls like Requester Pays. Knowing how to automate this with code is a valuable skill.
Progress0 / 4 steps
1
Create the bucket name variable
Create a variable called bucket_name and set it to the string "data-bucket".
GCP
Hint
Use a simple assignment to create the variable bucket_name.
2
Create the Requester Pays flag variable
Create a variable called requester_pays_enabled and set it to True.
GCP
Hint
Use a boolean value True for the variable requester_pays_enabled.
3
Write the function to enable Requester Pays
Write a function called enable_requester_pays that takes parameters bucket_name and requester_pays_enabled. Inside the function, use the Google Cloud Storage client library to get the bucket and set its requester_pays property to requester_pays_enabled. Then call patch() on the bucket to apply the change.
GCP
Hint
Use storage.Client() to create a client, then get the bucket with client.bucket(bucket_name). Set bucket.requester_pays and call bucket.patch().
4
Call the function to enable Requester Pays
Call the function enable_requester_pays with the variables bucket_name and requester_pays_enabled to enable Requester Pays on the bucket.
GCP
Hint
Simply call enable_requester_pays(bucket_name, requester_pays_enabled) to apply the configuration.
Practice
(1/5)
1. What does enabling Requester Pays on a Google Cloud Storage bucket do?
easy
A. It makes the bucket owner pay for all data access costs.
B. It disables public access to the bucket.
C. It makes the user accessing the data pay for the access costs.
D. It encrypts the data in the bucket automatically.
Solution
Step 1: Understand Requester Pays concept
Requester Pays shifts the cost of data access from the bucket owner to the user who requests the data.
Step 2: Identify the cost responsibility
When enabled, the user accessing the bucket pays for network and operation costs, not the owner.
Final Answer:
It makes the user accessing the data pay for the access costs. -> Option C
Quick Check:
Requester Pays = user pays [OK]
Hint: Requester Pays means user pays for data access costs [OK]
Common Mistakes:
Thinking bucket owner always pays
Confusing with access permissions
Assuming it encrypts data
2. Which command correctly enables Requester Pays on a bucket named my-data-bucket?
easy
A. gsutil set requesterpay gs://my-data-bucket on
B. gsutil requester-pays enable gs://my-data-bucket
C. gsutil enable requester-pays gs://my-data-bucket
D. gsutil requesterpay set on gs://my-data-bucket
Solution
Step 1: Recall the correct gsutil syntax
The correct command to enable Requester Pays is gsutil requesterpay set on followed by the bucket URL.
Step 2: Match the command with the bucket name
gsutil requesterpay set on gs://my-data-bucket uses the exact syntax and bucket name correctly.
Final Answer:
gsutil requesterpay set on gs://my-data-bucket -> Option D
Quick Check:
Correct gsutil syntax = gsutil requesterpay set on gs://my-data-bucket [OK]
Hint: Use 'gsutil requesterpay set on' to enable Requester Pays [OK]
Common Mistakes:
Using incorrect command verbs like 'enable'
Misplacing 'requesterpay' keyword
Wrong order of command arguments
3. Given a bucket with Requester Pays enabled, which gsutil command will successfully copy a file named data.csv from the bucket gs://example-bucket to your local machine?
medium
A. gsutil cp --requester-pays gs://example-bucket/data.csv ./
B. gsutil cp gs://example-bucket/data.csv ./
C. gsutil cp --enable-requester-pays gs://example-bucket/data.csv ./
D. gsutil cp --requesterpay gs://example-bucket/data.csv ./
Solution
Step 1: Understand Requester Pays access requirement
When accessing a Requester Pays bucket, the user must include the --requester-pays flag in the gsutil command.
Step 2: Identify the correct flag usage
gsutil cp --requester-pays gs://example-bucket/data.csv ./ uses the correct flag --requester-pays with the copy command.
Final Answer:
gsutil cp --requester-pays gs://example-bucket/data.csv ./ -> Option A
Quick Check:
Use --requester-pays flag to access Requester Pays buckets [OK]
Hint: Add --requester-pays flag to gsutil commands for Requester Pays buckets [OK]
Common Mistakes:
Omitting the --requester-pays flag
Using incorrect flag names
Assuming normal commands work without flags
4. You try to download a file from a Requester Pays bucket without the --requester-pays flag and get an error. What is the most likely fix?
medium
A. Use a different gsutil version.
B. Add the --requester-pays flag to your gsutil command.
C. Change the bucket permissions to public.
D. Disable Requester Pays on the bucket.
Solution
Step 1: Identify cause of error
Accessing a Requester Pays bucket without the --requester-pays flag causes permission errors because the user is not accepting cost responsibility.
Step 2: Apply the correct fix
Adding the --requester-pays flag tells Google Cloud you accept the charges, fixing the error.
Final Answer:
Add the --requester-pays flag to your gsutil command. -> Option B
Quick Check:
Missing --requester-pays flag causes errors [OK]
Hint: Add --requester-pays flag to fix access errors [OK]
Common Mistakes:
Trying to disable Requester Pays without permission
Changing bucket permissions unnecessarily
Assuming gsutil version causes this error
5. You manage a public dataset bucket with Requester Pays enabled. A user complains they cannot access data using the Google Cloud Console UI. What is the best advice to help them access the data?
hard
A. Tell them to use gsutil with the --requester-pays flag for data access.
B. Advise them to disable Requester Pays on the bucket.
C. Instruct them to request access permissions from the bucket owner.
D. Suggest they use the Cloud Console without any special flags.
Solution
Step 1: Understand Requester Pays impact on access methods
Requester Pays requires users to explicitly accept cost responsibility, usually via command flags like --requester-pays or a confirmation prompt in the UI.
Step 2: Identify supported access methods
While the Cloud Console UI supports Requester Pays with a billing-enabled project and charge acceptance prompt, recommend gsutil with the --requester-pays flag as a reliable alternative when facing UI access issues.
Final Answer:
Tell them to use gsutil with the --requester-pays flag for data access. -> Option A
Quick Check:
Use gsutil + --requester-pays for Requester Pays buckets [OK]
Hint: Use gsutil with --requester-pays for reliable access to Requester Pays buckets [OK]
Common Mistakes:
Assuming Console UI works without project billing enabled