Intro Google Cloud Storage Lab. Learn how to perform common tasks using gsutil
.
-
Ensure the Following APIs are enabled (enable with gcloud services enable [service]):
- iam.googleapis.com
- storage-component.googleapis.com
-
gcloud projects add-iam-policy-binding [PROJECT_ID] \ --member serviceAccount:[PROJECT_NUMBER]@cloudservices.gserviceaccount.com \ --role roles/iam.roleAdmin
You can use
gcloud list projects
to get the project ID and number. -
Deploy the deployment manager config in the
infrastructure
directory:gcloud deployment-manager deployments create lab --config infrastructure/deployment.yaml
-
Bind the Lab role to the student user or group
-
In macOS/Linux:
member="[GROUP_OR_USER]" project_id=$(gcloud config list --format 'value(core.project)') role=$(gcloud iam roles list --project $project_id \ --filter "name:projects/$project_id/roles/studentrole*" \ --format "value(name)") gcloud projects add-iam-policy-binding $project_id \ --member $member \ --role $role
-
In Windows (PowerShell):
$member = "[GROUP_OR_USER]" $project_id = gcloud config list --format 'value(core.project)' $role = gcloud iam roles list --project $project_id ` --filter "name:projects/$project_id/roles/studentrole*" ` --format "value(name)" gcloud projects add-iam-policy-binding $project_id ` --member $member ` --role $role
An example of
[GROUP_OR_USER]
isuser:[email protected]
. -
-
Start a Google Cloud Shell session.
-
Create a bucket (replace [BUCKET_NAME] with the desired name):
bucket_name=[BUCKET_NAME] gsutil mb -c multi_regional -l US gs://$bucket_name
-
Upload the Cloud Shell README to the bucket:
gsutil cp -s regional README-cloudshell.txt gs://$bucket_name/
-
Perform a detailed listing of the bucket to confirm the storage class and other details:
gsutil ls -L gs://$bucket_name/* | more
-
Enable versioning on the bucket:
gsutil versioning set on gs://$bucket_name
-
Overwrite the README and observe the new Generation number for the object:
gsutil cp README-cloudshell.txt gs://$bucket_name/ gsutil ls -L gs://$bucket_name/* | more
-
List all available versions for the object:
gsutil ls -a gs://$bucket_name/plan.txt
Note the generation number is appended to identify different versions of the object.
When finished, remove the GCP resources with:
gsutil rm -r gs://$bucket_name
gsutil rb gs://$bucket_name
gcloud projects remove-iam-policy-binding [PROJECT_ID] \
--member [GROUP_OR_USER] \
--role projects/[PROJECT_ID]/roles/studentrole
gcloud deployment-manager deployments delete lab