diff --git a/content/GCP/01_intro_to_cloud_console.ipynb b/content/GCP/01_intro_to_cloud_console.ipynb index 44baeb2..5485ed5 100644 --- a/content/GCP/01_intro_to_cloud_console.ipynb +++ b/content/GCP/01_intro_to_cloud_console.ipynb @@ -9,7 +9,7 @@ "source": [ "# Introduction to the GCP Cloud Console\n", "\n", - "```{admonition} Overview\n", + ":::{admonition} Overview\n", ":class: tip\n", "\n", "**Teaching:** 15 min.\n", @@ -25,7 +25,8 @@ " * Find and verify important information about your cloud environment.\n", " * Learn important Google Cloud terminology\n", " * Find and open the Cloud Shell\n", - "```" + "\n", + ":::" ] }, { @@ -65,7 +66,7 @@ "tags": [] }, "source": [ - "```{admonition} Exercise\n", + ":::{admonition} Exercise\n", ":class: exercise\n", "\n", "Take a few moments to ask yourself the following questions:\n", @@ -74,7 +75,8 @@ " * How do you know which account is being used?\n", " \n", " If you are not currently using the correct account, switch to it.\n", - "```" + "\n", + ":::" ] }, { @@ -106,7 +108,7 @@ "id": "182e3a9a", "metadata": {}, "source": [ - "```{admonition} Exercise\n", + ":::{admonition} Exercise\n", ":class: exercise\n", "\n", "Take a few moments to ask yourself the following questions:\n", @@ -117,7 +119,8 @@ " * How do you know which project you are currently using?\n", "\n", "If you are currently not using the correct project for this lesson, switch to the correct one.\n", - "```" + "\n", + ":::" ] }, { @@ -152,14 +155,15 @@ "source": [ "*Instructor: place instructions on the screen*\n", "\n", - "```{admonition} Exercise 1\n", + ":::{admonition} Exercise 1\n", ":class: exercise\n", "\n", "Take a few moments to navigate to a few key products and enable them.\n", " * Navigate to \"Cloud Storage\" under the \"Storage\" product group.\n", " * You may need to \"Enable\" this product first by clicking on the \"Enable\" button on the \"Cloud Storage API\" page. This will only need to be done once per project.\n", " * Navigate to the \"Compute Engine\" product under the \"Compute\" product group and enable the product as well.\n", - "```" + "\n", + ":::" ] }, { @@ -247,15 +251,15 @@ "tags": [] }, "source": [ - "```{admonition} Exercise\n", + ":::{admonition} Exercise\n", ":class: exercise\n", "\n", "Before we move on, do the following:\n", - "* Double check that you are in the correct account and project that you will be using for this lesson.\n", - "* Take a moment to reflect on the \"Who, Where, and What\" of the cloud. \n", - " * What is your Who, Where, and What?\n", - " * Why is this important?\n", - "```" + " * Double check that you are in the correct account and project that you will be using for this lesson.\n", + " * Take a moment to reflect on the \"Who, Where, and What\" of the cloud. \n", + " * What is your Who, Where, and What?\n", + " * Why is this important?\n", + ":::" ] } ], @@ -275,7 +279,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.7.3" + "version": "3.9.2" } }, "nbformat": 4, diff --git a/content/GCP/02_intro_to_compute.ipynb b/content/GCP/02_intro_to_compute.ipynb index 7bba235..950ef9a 100644 --- a/content/GCP/02_intro_to_compute.ipynb +++ b/content/GCP/02_intro_to_compute.ipynb @@ -9,7 +9,7 @@ "source": [ "# Introduction to Cloud Compute (Google Compute Engine)\n", "\n", - "```{admonition} Overview\n", + ":::{admonition} Overview\n", ":class: tip\n", "\n", "**Teaching:** 30 min.\n", @@ -26,7 +26,8 @@ " * Use the cost estimator for Google Compute Engine.\n", " * Learn what a service account is and how they are used.\n", " * Learn how to connect to a virtual machine using ssh in the Cloud Shell with the web console.\n", - "```" + "\n", + ":::" ] }, { @@ -84,13 +85,14 @@ "id": "6737d8ba-e6d4-437f-a652-5d9d4477b34c", "metadata": {}, "source": [ - "```{admonition} Exercise\n", + ":::{admonition} Exercise\n", ":class: exercise\n", "\n", " * Find the most expensive VM. **DO NOT actually create!**\n", " * Find the least expensive VM.\n", " * Select `e2-medium`\n", - "```" + "\n", + ":::" ] }, { @@ -281,11 +283,12 @@ "source": [ "## Delete the VM Instance\n", "\n", - "```{admonition} Danger\n", + ":::{admonition} Danger\n", ":class: danger\n", "\n", "This will destroy the VM instance and and ALL the data in it! You cannot undelete an instance!\n", - "```" + "\n", + ":::" ] }, { @@ -297,12 +300,13 @@ "source": [ "Now that we have made that clear, we will now complete the resource life-cycle by deleting the *VM Instance* we just created. First, try to do this on your own.\n", "\n", - "```{admonition} Exercise\n", + ":::{admonition} Exercise\n", ":class: exercise\n", "\n", " * Try to delete the ***VM instance*** on your own\n", " * Try to follow the process we just learned (hint: *track* and *list*)\n", - "```" + "\n", + ":::" ] }, { @@ -353,7 +357,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.7.3" + "version": "3.9.2" } }, "nbformat": 4, diff --git a/content/GCP/03_intro_to_cloud_storage.ipynb b/content/GCP/03_intro_to_cloud_storage.ipynb index 87c0ecc..e828138 100644 --- a/content/GCP/03_intro_to_cloud_storage.ipynb +++ b/content/GCP/03_intro_to_cloud_storage.ipynb @@ -7,7 +7,7 @@ "source": [ "# Introduction to Google Cloud Storage\n", "\n", - "```{admonition} Overview\n", + ":::{admonition} Overview\n", ":class: tip\n", "\n", "**Teaching:** 20 min\n", @@ -24,7 +24,8 @@ " * Recognize that resources have a \"location\"\n", " * Recognize danger of public access\n", " * De-allocate Google Cloud Storage storage\n", - "```" + "\n", + ":::" ] }, { @@ -160,28 +161,38 @@ "source": [ "## Delete the Storage\n", "\n", - "```{admonition} Danger\n", + ":::{admonition} Danger\n", ":class: danger\n", "\n", "This will destroy the storage *Bucket* and and ALL the data in it! You cannot undelete a Bucket!\n", - "```" + "\n", + ":::" ] }, { "cell_type": "markdown", - "id": "59005efb-2aad-4dcd-ac7b-f153f4295abc", + "id": "619c0350-6058-4162-9b4b-3a6aaf96041f", "metadata": { "tags": [] }, "source": [ - "We will now complete the resource life-cycle by deleting the bucket we just created. Think about the process we did for creating the bucket and follow a similar one.\n", - "\n", - "```{admonition} Exercise\n", + "We will now complete the resource life-cycle by deleting the bucket we just created. Think about the process we did for creating the bucket and follow a similar one." + ] + }, + { + "cell_type": "markdown", + "id": "9a6973f1-07f4-4c72-bd92-1a6b9741eed9", + "metadata": { + "tags": [] + }, + "source": [ + ":::{admonition} Exercise\n", ":class: exercise\n", "\n", " * Try to delete the storage bucket on your own\n", " * Verify that the storage bucket has been deleted.\n", - "```" + "\n", + ":::" ] }, { @@ -248,7 +259,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.7.3" + "version": "3.9.2" } }, "nbformat": 4, diff --git a/content/GCP/04_intro_to_cli.ipynb b/content/GCP/04_intro_to_cli.ipynb index 7ef7348..33404b9 100644 --- a/content/GCP/04_intro_to_cli.ipynb +++ b/content/GCP/04_intro_to_cli.ipynb @@ -7,7 +7,7 @@ "source": [ "# Introduction to the Command Line Interface (CLI)\n", "\n", - "```{admonition} Overview\n", + ":::{admonition} Overview\n", ":class: tip\n", "\n", "**Teaching:** 20 min\n", @@ -24,7 +24,8 @@ " * Verify basic settings.\n", " * Use environment variables for configuration.\n", " * Understand the importance of using variables reproducibility and automation.\n", - "``` " + "\n", + ":::" ] }, { @@ -61,11 +62,11 @@ "id": "8eb44568-1108-4963-aebf-7f6b98ddaffc", "metadata": {}, "source": [ - "```{admonition} Tip\n", - ":class: tip\n", + ":::{tip}\n", "\n", "You can access the cloud shell from your laptop via `gcloud cloud-shell ssh` if you have the [Google Cloud SDK installed](https://cloud.google.com/sdk/docs/install). Installing the Google Cloud SDK will also allow you to run `gcloud` and `gsutil` commands directly from your laptop, workstation, or cluster. *Pro-tip, you cannot use a service account to access the cloud shell.*\n", - "```" + "\n", + ":::" ] }, { @@ -197,7 +198,7 @@ }, { "cell_type": "markdown", - "id": "598b5d12-9bea-49de-a772-4113727e0859", + "id": "fe9c7d78-edbe-4c84-81d1-a83c20773181", "metadata": {}, "source": [ "### Environment Variables\n", @@ -206,13 +207,19 @@ "\n", "*To make the point even clearer, we use environment variables in the Cloud Essentials notebooks instead of hard coding them, which makes it easy for anyone to run, use, and edit and thus collaborate and contribute to them!*\n", "\n", - "We now demonstrate the basic use environment variables. As a reminder, environment variables are used to store configuration information that can be easily passed between programs and programming languages.\n", - "\n", - "```{admonition} Advanced Tip\n", - ":class: tip\n", + "We now demonstrate the basic use environment variables. As a reminder, environment variables are used to store configuration information that can be easily passed between programs and programming languages." + ] + }, + { + "cell_type": "markdown", + "id": "b843dba2-3276-4e2e-9619-8598b2718e4d", + "metadata": {}, + "source": [ + ":::{tip}\n", "\n", "Although we do not always need to, we should always enclose shell variables in double quotes and enclose the variable name in curly braces (funny things may happen otherwise) when writing scripts, for example `\"${TEST}\"`. In most cases it is easier to do this every time than try to figure out when it is possible to use the short form. We only use the short form (`$TEST`) when it is used frequently and known to always work (most cases here), in our case it is `$PROJECT` and `$BUCKET`. When in doubt, use the explicit form.\n", - "```" + "\n", + ":::" ] }, { @@ -413,7 +420,7 @@ "source": [ "Note the \"Your active configuration is: ...\" line is a \"warning\" and not actually part of the output of the program.\n", "\n", - "````{admonition} Advanced Tip\n", + "::::{admonition} Advanced Tip\n", ":class: tip\n", "\n", "You can also use \n", @@ -421,7 +428,8 @@ "PROJECT=$(gcloud config list --format='value(core.project)')\n", "```\n", "to get the project id without the warning.\n", - "````" + "\n", + "::::" ] }, { @@ -462,12 +470,13 @@ "id": "270e0abb-d5e9-476a-af91-060cc0ea0349", "metadata": {}, "source": [ - "```{admonition} Exercise\n", + ":::{admonition} Exercise\n", ":class: exercise\n", "\n", " * What command shows the account? (hint: we used it already)\n", " * Set the `ACCOUNT` environment variable with the correct value. (hint: be careful with punctuation (single and double quotes) and matching brackets and punctuation)\n", - "```" + "\n", + ":::" ] }, { diff --git a/content/GCP/05_cli_storage.ipynb b/content/GCP/05_cli_storage.ipynb index b643e0c..f0331aa 100644 --- a/content/GCP/05_cli_storage.ipynb +++ b/content/GCP/05_cli_storage.ipynb @@ -8,7 +8,7 @@ "# Managing Cloud Storage from the Command Line\n", "\n", "\n", - "```{admonition} Overview\n", + ":::{admonition} Overview\n", ":class: tip\n", "\n", "**Teaching:** 20 min\n", @@ -22,7 +22,8 @@ " * Manage buckets using the command line.\n", " * Create a bucket with a sensible configuration.\n", " * Learn to manage data (add, list, retrieve, delete) in a bucket using the command line.\n", - "```\n" + "\n", + ":::" ] }, { @@ -69,11 +70,11 @@ "id": "0727548c-bb05-4664-8ed5-cc33ba1b8021", "metadata": {}, "source": [ - "```{admonition} Top\n", - ":class: tip\n", + ":::{tip}\n", "\n", "If you need to setup a new Cloud Shell you can copy and paste the above commands into the new shell.\n", - "```" + "\n", + ":::" ] }, { @@ -244,7 +245,11 @@ "cell_type": "code", "execution_count": 9, "id": "8fc85600-a793-413b-b139-642e4cf08a8e", - "metadata": {}, + "metadata": { + "tags": [ + "hide-cell" + ] + }, "outputs": [], "source": [ "sleep 2 # used to ensure that the next command runs correctly in Jupyter" @@ -296,7 +301,7 @@ "id": "e9e48571-80fa-40cc-838f-ec5ea3000bd7", "metadata": {}, "source": [ - "````{admonition} Note\n", + "::::{admonition} Note\n", ":class: note\n", "\n", "You will probably need to enable the logging api to continue, press `y` to accept as shown below:\n", @@ -305,7 +310,7 @@ "like to enable and retry (this will take a few minutes)? (y/N)?\n", "```\n", "\n", - "````" + "::::" ] }, { @@ -610,11 +615,12 @@ "id": "1427e837-f65f-4d35-8088-6a82677b5ed6", "metadata": {}, "source": [ - "```{admonition} Exercise\n", + ":::{admonition} Exercise\n", ":class: exercise\n", "\n", " * Display the object with the date in the bucket.\n", - "```" + "\n", + ":::" ] }, { diff --git a/content/GCP/06_running_analysis.ipynb b/content/GCP/06_running_analysis.ipynb index 7d6e0f4..f6b01e3 100644 --- a/content/GCP/06_running_analysis.ipynb +++ b/content/GCP/06_running_analysis.ipynb @@ -293,7 +293,11 @@ "cell_type": "code", "execution_count": 5, "id": "05fadd30-4f35-4a93-b713-cc132131b948", - "metadata": {}, + "metadata": { + "tags": [ + "hide-output" + ] + }, "outputs": [ { "name": "stdout", @@ -755,7 +759,9 @@ "id": "cccec3e1-0dcd-4e3b-a059-a884f5219b66", "metadata": { "scrolled": true, - "tags": [] + "tags": [ + "hide-output" + ] }, "outputs": [ { @@ -847,13 +853,14 @@ "id": "0ca2e2ff-8276-4092-8a9e-ca754db5078e", "metadata": {}, "source": [ - "::::{admonition} Tip\n", - ":class: tip\n", + "::::{tip}\n", + "\n", "To run the above analysis in one step run\n", "\n", "```\n", "bash get-data.sh\n", "```\n", + "\n", "::::" ] }, diff --git a/content/GCP/06_sharing_results.ipynb b/content/GCP/06_sharing_results.ipynb index edc6e0b..b5a9cc0 100644 --- a/content/GCP/06_sharing_results.ipynb +++ b/content/GCP/06_sharing_results.ipynb @@ -7,7 +7,7 @@ "source": [ "# Sharing Data (Optional)\n", "\n", - "```{admonition} Overview\n", + ":::{admonition} Overview\n", ":class: tip\n", "\n", "**Teaching:** 30 min\n", @@ -15,12 +15,13 @@ "**Exercises:** 5 min (optional)\n", "\n", "**Questions:**\n", - "* How do I share my results?\n", + " * How do I share my results?\n", "\n", "**Objectives:**\n", - "* Understand the basics of Identity and Access Management (IAM)\n", - "* Add collaborators to a Bucket with appropriate permissions.\n", - "```" + " * Understand the basics of Identity and Access Management (IAM)\n", + " * Add collaborators to a Bucket with appropriate permissions.\n", + "\n", + ":::" ] }, { @@ -50,12 +51,14 @@ "tags": [] }, "source": [ - "```{admonition} Exercise\n", + ":::{admonition} Exercise\n", + ":class: exercise\n", "\n", "Answer the following questions:\n", " * What is the \"Who, What, Where\" of the IAM policy that allows you to use your project?\n", " * What else has permissions to do things in your project and state the \"Who, What, Where\"?\n", - "```" + "\n", + ":::" ] }, { @@ -126,10 +129,12 @@ "id": "4b93362c-c22b-453c-910b-db4a14ca58af", "metadata": {}, "source": [ - "```{admonition} Exercise\n", + ":::{admonition} Exercise\n", + ":class: exercise\n", "\n", "*Instructors: You may want to have students share these buckets for the example to reduce screen flipping and involve the students.*\n", - "```" + "\n", + ":::" ] } ], diff --git a/content/GCP/07_monitoring_costs.ipynb b/content/GCP/07_monitoring_costs.ipynb index 781ba4e..8407ccb 100644 --- a/content/GCP/07_monitoring_costs.ipynb +++ b/content/GCP/07_monitoring_costs.ipynb @@ -7,7 +7,7 @@ "source": [ "# Monitoring Costs\n", "\n", - "```{admonition} Overview\n", + ":::{admonition} Overview\n", ":class: tip\n", "\n", "**Teaching:** 10 min\n", @@ -15,20 +15,20 @@ "**Exercises:** none\n", "\n", "**Questions:**\n", - "* How do I find out how much I have spent?\n", - "* How do I find what is running and stored in my project?\n", + " * How do I find out how much I have spent?\n", + " * How do I find what is running and stored in my project?\n", "\n", "**Objectives:**\n", - "* Learn about Billing Accounts\n", - "* Find information about the Billing Account associated with your project\n", - "* Determine the permissions you have on the Billing Account\n", - "* Find and monitor your spend with billing reports\n", - "* Find where to set Billing Alerts.\n", - "* Find all resources in a Project\n", - "* Extra: List assets with the CLI\n", - "* Extra: Understand how labels are used\n", + " * Learn about Billing Accounts\n", + " * Find information about the Billing Account associated with your project\n", + " * Determine the permissions you have on the Billing Account\n", + " * Find and monitor your spend with billing reports\n", + " * Find where to set Billing Alerts.\n", + " * Find all resources in a Project\n", + " * Extra: List assets with the CLI\n", + " * Extra: Understand how labels are used\n", " \n", - "```" + ":::" ] }, { @@ -152,7 +152,9 @@ "id": "bee03b96-53f6-47c0-bcbf-0bf73fe99f73", "metadata": { "scrolled": true, - "tags": [] + "tags": [ + "hide-output" + ] }, "outputs": [ { @@ -389,16 +391,27 @@ }, { "cell_type": "markdown", - "id": "45681123-b27a-48d8-ac4a-30dc3b46d2c1", + "id": "9b34734b-4039-4589-a98b-e8101f9b96c6", "metadata": {}, "source": [ "## Label Resources (CLI - Extra)\n", "\n", "In order to track resources it is important to Label them. Labeling places key-value pairs (key=value) in the resources metadata (information about the resource) and most of the Google Cloud tools can use this information to search, filter, and group information. In the literature, the example most used is the \"env\" Label and indicates if the resource is in development (dev), testing (test), or production (prod); the lables would be env=test, env=dev and env=prod, respectively. \n", "\n", - "For research and teaching, Labels could be used to track funding, grants, students, or other uses of resources. For large efforts (projects) it is better to use different Projects to separate access and billing and protect the projects from each other.\n", + "For research and teaching, Labels could be used to track funding, grants, students, or other uses of resources. For large efforts (projects) it is better to use different Projects to separate access and billing and protect the projects from each other." + ] + }, + { + "cell_type": "markdown", + "id": "2ee4b84d-80b2-4013-a258-bf709768430b", + "metadata": {}, + "source": [ + ":::{admonition} Pro Tip\n", + ":class: tip\n", + "\n", + "Labeling is called Tagging on AWS and Azure - tagging in GCP is related to firewalls).\n", "\n", - "*Pro-tip: Labeling is called Tagging on AWS and Azure - tagging in GCP is related to firewalls).*\n" + ":::" ] }, { diff --git a/content/GCP/08_cleaning_up_resources.ipynb b/content/GCP/08_cleaning_up_resources.ipynb index f4b7bc1..388edb8 100644 --- a/content/GCP/08_cleaning_up_resources.ipynb +++ b/content/GCP/08_cleaning_up_resources.ipynb @@ -7,7 +7,7 @@ "source": [ "# Cleaning Up Resources\n", "\n", - "```{admonition} Overview\n", + ":::{admonition} Overview\n", ":class: tip\n", "\n", "**Teaching:** 5 min\n", @@ -15,92 +15,166 @@ "**Exercises:** 10 min\n", "\n", "**Questions:**\n", - "* How do I clean up after I'm done for the day?\n", - "* How do I make sure everything is gone?\n", + " * How do I clean up after I'm done for the day?\n", + " * How do I make sure everything is gone?\n", "\n", "**Objectives:**\n", - "* Cleanup resources created by the Lesson.\n", - "* Verify that all the resources have been removed.\n", + " * Cleanup resources created by the Lesson.\n", + " * Verify that all the resources have been removed.\n", "\n", - "```" + ":::" ] }, { "cell_type": "markdown", - "id": "65fb0615-f942-4af0-9087-8f0696df95f9", + "id": "29608fbe-70fa-474e-bcab-9f1fe3754503", "metadata": {}, "source": [ - "## Cleanup VMs\n", - "\n", - "```{admonition} Danger\n", + "## Cleanup Virtual Machine Instances" + ] + }, + { + "cell_type": "markdown", + "id": "e20eead6-05a0-4936-a27a-bb3377ae3cc0", + "metadata": {}, + "source": [ + ":::{admonition} Danger\n", ":class: danger\n", "\n", "This will destroy the VM instance and and ALL the data in it! You cannot undelete an instance!\n", - "```\n", "\n", - "```{admonition} Exercise\n", + ":::" + ] + }, + { + "cell_type": "markdown", + "id": "33ff4396-b718-4cba-8547-398ff48ea914", + "metadata": {}, + "source": [ + ":::{admonition} Exercise\n", + ":class: exercise\n", "\n", - " * Try to delete the **VM Instance** on your own\n", - "```\n", + " * Try to delete the **VM Instance** on your own\n", "\n", - "Navigate to the **Compute Engine** service and in the **VM Instances** page and remove the *essentials* *VM Instance*.\n" + ":::" ] }, { "cell_type": "markdown", - "id": "92321a60-13c6-4c87-aff5-92fb708e8bff", + "id": "63cf29e5-f3bb-426d-9a9c-2a9269caf7f4", "metadata": {}, "source": [ - "## Cleanup Buckets\n", - "\n", - "```{admonition} Danger\n", + "Navigate to the **Compute Engine** service and in the **VM Instances** page and remove the *essentials* *VM Instance*." + ] + }, + { + "cell_type": "markdown", + "id": "b7bb9c0c-98e5-41c6-a1a2-3cde35a2e994", + "metadata": {}, + "source": [ + "## Cleanup Buckets" + ] + }, + { + "cell_type": "markdown", + "id": "1e686ed7-f126-4941-a0bd-94b36d2e2ab5", + "metadata": {}, + "source": [ + ":::{admonition} Danger\n", ":class: danger\n", "\n", "This will destroy the storage *Bucket* and and ALL the data in it! You cannot undelete a Bucket!\n", - "```\n", - "\n", - "```{admonition} Exercise\n", + ":::" + ] + }, + { + "cell_type": "markdown", + "id": "4c6552f8-7b49-4414-8c44-8e739ec2ab44", + "metadata": {}, + "source": [ + ":::{admonition} Exercise\n", + ":class: exercise\n", "\n", - " * Try to delete the storage **bucket** on your own\n", - "```\n", + " * Try to delete the storage **bucket** on your own\n", "\n", + ":::" + ] + }, + { + "cell_type": "markdown", + "id": "440b89c3-52e1-44bb-945c-d323fccbf2e0", + "metadata": {}, + "source": [ "Navigate to the **Cloud Storage** service and in the **browser** page and remove the *essentials* Bucket." ] }, { "cell_type": "markdown", - "id": "6753b415-1fa9-4716-8c41-8d98228af51c", + "id": "f3749cf1-90d3-43db-980f-fb815c6363c0", "metadata": {}, "source": [ - "## Verify Cleanup\n", - "\n", - "```{admonition} Exercise\n", + "## Verify Cleanup" + ] + }, + { + "cell_type": "markdown", + "id": "2ed44c12-2592-433f-8ace-5f96d2ff7adf", + "metadata": {}, + "source": [ + ":::{admonition} Exercise\n", + ":class: exercise\n", "\n", " * There are at least three ways to verify resource removal, what are they?\n", " * Try to verify that the resources were removed.\n", - "```\n", "\n", - "```{admonition} Tip\n", - ":class: tip\n", + ":::" + ] + }, + { + "cell_type": "markdown", + "id": "b0f3766f-4ec2-487d-bc82-178d275387c0", + "metadata": {}, + "source": [ + ":::{tip}\n", + "\n", "You can also quickly navigate to resource page for most services from the **Resources** tab on the project **Dashboard**\n", - "```\n", "\n", + ":::" + ] + }, + { + "cell_type": "markdown", + "id": "9a4e2677-a8f0-4090-bfc7-4777b42e97c9", + "metadata": {}, + "source": [ "To verify that the resources have been deleted do the following:\n", " * Navigate to the **VM Instances** page and **Cloud Storage** **Browser** to verify the resources have been deleted.\n", " * Navigate to the **IAM & Admin** service and in the **Asset Inventory** page to verify that the resources have been deleted. **Note:** the information collected in the asset inventory is often delayed.\n", - " * Navigate to the **Activity** page and verify the deletion events. \n", - "\n", - "```{admonition} Tip\n", - ":class: tip\n", + " * Navigate to the **Activity** page and verify the deletion events. " + ] + }, + { + "cell_type": "markdown", + "id": "82a53b80-9600-482d-a41a-7be912059ffa", + "metadata": {}, + "source": [ + ":::{tip}\n", "\n", "If this is your own account, remember to visit the Billing Report page that you bookmarked daily.\n", - "```\n", "\n", - "```{admonition} Tip\n", - ":class: tip\n", + ":::" + ] + }, + { + "cell_type": "markdown", + "id": "753d0da7-d327-481e-a28a-333f14153e5d", + "metadata": {}, + "source": [ + ":::{tip}\n", "\n", "You can also create, list, and destroy resources easily from the cli with the `gcloud` and `gsutil` commands.\n", - "```" + "\n", + ":::" ] } ],