diff --git a/gcp_docs.ipynb b/gcp_docs.ipynb index 99d1a22..db73e1f 100644 --- a/gcp_docs.ipynb +++ b/gcp_docs.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "code", - "execution_count": 1, + "execution_count": 178, "id": "7e66c738-f269-4cc6-ab32-e91fb65b234d", "metadata": {}, "outputs": [], @@ -19,7 +19,7 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": 179, "id": "f85f4df7-3173-4ed9-ae1b-83b02088b00f", "metadata": {}, "outputs": [], @@ -62,7 +62,8 @@ " if self.title:\n", " return self.title\n", "\n", - " title = self.soup.find('h1', class_='devsite-page-title').find(string=True, recursive=False).strip()\n", + " # title = self.soup.find('h1', class_='devsite-page-title').find(string=True, recursive=False).strip()\n", + " title = self.soup.find('h1').find(string=True, recursive=False).strip()\n", " if not title:\n", " self.title = '{} | No Title'.format(self.url)\n", " else:\n", @@ -96,7 +97,7 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 180, "id": "46dff4b3-949f-40ac-b8e3-cd89c5b20461", "metadata": {}, "outputs": [], @@ -106,28 +107,30 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 181, "id": "5c6233b9-498b-44e4-9a87-e58aaa281ba9", "metadata": {}, "outputs": [], "source": [ "# eventarc = Website('https://cloud.google.com/eventarc/docs')\n", - "eventarc = Website('https://cloud.google.com/compute/docs/overview')" + "# eventarc = Website('https://cloud.google.com/build/docs/deploying-builds/deploy-compute-engine')\n", + "# eventarc = Website('https://cloud.google.com/compute/docs/troubleshooting/troubleshooting-using-serial-console')\n", + "eventarc = Website('https://cloud.google.com/functions/docs/deploy')" ] }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 182, "id": "afa176e2-4024-493a-be97-f2526cca92cd", "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "'Compute Engine overview'" + "'Deploy a function'" ] }, - "execution_count": 5, + "execution_count": 182, "metadata": {}, "output_type": "execute_result" } @@ -138,17 +141,17 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 183, "id": "7dcaa961-55f9-4778-9d55-96e24b6e8c7e", "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "'Compute Engine overview'" + "'Deploy a function'" ] }, - "execution_count": 6, + "execution_count": 183, "metadata": {}, "output_type": "execute_result" } @@ -159,7 +162,7 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 184, "id": "030abb06-d590-43da-8333-184520f000b0", "metadata": {}, "outputs": [], @@ -169,25 +172,7 @@ }, { "cell_type": "code", - "execution_count": 8, - "id": "7d0e2f63-2d88-4d86-86c0-6d0cd1a463e4", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Compute Engine overview\n" - ] - } - ], - "source": [ - "print(soup.find('h1', class_='devsite-page-title').find(string=True, recursive=False).strip())" - ] - }, - { - "cell_type": "code", - "execution_count": 9, + "execution_count": 185, "id": "0c908d8b-0cdb-4617-ae9a-d411cca8b7f2", "metadata": {}, "outputs": [], @@ -197,7 +182,7 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": 186, "id": "e675fde6-664c-428c-98cc-c0d1ce4b82f1", "metadata": {}, "outputs": [], @@ -207,7 +192,7 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": 187, "id": "a841163b-84f2-4068-981e-4a99b5e1fcc5", "metadata": {}, "outputs": [ @@ -217,8 +202,8 @@ "text": [ "None\n", "Nope\n", - "\n", - "2025-05-06\n" + "\n", + "2025-05-23\n" ] } ], @@ -235,17 +220,17 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": 188, "id": "436065d7-d3fe-412a-b0b6-a774044290b3", "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "'2025-05-06'" + "'2025-05-23'" ] }, - "execution_count": 12, + "execution_count": 188, "metadata": {}, "output_type": "execute_result" } @@ -257,7 +242,7 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": 189, "id": "bb6ec155-ed4d-451a-9d0d-885f959ebd85", "metadata": {}, "outputs": [ @@ -267,7 +252,7 @@ "'https://cloud.google.com/docs/ai-ml'" ] }, - "execution_count": 13, + "execution_count": 189, "metadata": {}, "output_type": "execute_result" } @@ -279,7 +264,7 @@ }, { "cell_type": "code", - "execution_count": 14, + "execution_count": 190, "id": "0a740921-505c-4e4a-987f-fa8947a27ebd", "metadata": {}, "outputs": [], @@ -296,7 +281,7 @@ }, { "cell_type": "code", - "execution_count": 15, + "execution_count": 191, "id": "f9474a3e-579e-4923-b1e6-22b5c782cd5f", "metadata": { "scrolled": true @@ -305,563 +290,7 @@ { "data": { "text/plain": [ - "{'https://cloud.google.com/build/docs/deploying-builds/deploy-compute-engine',\n", - " 'https://cloud.google.com/compute/docs/about-confidential-vm',\n", - " 'https://cloud.google.com/compute/docs/about-shielded-vm',\n", - " 'https://cloud.google.com/compute/docs/accelerator-optimized-machines',\n", - " 'https://cloud.google.com/compute/docs/access',\n", - " 'https://cloud.google.com/compute/docs/access/app-authentication-methods',\n", - " 'https://cloud.google.com/compute/docs/access/authenticate-workloads',\n", - " 'https://cloud.google.com/compute/docs/access/authenticate-workloads-over-mtls',\n", - " 'https://cloud.google.com/compute/docs/access/create-enable-service-accounts-for-instances',\n", - " 'https://cloud.google.com/compute/docs/access/custom-constraints',\n", - " 'https://cloud.google.com/compute/docs/access/iam',\n", - " 'https://cloud.google.com/compute/docs/access/managing-access-to-resources',\n", - " 'https://cloud.google.com/compute/docs/access/service-accounts',\n", - " 'https://cloud.google.com/compute/docs/apis',\n", - " 'https://cloud.google.com/compute/docs/autoscaler',\n", - " 'https://cloud.google.com/compute/docs/autoscaler/managing-autoscalers',\n", - " 'https://cloud.google.com/compute/docs/autoscaler/multiple-signals',\n", - " 'https://cloud.google.com/compute/docs/autoscaler/predictive-autoscaling',\n", - " 'https://cloud.google.com/compute/docs/autoscaler/scaling-cloud-monitoring-metrics',\n", - " 'https://cloud.google.com/compute/docs/autoscaler/scaling-cpu',\n", - " 'https://cloud.google.com/compute/docs/autoscaler/scaling-load-balancing',\n", - " 'https://cloud.google.com/compute/docs/autoscaler/scaling-schedules',\n", - " 'https://cloud.google.com/compute/docs/autoscaler/understanding-autoscaler-decisions',\n", - " 'https://cloud.google.com/compute/docs/autoscaler/viewing-autoscaler-logs',\n", - " 'https://cloud.google.com/compute/docs/choose-compute-deployment-option',\n", - " 'https://cloud.google.com/compute/docs/committed-use-discounts/extend-commitment-term',\n", - " 'https://cloud.google.com/compute/docs/compute-optimized-machines',\n", - " 'https://cloud.google.com/compute/docs/connect/add-ssh-keys',\n", - " 'https://cloud.google.com/compute/docs/connect/create-ssh-keys',\n", - " 'https://cloud.google.com/compute/docs/connect/restrict-ssh-keys',\n", - " 'https://cloud.google.com/compute/docs/connect/root-ssh',\n", - " 'https://cloud.google.com/compute/docs/connect/set-up-service-account-ssh',\n", - " 'https://cloud.google.com/compute/docs/connect/ssh-best-practices',\n", - " 'https://cloud.google.com/compute/docs/connect/ssh-best-practices/auditing',\n", - " 'https://cloud.google.com/compute/docs/connect/ssh-best-practices/credentials',\n", - " 'https://cloud.google.com/compute/docs/connect/ssh-best-practices/login-access',\n", - " 'https://cloud.google.com/compute/docs/connect/ssh-best-practices/network-access',\n", - " 'https://cloud.google.com/compute/docs/connect/ssh-internal-ip',\n", - " 'https://cloud.google.com/compute/docs/connect/ssh-using-bastion-host',\n", - " 'https://cloud.google.com/compute/docs/connect/ssh-using-iap',\n", - " 'https://cloud.google.com/compute/docs/connect/ssh-using-vpn',\n", - " 'https://cloud.google.com/compute/docs/connect/standard-ssh',\n", - " 'https://cloud.google.com/compute/docs/connect/windows-ssh',\n", - " 'https://cloud.google.com/compute/docs/containers',\n", - " 'https://cloud.google.com/compute/docs/containers/configuring-options-to-run-containers',\n", - " 'https://cloud.google.com/compute/docs/containers/deploying-containers',\n", - " 'https://cloud.google.com/compute/docs/containers/openshift-ha',\n", - " 'https://cloud.google.com/compute/docs/coremark-scores-of-vm-instances',\n", - " 'https://cloud.google.com/compute/docs/cpu-platforms',\n", - " 'https://cloud.google.com/compute/docs/create-linux-vm-instance',\n", - " 'https://cloud.google.com/compute/docs/create-windows-server-vm-instance',\n", - " 'https://cloud.google.com/compute/docs/disks',\n", - " 'https://cloud.google.com/compute/docs/disks/about-regional-persistent-disk',\n", - " 'https://cloud.google.com/compute/docs/disks/about-snapshot-schedules',\n", - " 'https://cloud.google.com/compute/docs/disks/add-hyperdisk',\n", - " 'https://cloud.google.com/compute/docs/disks/add-local-ssd',\n", - " 'https://cloud.google.com/compute/docs/disks/add-persistent-disk',\n", - " 'https://cloud.google.com/compute/docs/disks/analyze-iops-hyperdisk',\n", - " 'https://cloud.google.com/compute/docs/disks/async-pd/about',\n", - " 'https://cloud.google.com/compute/docs/disks/async-pd/configure',\n", - " 'https://cloud.google.com/compute/docs/disks/async-pd/failover-failback',\n", - " 'https://cloud.google.com/compute/docs/disks/async-pd/manage-async-disks',\n", - " 'https://cloud.google.com/compute/docs/disks/async-pd/manage-consistency-groups',\n", - " 'https://cloud.google.com/compute/docs/disks/async-pd/manage-replication',\n", - " 'https://cloud.google.com/compute/docs/disks/async-pd/performance',\n", - " 'https://cloud.google.com/compute/docs/disks/attach-disks',\n", - " 'https://cloud.google.com/compute/docs/disks/benchmark-hyperdisk-performance',\n", - " 'https://cloud.google.com/compute/docs/disks/benchmarking-local-ssd-performance',\n", - " 'https://cloud.google.com/compute/docs/disks/benchmarking-pd-performance-linux',\n", - " 'https://cloud.google.com/compute/docs/disks/benchmarking-pd-performance-windows',\n", - " 'https://cloud.google.com/compute/docs/disks/clone-duplicate-disks',\n", - " 'https://cloud.google.com/compute/docs/disks/convert-instant-snapshot',\n", - " 'https://cloud.google.com/compute/docs/disks/create-alert-snapshot-schedule',\n", - " 'https://cloud.google.com/compute/docs/disks/create-instant-snapshots',\n", - " 'https://cloud.google.com/compute/docs/disks/create-root-persistent-disks',\n", - " 'https://cloud.google.com/compute/docs/disks/create-snapshots',\n", - " 'https://cloud.google.com/compute/docs/disks/create-storage-pools',\n", - " 'https://cloud.google.com/compute/docs/disks/creating-linux-application-consistent-pd-snapshots',\n", - " 'https://cloud.google.com/compute/docs/disks/customer-managed-encryption',\n", - " 'https://cloud.google.com/compute/docs/disks/customer-supplied-encryption',\n", - " 'https://cloud.google.com/compute/docs/disks/data-protection',\n", - " 'https://cloud.google.com/compute/docs/disks/default-backup',\n", - " 'https://cloud.google.com/compute/docs/disks/design-considerations-for-resilient-workloads-with-regional-persistent-disks',\n", - " 'https://cloud.google.com/compute/docs/disks/detach-reattach-boot-disk',\n", - " 'https://cloud.google.com/compute/docs/disks/disk-encryption',\n", - " 'https://cloud.google.com/compute/docs/disks/disk-health',\n", - " 'https://cloud.google.com/compute/docs/disks/disk-symlinks',\n", - " 'https://cloud.google.com/compute/docs/disks/extreme-persistent-disk',\n", - " 'https://cloud.google.com/compute/docs/disks/format-mount-disk-linux',\n", - " 'https://cloud.google.com/compute/docs/disks/format-mount-disk-windows',\n", - " 'https://cloud.google.com/compute/docs/disks/hd-types/hyperdisk-balanced',\n", - " 'https://cloud.google.com/compute/docs/disks/hd-types/hyperdisk-balanced-ha',\n", - " 'https://cloud.google.com/compute/docs/disks/hd-types/hyperdisk-extreme',\n", - " 'https://cloud.google.com/compute/docs/disks/hd-types/hyperdisk-ml',\n", - " 'https://cloud.google.com/compute/docs/disks/hd-types/hyperdisk-throughput',\n", - " 'https://cloud.google.com/compute/docs/disks/high-availability-regional-persistent-disk',\n", - " 'https://cloud.google.com/compute/docs/disks/hyperdisk-perf-limits',\n", - " 'https://cloud.google.com/compute/docs/disks/hyperdisk-performance',\n", - " 'https://cloud.google.com/compute/docs/disks/hyperdisks',\n", - " 'https://cloud.google.com/compute/docs/disks/instant-snapshots',\n", - " 'https://cloud.google.com/compute/docs/disks/local-ssd',\n", - " 'https://cloud.google.com/compute/docs/disks/manage-snapshot-schedules',\n", - " 'https://cloud.google.com/compute/docs/disks/manage-snapshots',\n", - " 'https://cloud.google.com/compute/docs/disks/manage-storage-pools',\n", - " 'https://cloud.google.com/compute/docs/disks/migrate-to-hyperdisk',\n", - " 'https://cloud.google.com/compute/docs/disks/modify-hyperdisks',\n", - " 'https://cloud.google.com/compute/docs/disks/modify-persistent-disk',\n", - " 'https://cloud.google.com/compute/docs/disks/monitor-disks',\n", - " 'https://cloud.google.com/compute/docs/disks/monitor-pool-performance',\n", - " 'https://cloud.google.com/compute/docs/disks/monitor-regional-persistent-disk-replica-state',\n", - " 'https://cloud.google.com/compute/docs/disks/mount-ram-disks',\n", - " 'https://cloud.google.com/compute/docs/disks/optimize-hyperdisk',\n", - " 'https://cloud.google.com/compute/docs/disks/optimizing-local-ssd-performance',\n", - " 'https://cloud.google.com/compute/docs/disks/optimizing-pd-performance',\n", - " 'https://cloud.google.com/compute/docs/disks/performance',\n", - " 'https://cloud.google.com/compute/docs/disks/persistent-disks',\n", - " 'https://cloud.google.com/compute/docs/disks/recover-vm',\n", - " 'https://cloud.google.com/compute/docs/disks/regional-persistent-disk',\n", - " 'https://cloud.google.com/compute/docs/disks/repd-failover',\n", - " 'https://cloud.google.com/compute/docs/disks/resize-persistent-disk',\n", - " 'https://cloud.google.com/compute/docs/disks/restore-instant-snapshot',\n", - " 'https://cloud.google.com/compute/docs/disks/restore-snapshot',\n", - " 'https://cloud.google.com/compute/docs/disks/review-disk-metrics',\n", - " 'https://cloud.google.com/compute/docs/disks/review-storage-pool-metrics',\n", - " 'https://cloud.google.com/compute/docs/disks/scheduled-snapshots',\n", - " 'https://cloud.google.com/compute/docs/disks/set-persistent-device-name-in-linux-vm',\n", - " 'https://cloud.google.com/compute/docs/disks/set-snapshot-scope',\n", - " 'https://cloud.google.com/compute/docs/disks/sharing-disks-between-vms',\n", - " 'https://cloud.google.com/compute/docs/disks/snapshot-best-practices',\n", - " 'https://cloud.google.com/compute/docs/disks/snapshot-settings',\n", - " 'https://cloud.google.com/compute/docs/disks/snapshots',\n", - " 'https://cloud.google.com/compute/docs/disks/storage-pools',\n", - " 'https://cloud.google.com/compute/docs/disks/use-storage-pool-capacity',\n", - " 'https://cloud.google.com/compute/docs/dynamic-resource-management',\n", - " 'https://cloud.google.com/compute/docs/enable-pmu-in-vms',\n", - " 'https://cloud.google.com/compute/docs/general-purpose-machines',\n", - " 'https://cloud.google.com/compute/docs/gpus',\n", - " 'https://cloud.google.com/compute/docs/gpus/about-gpus',\n", - " 'https://cloud.google.com/compute/docs/gpus/add-remove-gpus',\n", - " 'https://cloud.google.com/compute/docs/gpus/create-gpu-vm-a3u-a4',\n", - " 'https://cloud.google.com/compute/docs/gpus/create-gpu-vm-accelerator-optimized',\n", - " 'https://cloud.google.com/compute/docs/gpus/create-gpu-vm-bulk',\n", - " 'https://cloud.google.com/compute/docs/gpus/create-gpu-vm-general-purpose',\n", - " 'https://cloud.google.com/compute/docs/gpus/create-vm-with-gpus',\n", - " 'https://cloud.google.com/compute/docs/gpus/gpu-host-maintenance',\n", - " 'https://cloud.google.com/compute/docs/gpus/gpu-network-bandwidth',\n", - " 'https://cloud.google.com/compute/docs/gpus/gpu-regions-zones',\n", - " 'https://cloud.google.com/compute/docs/gpus/gpudirect',\n", - " 'https://cloud.google.com/compute/docs/gpus/grid-drivers-table',\n", - " 'https://cloud.google.com/compute/docs/gpus/install-drivers-gpu',\n", - " 'https://cloud.google.com/compute/docs/gpus/install-grid-drivers',\n", - " 'https://cloud.google.com/compute/docs/gpus/monitor-gpus',\n", - " 'https://cloud.google.com/compute/docs/gpus/monitor-gpus-windows',\n", - " 'https://cloud.google.com/compute/docs/gpus/optimize-gpus',\n", - " 'https://cloud.google.com/compute/docs/gpus/overview',\n", - " 'https://cloud.google.com/compute/docs/images',\n", - " 'https://cloud.google.com/compute/docs/images/building-custom-os',\n", - " 'https://cloud.google.com/compute/docs/images/create-custom',\n", - " 'https://cloud.google.com/compute/docs/images/creating-an-image-from-an-iso-file',\n", - " 'https://cloud.google.com/compute/docs/images/creating-custom-windows-byol-images',\n", - " 'https://cloud.google.com/compute/docs/images/delete-custom',\n", - " 'https://cloud.google.com/compute/docs/images/deprecate-custom',\n", - " 'https://cloud.google.com/compute/docs/images/export-image',\n", - " 'https://cloud.google.com/compute/docs/images/guest-environment',\n", - " 'https://cloud.google.com/compute/docs/images/image-families-best-practices',\n", - " 'https://cloud.google.com/compute/docs/images/image-management-best-practices',\n", - " 'https://cloud.google.com/compute/docs/images/install-guest-environment',\n", - " 'https://cloud.google.com/compute/docs/images/managing-access-custom-images',\n", - " 'https://cloud.google.com/compute/docs/images/os-details',\n", - " 'https://cloud.google.com/compute/docs/images/os-image-lifecycle',\n", - " 'https://cloud.google.com/compute/docs/images/premium/access-rhel-knowledgebase',\n", - " 'https://cloud.google.com/compute/docs/images/premium/rhel-faq',\n", - " 'https://cloud.google.com/compute/docs/images/premium/rhel/appending-els-licenses',\n", - " 'https://cloud.google.com/compute/docs/images/premium/sles-faq',\n", - " 'https://cloud.google.com/compute/docs/images/premium/ubuntu-pro-faq',\n", - " 'https://cloud.google.com/compute/docs/images/premium/ubuntu-pro/upgrade-from-ubuntu',\n", - " 'https://cloud.google.com/compute/docs/images/restricting-image-access',\n", - " 'https://cloud.google.com/compute/docs/images/set-version-custom',\n", - " 'https://cloud.google.com/compute/docs/images/support-maintenance-policy',\n", - " 'https://cloud.google.com/compute/docs/import',\n", - " 'https://cloud.google.com/compute/docs/import/configuring-imported-images',\n", - " 'https://cloud.google.com/compute/docs/import/import-existing-image',\n", - " 'https://cloud.google.com/compute/docs/import/import-ovf-files',\n", - " 'https://cloud.google.com/compute/docs/import/importing-virtual-disks',\n", - " 'https://cloud.google.com/compute/docs/import/migrate-to-new-vm',\n", - " 'https://cloud.google.com/compute/docs/import/requirements-export-import-images',\n", - " 'https://cloud.google.com/compute/docs/instance-groups',\n", - " 'https://cloud.google.com/compute/docs/instance-groups/about-instance-flexibility',\n", - " 'https://cloud.google.com/compute/docs/instance-groups/about-repair',\n", - " 'https://cloud.google.com/compute/docs/instance-groups/about-resize-requests-mig',\n", - " 'https://cloud.google.com/compute/docs/instance-groups/accelerate-mig-scale-out-with-standby-pools',\n", - " 'https://cloud.google.com/compute/docs/instance-groups/add-remove-vms-in-mig',\n", - " 'https://cloud.google.com/compute/docs/instance-groups/adding-an-instance-group-to-a-load-balancer',\n", - " 'https://cloud.google.com/compute/docs/instance-groups/apply-machine-type-recommendations-managed-instance-groups',\n", - " 'https://cloud.google.com/compute/docs/instance-groups/applying-viewing-removing-stateful-config-in-migs',\n", - " 'https://cloud.google.com/compute/docs/instance-groups/autohealing-instances-in-migs',\n", - " 'https://cloud.google.com/compute/docs/instance-groups/change-or-remove-instance-flexibility-configuration',\n", - " 'https://cloud.google.com/compute/docs/instance-groups/configure-instance-flexibility',\n", - " 'https://cloud.google.com/compute/docs/instance-groups/configuring-stateful-disks-in-migs',\n", - " 'https://cloud.google.com/compute/docs/instance-groups/configuring-stateful-ip-addresses-in-migs',\n", - " 'https://cloud.google.com/compute/docs/instance-groups/configuring-stateful-metadata-in-migs',\n", - " 'https://cloud.google.com/compute/docs/instance-groups/configuring-stateful-migs',\n", - " 'https://cloud.google.com/compute/docs/instance-groups/create-mig-from-vm',\n", - " 'https://cloud.google.com/compute/docs/instance-groups/create-mig-with-basic-autoscaling',\n", - " 'https://cloud.google.com/compute/docs/instance-groups/create-mig-with-basic-stateful-disks',\n", - " 'https://cloud.google.com/compute/docs/instance-groups/create-mig-with-gpu-vms',\n", - " 'https://cloud.google.com/compute/docs/instance-groups/create-mig-with-multiple-machine-types',\n", - " 'https://cloud.google.com/compute/docs/instance-groups/create-mig-with-preemptible-vms',\n", - " 'https://cloud.google.com/compute/docs/instance-groups/create-resize-requests-mig',\n", - " 'https://cloud.google.com/compute/docs/instance-groups/create-zonal-mig',\n", - " 'https://cloud.google.com/compute/docs/instance-groups/creating-groups-of-managed-instances',\n", - " 'https://cloud.google.com/compute/docs/instance-groups/creating-groups-of-unmanaged-instances',\n", - " 'https://cloud.google.com/compute/docs/instance-groups/delete-mig',\n", - " 'https://cloud.google.com/compute/docs/instance-groups/disabling-and-enabling-health-state-change-logs',\n", - " 'https://cloud.google.com/compute/docs/instance-groups/distributing-instances-with-regional-instance-groups',\n", - " 'https://cloud.google.com/compute/docs/instance-groups/getting-info-about-migs',\n", - " 'https://cloud.google.com/compute/docs/instance-groups/how-stateful-migs-work',\n", - " 'https://cloud.google.com/compute/docs/instance-groups/limit-vm-runtime-in-migs',\n", - " 'https://cloud.google.com/compute/docs/instance-groups/manage-resize-requests-mig',\n", - " 'https://cloud.google.com/compute/docs/instance-groups/manually-suspend-or-stop-vms-in-mig',\n", - " 'https://cloud.google.com/compute/docs/instance-groups/monitoring-managed-instance-health-state-changes',\n", - " 'https://cloud.google.com/compute/docs/instance-groups/preserved-state',\n", - " 'https://cloud.google.com/compute/docs/instance-groups/regional-mig-distribution-shape',\n", - " 'https://cloud.google.com/compute/docs/instance-groups/regional-mig-enable-disable-proactive-redistribution',\n", - " 'https://cloud.google.com/compute/docs/instance-groups/regional-mig-rebalance-manually',\n", - " 'https://cloud.google.com/compute/docs/instance-groups/regional-mig-set-target-distribution-shape',\n", - " 'https://cloud.google.com/compute/docs/instance-groups/regional-mig-simulate-zonal-outage',\n", - " 'https://cloud.google.com/compute/docs/instance-groups/regional-migs',\n", - " 'https://cloud.google.com/compute/docs/instance-groups/rolling-out-updates-to-managed-instance-groups',\n", - " 'https://cloud.google.com/compute/docs/instance-groups/set-mig-aic',\n", - " 'https://cloud.google.com/compute/docs/instance-groups/stateful-migs',\n", - " 'https://cloud.google.com/compute/docs/instance-groups/suspended-and-stopped-vms-in-mig',\n", - " 'https://cloud.google.com/compute/docs/instance-groups/turn-off-vm-repairs-in-mig',\n", - " 'https://cloud.google.com/compute/docs/instance-groups/update-on-repair',\n", - " 'https://cloud.google.com/compute/docs/instance-groups/updating-migs',\n", - " 'https://cloud.google.com/compute/docs/instance-groups/updating-selected-instances-in-a-mig',\n", - " 'https://cloud.google.com/compute/docs/instance-groups/upgrading-images-in-migs',\n", - " 'https://cloud.google.com/compute/docs/instance-groups/view-and-understand-mig-insights',\n", - " 'https://cloud.google.com/compute/docs/instance-groups/view-instance-flexibility-configuration',\n", - " 'https://cloud.google.com/compute/docs/instance-groups/working-with-managed-instances',\n", - " 'https://cloud.google.com/compute/docs/instance-templates',\n", - " 'https://cloud.google.com/compute/docs/instance-templates/create-instance-templates',\n", - " 'https://cloud.google.com/compute/docs/instance-templates/deterministic-instance-templates',\n", - " 'https://cloud.google.com/compute/docs/instance-templates/get-list-delete-instance-templates',\n", - " 'https://cloud.google.com/compute/docs/instances',\n", - " 'https://cloud.google.com/compute/docs/instances/about-vm-tenancy',\n", - " 'https://cloud.google.com/compute/docs/instances/access-overview',\n", - " 'https://cloud.google.com/compute/docs/instances/agent-for-compute-workloads',\n", - " 'https://cloud.google.com/compute/docs/instances/apply-machine-type-recommendations-for-instances',\n", - " 'https://cloud.google.com/compute/docs/instances/arm-on-compute',\n", - " 'https://cloud.google.com/compute/docs/instances/artifact-registry-os-packages',\n", - " 'https://cloud.google.com/compute/docs/instances/bare-metal-instances',\n", - " 'https://cloud.google.com/compute/docs/instances/change-service-account',\n", - " 'https://cloud.google.com/compute/docs/instances/changing-machine-type-of-stopped-instance',\n", - " 'https://cloud.google.com/compute/docs/instances/choose-reservation-type',\n", - " 'https://cloud.google.com/compute/docs/instances/committed-use-discounts-overview',\n", - " 'https://cloud.google.com/compute/docs/instances/configure-idle-reservation-recommendations',\n", - " 'https://cloud.google.com/compute/docs/instances/configure-machine-type-recommendations',\n", - " 'https://cloud.google.com/compute/docs/instances/configure-ntp',\n", - " 'https://cloud.google.com/compute/docs/instances/configure-underutilized-reservation-recommendations',\n", - " 'https://cloud.google.com/compute/docs/instances/configuring-idle-vm-recommendations',\n", - " 'https://cloud.google.com/compute/docs/instances/connecting-to-sac',\n", - " 'https://cloud.google.com/compute/docs/instances/connecting-to-windows',\n", - " 'https://cloud.google.com/compute/docs/instances/copy-vm-between-projects',\n", - " 'https://cloud.google.com/compute/docs/instances/create-future-reservations-calendar-mode',\n", - " 'https://cloud.google.com/compute/docs/instances/create-hpc-vm',\n", - " 'https://cloud.google.com/compute/docs/instances/create-instance-with-gcbdr-backup-plan',\n", - " 'https://cloud.google.com/compute/docs/instances/create-ipv6-instance',\n", - " 'https://cloud.google.com/compute/docs/instances/create-ptr-record',\n", - " 'https://cloud.google.com/compute/docs/instances/create-rhel-byos-vm',\n", - " 'https://cloud.google.com/compute/docs/instances/create-shared-future-reservations',\n", - " 'https://cloud.google.com/compute/docs/instances/create-single-project-future-reservations',\n", - " 'https://cloud.google.com/compute/docs/instances/create-start-instance',\n", - " 'https://cloud.google.com/compute/docs/instances/create-use-preemptible',\n", - " 'https://cloud.google.com/compute/docs/instances/create-use-spot',\n", - " 'https://cloud.google.com/compute/docs/instances/create-vm-from-custom-image',\n", - " 'https://cloud.google.com/compute/docs/instances/create-vm-from-instance-template',\n", - " 'https://cloud.google.com/compute/docs/instances/create-vm-from-public-image',\n", - " 'https://cloud.google.com/compute/docs/instances/create-vm-from-shared-image',\n", - " 'https://cloud.google.com/compute/docs/instances/create-vm-from-similar-instance',\n", - " 'https://cloud.google.com/compute/docs/instances/create-vm-ops-agent-monitoring-logging',\n", - " 'https://cloud.google.com/compute/docs/instances/create-vm-specific-subnet',\n", - " 'https://cloud.google.com/compute/docs/instances/create-vm-with-additional-non-boot-disks',\n", - " 'https://cloud.google.com/compute/docs/instances/create-workload-optimized-instance',\n", - " 'https://cloud.google.com/compute/docs/instances/creating-instance-with-custom-machine-type',\n", - " 'https://cloud.google.com/compute/docs/instances/custom-hostname-vm',\n", - " 'https://cloud.google.com/compute/docs/instances/customize-visible-cores',\n", - " 'https://cloud.google.com/compute/docs/instances/delete-future-reservations',\n", - " 'https://cloud.google.com/compute/docs/instances/deleting-instance',\n", - " 'https://cloud.google.com/compute/docs/instances/detect-compute-engine',\n", - " 'https://cloud.google.com/compute/docs/instances/disable-graceful-shutdown',\n", - " 'https://cloud.google.com/compute/docs/instances/enable-graceful-shutdown',\n", - " 'https://cloud.google.com/compute/docs/instances/enable-instance-virtual-display',\n", - " 'https://cloud.google.com/compute/docs/instances/enabling-virtio-rng',\n", - " 'https://cloud.google.com/compute/docs/instances/future-reservations-calendar-mode-overview',\n", - " 'https://cloud.google.com/compute/docs/instances/future-reservations-overview',\n", - " 'https://cloud.google.com/compute/docs/instances/get-list',\n", - " 'https://cloud.google.com/compute/docs/instances/get-uuid',\n", - " 'https://cloud.google.com/compute/docs/instances/graceful-shutdown-overview',\n", - " 'https://cloud.google.com/compute/docs/instances/host-maintenance-overview',\n", - " 'https://cloud.google.com/compute/docs/instances/idle-vm-recommendations-overview',\n", - " 'https://cloud.google.com/compute/docs/instances/instance-creation-overview',\n", - " 'https://cloud.google.com/compute/docs/instances/instance-lifecycle',\n", - " 'https://cloud.google.com/compute/docs/instances/limit-vm-runtime',\n", - " 'https://cloud.google.com/compute/docs/instances/live-migration-process',\n", - " 'https://cloud.google.com/compute/docs/instances/manage-placement-policies',\n", - " 'https://cloud.google.com/compute/docs/instances/merge-and-split-commitments',\n", - " 'https://cloud.google.com/compute/docs/instances/migrating-interfaces-between-networks',\n", - " 'https://cloud.google.com/compute/docs/instances/modify-future-reservations',\n", - " 'https://cloud.google.com/compute/docs/instances/monitor-plan-host-maintenance-event',\n", - " 'https://cloud.google.com/compute/docs/instances/moving-instance-across-zones',\n", - " 'https://cloud.google.com/compute/docs/instances/multiple/about-bulk-creation',\n", - " 'https://cloud.google.com/compute/docs/instances/multiple/create-in-bulk',\n", - " 'https://cloud.google.com/compute/docs/instances/nested-virtualization/creating-nested-vms',\n", - " 'https://cloud.google.com/compute/docs/instances/nested-virtualization/enabling',\n", - " 'https://cloud.google.com/compute/docs/instances/nested-virtualization/managing-constraint',\n", - " 'https://cloud.google.com/compute/docs/instances/nested-virtualization/overview',\n", - " 'https://cloud.google.com/compute/docs/instances/observe-monitor-vms',\n", - " 'https://cloud.google.com/compute/docs/instances/permissions-tutorial',\n", - " 'https://cloud.google.com/compute/docs/instances/placement-policies-overview',\n", - " 'https://cloud.google.com/compute/docs/instances/preemptible',\n", - " 'https://cloud.google.com/compute/docs/instances/preventing-accidental-vm-deletion',\n", - " 'https://cloud.google.com/compute/docs/instances/protecting-resources-vpc-service-controls',\n", - " 'https://cloud.google.com/compute/docs/instances/provisioning-models',\n", - " 'https://cloud.google.com/compute/docs/instances/rename-instance',\n", - " 'https://cloud.google.com/compute/docs/instances/renew-commitments-automatically',\n", - " 'https://cloud.google.com/compute/docs/instances/reservation-recommendations-overview',\n", - " 'https://cloud.google.com/compute/docs/instances/reservations-consume',\n", - " 'https://cloud.google.com/compute/docs/instances/reservations-delete',\n", - " 'https://cloud.google.com/compute/docs/instances/reservations-modify',\n", - " 'https://cloud.google.com/compute/docs/instances/reservations-monitor',\n", - " 'https://cloud.google.com/compute/docs/instances/reservations-prevent-consumption',\n", - " 'https://cloud.google.com/compute/docs/instances/reservations-shared',\n", - " 'https://cloud.google.com/compute/docs/instances/reservations-single-project',\n", - " 'https://cloud.google.com/compute/docs/instances/reservations-view',\n", - " 'https://cloud.google.com/compute/docs/instances/reservations-with-commitments',\n", - " 'https://cloud.google.com/compute/docs/instances/reset-instance',\n", - " 'https://cloud.google.com/compute/docs/instances/schedule-instance-start-stop',\n", - " 'https://cloud.google.com/compute/docs/instances/set-threads-per-core',\n", - " 'https://cloud.google.com/compute/docs/instances/setting-vm-host-options',\n", - " 'https://cloud.google.com/compute/docs/instances/signing-up-committed-use-discounts',\n", - " 'https://cloud.google.com/compute/docs/instances/simulating-host-maintenance',\n", - " 'https://cloud.google.com/compute/docs/instances/specify-min-cpu-platform',\n", - " 'https://cloud.google.com/compute/docs/instances/spot',\n", - " 'https://cloud.google.com/compute/docs/instances/sql-server/adding-sql-server-license',\n", - " 'https://cloud.google.com/compute/docs/instances/sql-server/adding-sql-server-license-to-linux',\n", - " 'https://cloud.google.com/compute/docs/instances/sql-server/best-practices',\n", - " 'https://cloud.google.com/compute/docs/instances/sql-server/cloning-a-microsoft-sql-server-database-on-compute-engine',\n", - " 'https://cloud.google.com/compute/docs/instances/sql-server/cloning-a-mysql-database-on-compute-engine',\n", - " 'https://cloud.google.com/compute/docs/instances/sql-server/configure-availability',\n", - " 'https://cloud.google.com/compute/docs/instances/sql-server/configure-availability-dnn',\n", - " 'https://cloud.google.com/compute/docs/instances/sql-server/configure-failover-cluster-instance',\n", - " 'https://cloud.google.com/compute/docs/instances/sql-server/configure-failover-cluster-instance-with-multi-writer',\n", - " 'https://cloud.google.com/compute/docs/instances/sql-server/creating-sql-server-instances',\n", - " 'https://cloud.google.com/compute/docs/instances/sql-server/deploying-highly-available-mysql-cluster-with-drbd-on-compute-engine',\n", - " 'https://cloud.google.com/compute/docs/instances/sql-server/deploying-microsoft-sql-server-multi-regional-disaster-recovery',\n", - " 'https://cloud.google.com/compute/docs/instances/sql-server/disaster-recovery-for-microsoft-sql-server',\n", - " 'https://cloud.google.com/compute/docs/instances/sql-server/dr-for-microsoft-sql-server-with-async-pd',\n", - " 'https://cloud.google.com/compute/docs/instances/sql-server/migrate-sql-server-database-from-windows-to-linux',\n", - " 'https://cloud.google.com/compute/docs/instances/sql-server/mysql-remote-access',\n", - " 'https://cloud.google.com/compute/docs/instances/sql-server/setup-mysql',\n", - " 'https://cloud.google.com/compute/docs/instances/ssh',\n", - " 'https://cloud.google.com/compute/docs/instances/startup-scripts',\n", - " 'https://cloud.google.com/compute/docs/instances/startup-scripts/linux',\n", - " 'https://cloud.google.com/compute/docs/instances/startup-scripts/windows',\n", - " 'https://cloud.google.com/compute/docs/instances/stop-start-instance',\n", - " 'https://cloud.google.com/compute/docs/instances/suspend-resume-instance',\n", - " 'https://cloud.google.com/compute/docs/instances/suspend-stop-reset-instances-overview',\n", - " 'https://cloud.google.com/compute/docs/instances/transfer-files',\n", - " 'https://cloud.google.com/compute/docs/instances/transfer-files-windows',\n", - " 'https://cloud.google.com/compute/docs/instances/trigger-host-maintenance-event',\n", - " 'https://cloud.google.com/compute/docs/instances/update-instance-properties',\n", - " 'https://cloud.google.com/compute/docs/instances/upgrade-commitment-term',\n", - " 'https://cloud.google.com/compute/docs/instances/use-compact-placement-policies',\n", - " 'https://cloud.google.com/compute/docs/instances/use-spread-placement-policies',\n", - " 'https://cloud.google.com/compute/docs/instances/verifying-instance-identity',\n", - " 'https://cloud.google.com/compute/docs/instances/view-and-apply-idle-reservation-recommendations',\n", - " 'https://cloud.google.com/compute/docs/instances/view-and-apply-underutilized-reservation-recommendations',\n", - " 'https://cloud.google.com/compute/docs/instances/view-and-understand-vm-insights',\n", - " 'https://cloud.google.com/compute/docs/instances/view-graceful-shutdown',\n", - " 'https://cloud.google.com/compute/docs/instances/view-network-properties',\n", - " 'https://cloud.google.com/compute/docs/instances/view-placement-policies',\n", - " 'https://cloud.google.com/compute/docs/instances/view-references-between-resources',\n", - " 'https://cloud.google.com/compute/docs/instances/view-visible-cores',\n", - " 'https://cloud.google.com/compute/docs/instances/view-vm-details',\n", - " 'https://cloud.google.com/compute/docs/instances/view-vm-image',\n", - " 'https://cloud.google.com/compute/docs/instances/viewing-and-applying-idle-vm-recommendations',\n", - " 'https://cloud.google.com/compute/docs/instances/viewing-compute-operations',\n", - " 'https://cloud.google.com/compute/docs/instances/windows',\n", - " 'https://cloud.google.com/compute/docs/instances/windows/automate-pw-generation',\n", - " 'https://cloud.google.com/compute/docs/instances/windows/best-practices',\n", - " 'https://cloud.google.com/compute/docs/instances/windows/connecting-powershell',\n", - " 'https://cloud.google.com/compute/docs/instances/windows/creating-managing-windows-instances',\n", - " 'https://cloud.google.com/compute/docs/instances/windows/creating-windows-os-image',\n", - " 'https://cloud.google.com/compute/docs/instances/windows/creating-windows-persistent-disk-snapshot',\n", - " 'https://cloud.google.com/compute/docs/instances/windows/deploying-microsoft-exchange-server-2016-on-compute-engine',\n", - " 'https://cloud.google.com/compute/docs/instances/windows/deploying-microsoft-sharepoint-server-on-compute-engine',\n", - " 'https://cloud.google.com/compute/docs/instances/windows/generating-credentials',\n", - " 'https://cloud.google.com/compute/docs/instances/windows/license-manager',\n", - " 'https://cloud.google.com/compute/docs/instances/windows/lima-audit-logging',\n", - " 'https://cloud.google.com/compute/docs/instances/windows/ms-licensing',\n", - " 'https://cloud.google.com/compute/docs/instances/windows/ms-licensing-faq',\n", - " 'https://cloud.google.com/compute/docs/instances/windows/ms-office',\n", - " 'https://cloud.google.com/compute/docs/instances/windows/windows-best-practices',\n", - " 'https://cloud.google.com/compute/docs/internal-dns',\n", - " 'https://cloud.google.com/compute/docs/ip-addresses',\n", - " 'https://cloud.google.com/compute/docs/ip-addresses/configure-ipv6-address',\n", - " 'https://cloud.google.com/compute/docs/ip-addresses/configure-static-external-ip-address',\n", - " 'https://cloud.google.com/compute/docs/ip-addresses/configure-static-internal-ip-address',\n", - " 'https://cloud.google.com/compute/docs/labeling-resources',\n", - " 'https://cloud.google.com/compute/docs/licenses/about',\n", - " 'https://cloud.google.com/compute/docs/licenses/view-append',\n", - " 'https://cloud.google.com/compute/docs/load-balancing-and-autoscaling',\n", - " 'https://cloud.google.com/compute/docs/load-balancing/optimize-app-latency',\n", - " 'https://cloud.google.com/compute/docs/logging/activity-logs',\n", - " 'https://cloud.google.com/compute/docs/logging/audit-logging',\n", - " 'https://cloud.google.com/compute/docs/logging/migrating-from-activity-logs-to-audit-logs',\n", - " 'https://cloud.google.com/compute/docs/logging/usage-export',\n", - " 'https://cloud.google.com/compute/docs/machine-images',\n", - " 'https://cloud.google.com/compute/docs/machine-images/create-instance-from-machine-image',\n", - " 'https://cloud.google.com/compute/docs/machine-images/create-machine-images',\n", - " 'https://cloud.google.com/compute/docs/machine-images/import-machine-from-virtual-appliance',\n", - " 'https://cloud.google.com/compute/docs/machine-resource',\n", - " 'https://cloud.google.com/compute/docs/manage-pmu-in-vms',\n", - " 'https://cloud.google.com/compute/docs/memory-optimized-machines',\n", - " 'https://cloud.google.com/compute/docs/metadata/getting-live-migration-notice',\n", - " 'https://cloud.google.com/compute/docs/metadata/manage-guest-attributes',\n", - " 'https://cloud.google.com/compute/docs/metadata/overview',\n", - " 'https://cloud.google.com/compute/docs/metadata/predefined-metadata-keys',\n", - " 'https://cloud.google.com/compute/docs/metadata/querying-metadata',\n", - " 'https://cloud.google.com/compute/docs/metadata/setting-custom-metadata',\n", - " 'https://cloud.google.com/compute/docs/monitor-security-risks-console',\n", - " 'https://cloud.google.com/compute/docs/naming-resources',\n", - " 'https://cloud.google.com/compute/docs/network-bandwidth',\n", - " 'https://cloud.google.com/compute/docs/networking/benchmarking-higher-bandwidth-vms',\n", - " 'https://cloud.google.com/compute/docs/networking/configure-vm-with-high-bandwidth-configuration',\n", - " 'https://cloud.google.com/compute/docs/networking/migrate-to-zonal-dns',\n", - " 'https://cloud.google.com/compute/docs/networking/network-overview',\n", - " 'https://cloud.google.com/compute/docs/networking/tcp-optimization-for-network-performance-in-gcp-and-hybrid',\n", - " 'https://cloud.google.com/compute/docs/networking/use-dpdk',\n", - " 'https://cloud.google.com/compute/docs/networking/use-zonal-dns',\n", - " 'https://cloud.google.com/compute/docs/networking/using-gvnic',\n", - " 'https://cloud.google.com/compute/docs/networking/using-idpf',\n", - " 'https://cloud.google.com/compute/docs/networking/using-internal-dns',\n", - " 'https://cloud.google.com/compute/docs/networking/zonal-dns',\n", - " 'https://cloud.google.com/compute/docs/nodes/about-manual-live-migration',\n", - " 'https://cloud.google.com/compute/docs/nodes/autoscaling-node-groups',\n", - " 'https://cloud.google.com/compute/docs/nodes/bringing-your-own-licenses',\n", - " 'https://cloud.google.com/compute/docs/nodes/determining-server-usage',\n", - " 'https://cloud.google.com/compute/docs/nodes/manually-live-migrate',\n", - " 'https://cloud.google.com/compute/docs/nodes/overcommitting-cpus-sole-tenant-vms',\n", - " 'https://cloud.google.com/compute/docs/nodes/provisioning-sole-tenant-vms',\n", - " 'https://cloud.google.com/compute/docs/nodes/share-node-groups',\n", - " 'https://cloud.google.com/compute/docs/nodes/sole-tenancy-accounting-faq',\n", - " 'https://cloud.google.com/compute/docs/nodes/sole-tenancy-advanced-maintenance-control',\n", - " 'https://cloud.google.com/compute/docs/nodes/sole-tenant-best-practices',\n", - " 'https://cloud.google.com/compute/docs/nodes/sole-tenant-nodes',\n", - " 'https://cloud.google.com/compute/docs/nodes/updating-vm-tenancy',\n", - " 'https://cloud.google.com/compute/docs/oslogin',\n", - " 'https://cloud.google.com/compute/docs/oslogin/manage-oslogin-in-an-org',\n", - " 'https://cloud.google.com/compute/docs/oslogin/security-keys',\n", - " 'https://cloud.google.com/compute/docs/oslogin/set-up-oslogin',\n", - " 'https://cloud.google.com/compute/docs/oslogin/view-audit-logs',\n", - " 'https://cloud.google.com/compute/docs/overview',\n", - " 'https://cloud.google.com/compute/docs/pmu-overview',\n", - " 'https://cloud.google.com/compute/docs/quickstart-mig',\n", - " 'https://cloud.google.com/compute/docs/redis/deployment-options',\n", - " 'https://cloud.google.com/compute/docs/regions-zones',\n", - " 'https://cloud.google.com/compute/docs/regions-zones/changing-default-zone-region',\n", - " 'https://cloud.google.com/compute/docs/regions-zones/global-regional-zonal-resources',\n", - " 'https://cloud.google.com/compute/docs/regions-zones/viewing-regions-zones',\n", - " 'https://cloud.google.com/compute/docs/resources',\n", - " 'https://cloud.google.com/compute/docs/samples',\n", - " 'https://cloud.google.com/compute/docs/shutdownscript',\n", - " 'https://cloud.google.com/compute/docs/storage-optimized-machines',\n", - " 'https://cloud.google.com/compute/docs/sustained-use-discounts',\n", - " 'https://cloud.google.com/compute/docs/tag-resources',\n", - " 'https://cloud.google.com/compute/docs/troubleshooting/automatic-commitment-renewal',\n", - " 'https://cloud.google.com/compute/docs/troubleshooting/capturing-vm-screenshots',\n", - " 'https://cloud.google.com/compute/docs/troubleshooting/collecting-core-dumps',\n", - " 'https://cloud.google.com/compute/docs/troubleshooting/collecting-diagnostic-information',\n", - " 'https://cloud.google.com/compute/docs/troubleshooting/fstab-errors',\n", - " 'https://cloud.google.com/compute/docs/troubleshooting/general-tips',\n", - " 'https://cloud.google.com/compute/docs/troubleshooting/gvnic',\n", - " 'https://cloud.google.com/compute/docs/troubleshooting/import-migrate',\n", - " 'https://cloud.google.com/compute/docs/troubleshooting/kernel-panic',\n", - " 'https://cloud.google.com/compute/docs/troubleshooting/rescue-vm',\n", - " 'https://cloud.google.com/compute/docs/troubleshooting/troubleshoot-future-reservations',\n", - " 'https://cloud.google.com/compute/docs/troubleshooting/troubleshoot-metadata-server',\n", - " 'https://cloud.google.com/compute/docs/troubleshooting/troubleshoot-operation-limits',\n", - " 'https://cloud.google.com/compute/docs/troubleshooting/troubleshoot-os-login',\n", - " 'https://cloud.google.com/compute/docs/troubleshooting/troubleshooting-arm-vms',\n", - " 'https://cloud.google.com/compute/docs/troubleshooting/troubleshooting-bulk-vm-creation',\n", - " 'https://cloud.google.com/compute/docs/troubleshooting/troubleshooting-cpu-soft-lockup',\n", - " 'https://cloud.google.com/compute/docs/troubleshooting/troubleshooting-default-service-accounts',\n", - " 'https://cloud.google.com/compute/docs/troubleshooting/troubleshooting-disk-full-resize',\n", - " 'https://cloud.google.com/compute/docs/troubleshooting/troubleshooting-disk-nvme',\n", - " 'https://cloud.google.com/compute/docs/troubleshooting/troubleshooting-gpus',\n", - " 'https://cloud.google.com/compute/docs/troubleshooting/troubleshooting-import-export-images',\n", - " 'https://cloud.google.com/compute/docs/troubleshooting/troubleshooting-instant-snapshots',\n", - " 'https://cloud.google.com/compute/docs/troubleshooting/troubleshooting-migs',\n", - " 'https://cloud.google.com/compute/docs/troubleshooting/troubleshooting-nested-vms',\n", - " 'https://cloud.google.com/compute/docs/troubleshooting/troubleshooting-networking',\n", - " 'https://cloud.google.com/compute/docs/troubleshooting/troubleshooting-performance',\n", - " 'https://cloud.google.com/compute/docs/troubleshooting/troubleshooting-rdp',\n", - " 'https://cloud.google.com/compute/docs/troubleshooting/troubleshooting-reboots',\n", - " 'https://cloud.google.com/compute/docs/troubleshooting/troubleshooting-reservation-consumption',\n", - " 'https://cloud.google.com/compute/docs/troubleshooting/troubleshooting-reservation-creation',\n", - " 'https://cloud.google.com/compute/docs/troubleshooting/troubleshooting-reservation-monitoring',\n", - " 'https://cloud.google.com/compute/docs/troubleshooting/troubleshooting-reservation-updates',\n", - " 'https://cloud.google.com/compute/docs/troubleshooting/troubleshooting-resource-availability',\n", - " 'https://cloud.google.com/compute/docs/troubleshooting/troubleshooting-snapshots',\n", - " 'https://cloud.google.com/compute/docs/troubleshooting/troubleshooting-sole-tenancy',\n", - " 'https://cloud.google.com/compute/docs/troubleshooting/troubleshooting-ssh-errors',\n", - " 'https://cloud.google.com/compute/docs/troubleshooting/troubleshooting-sudoers-file',\n", - " 'https://cloud.google.com/compute/docs/troubleshooting/troubleshooting-suse-registration',\n", - " 'https://cloud.google.com/compute/docs/troubleshooting/troubleshooting-suspend-resume',\n", - " 'https://cloud.google.com/compute/docs/troubleshooting/troubleshooting-ubuntu-pro-registration',\n", - " 'https://cloud.google.com/compute/docs/troubleshooting/troubleshooting-using-serial-console',\n", - " 'https://cloud.google.com/compute/docs/troubleshooting/troubleshooting-vm-creation',\n", - " 'https://cloud.google.com/compute/docs/troubleshooting/troubleshooting-windows',\n", - " 'https://cloud.google.com/compute/docs/troubleshooting/troubleshooting-workload-to-workload-auth',\n", - " 'https://cloud.google.com/compute/docs/troubleshooting/viewing-serial-port-output',\n", - " 'https://cloud.google.com/compute/docs/troubleshooting/vm-startup',\n", - " 'https://cloud.google.com/compute/docs/tutorials/basic-webserver-apache',\n", - " 'https://cloud.google.com/compute/docs/tutorials/basic-webserver-iis',\n", - " 'https://cloud.google.com/compute/docs/tutorials/creating-high-performance-sql-server-instance',\n", - " 'https://cloud.google.com/compute/docs/tutorials/creating-sql-server-instance-using-netapp',\n", - " 'https://cloud.google.com/compute/docs/tutorials/deploy-aspnet-app',\n", - " 'https://cloud.google.com/compute/docs/tutorials/globally-autoscaling-a-web-service-on-compute-engine',\n", - " 'https://cloud.google.com/compute/docs/tutorials/high-availability-autohealing',\n", - " 'https://cloud.google.com/compute/docs/tutorials/high-availability-linux-pacemaker',\n", - " 'https://cloud.google.com/compute/docs/tutorials/high-availability-load-balancing',\n", - " 'https://cloud.google.com/compute/docs/tutorials/high-scalability-autoscaling',\n", - " 'https://cloud.google.com/compute/docs/tutorials/http-load-balancing-iis',\n", - " 'https://cloud.google.com/compute/docs/tutorials/load-testing-sql-server-hammerdb',\n", - " 'https://cloud.google.com/compute/docs/tutorials/migrate-workload-to-stateful-mig',\n", - " 'https://cloud.google.com/compute/docs/tutorials/migrating-aws-sql-server-to-compute-engine',\n", - " 'https://cloud.google.com/compute/docs/tutorials/ml-inference-t4',\n", - " 'https://cloud.google.com/compute/docs/tutorials/performing-an-automated-in-place-upgrade-windows-server',\n", - " 'https://cloud.google.com/compute/docs/tutorials/performing-in-place-upgrade-windows-server',\n", - " 'https://cloud.google.com/compute/docs/tutorials/robustsystems',\n", - " 'https://cloud.google.com/compute/docs/tutorials/running-windows-server-failover-clustering',\n", - " 'https://cloud.google.com/compute/docs/tutorials/sending-mail',\n", - " 'https://cloud.google.com/compute/docs/tutorials/sending-mail/using-mailgun',\n", - " 'https://cloud.google.com/compute/docs/tutorials/sending-mail/using-mailjet',\n", - " 'https://cloud.google.com/compute/docs/tutorials/sending-mail/using-sendgrid',\n", - " 'https://cloud.google.com/compute/docs/tutorials/service-account-ssh',\n", - " 'https://cloud.google.com/compute/docs/tutorials/setup-active-directory',\n", - " 'https://cloud.google.com/compute/docs/viewing-and-applying-idle-resources-recommendations',\n", - " 'https://cloud.google.com/compute/docs/virtual-workstation',\n", - " 'https://cloud.google.com/compute/docs/virtual-workstation/linux',\n", - " 'https://cloud.google.com/compute/docs/virtual-workstation/linux-gpu',\n", - " 'https://cloud.google.com/compute/docs/virtual-workstation/windows',\n", - " 'https://cloud.google.com/compute/docs/virtual-workstation/windows-gpu',\n", - " 'https://cloud.google.com/compute/docs/vm-manager',\n", - " 'https://cloud.google.com/docs',\n", + "{'https://cloud.google.com/docs',\n", " 'https://cloud.google.com/docs/access-resources',\n", " 'https://cloud.google.com/docs/ai-ml',\n", " 'https://cloud.google.com/docs/application-development',\n", @@ -882,13 +311,32 @@ " 'https://cloud.google.com/docs/security',\n", " 'https://cloud.google.com/docs/storage',\n", " 'https://cloud.google.com/docs/tech-area-overviews',\n", - " 'https://cloud.google.com/docs/terraform/get-started-with-terraform',\n", - " 'https://cloud.google.com/load-balancing/docs/https/setting-up-https',\n", - " 'https://cloud.google.com/load-balancing/docs/internal/setting-up-internal',\n", - " 'https://cloud.google.com/marketplace/docs'}" + " 'https://cloud.google.com/functions/1stgendocs/concepts/overview',\n", + " 'https://cloud.google.com/functions/docs/apis',\n", + " 'https://cloud.google.com/functions/docs/bestpractices/retries',\n", + " 'https://cloud.google.com/functions/docs/building',\n", + " 'https://cloud.google.com/functions/docs/concepts/iam',\n", + " 'https://cloud.google.com/functions/docs/concepts/overview',\n", + " 'https://cloud.google.com/functions/docs/deploy',\n", + " 'https://cloud.google.com/functions/docs/managing',\n", + " 'https://cloud.google.com/functions/docs/monitoring/audit-logging',\n", + " 'https://cloud.google.com/functions/docs/resources',\n", + " 'https://cloud.google.com/functions/docs/running/direct',\n", + " 'https://cloud.google.com/functions/docs/samples',\n", + " 'https://cloud.google.com/functions/docs/securing/authenticating',\n", + " 'https://cloud.google.com/functions/docs/securing/cmek',\n", + " 'https://cloud.google.com/functions/docs/securing/custom-constraints',\n", + " 'https://cloud.google.com/functions/docs/securing/execution-environment-security',\n", + " 'https://cloud.google.com/functions/docs/securing/function-identity',\n", + " 'https://cloud.google.com/functions/docs/securing/gen-org-policy',\n", + " 'https://cloud.google.com/functions/docs/securing/managing-access-iam',\n", + " 'https://cloud.google.com/functions/docs/securing/overview',\n", + " 'https://cloud.google.com/functions/docs/troubleshooting',\n", + " 'https://cloud.google.com/marketplace/docs',\n", + " 'https://cloud.google.com/run/docs/functions-with-run'}" ] }, - "execution_count": 15, + "execution_count": 191, "metadata": {}, "output_type": "execute_result" } @@ -899,7 +347,7 @@ }, { "cell_type": "code", - "execution_count": 16, + "execution_count": 192, "id": "6d1987db-b346-41cb-adcb-1a4ba0f6fd03", "metadata": {}, "outputs": [], @@ -910,7 +358,7 @@ }, { "cell_type": "code", - "execution_count": 17, + "execution_count": 193, "id": "2b48bcf0-dd19-4378-83e0-6526eea688e7", "metadata": {}, "outputs": [], @@ -921,7 +369,7 @@ }, { "cell_type": "code", - "execution_count": 18, + "execution_count": 194, "id": "20d62b32-bac1-49d6-96ae-86143fcaa3bd", "metadata": {}, "outputs": [], @@ -934,26 +382,45 @@ }, { "cell_type": "code", - "execution_count": 19, + "execution_count": 195, "id": "bad4726e-394a-4935-a57f-f53fe8f87ae6", "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "{'https://cloud.google.com/apis/docs/cloud-client-libraries',\n", - " 'https://cloud.google.com/compute/docs/choose-compute-deployment-option',\n", - " 'https://cloud.google.com/compute/docs/cpu-platforms',\n", - " 'https://cloud.google.com/compute/docs/disks',\n", - " 'https://cloud.google.com/compute/docs/gpus',\n", - " 'https://cloud.google.com/compute/docs/machine-resource',\n", - " 'https://cloud.google.com/compute/docs/networking/network-overview',\n", - " 'https://cloud.google.com/compute/docs/regions-zones',\n", - " 'https://cloud.google.comhttps://cloud.google.com/compute/docs',\n", - " 'https://cloud.google.comhttps://cloud.google.com/compute/docs/overview'}" + "{'https://cloud.google.com/functions/docs/apis',\n", + " 'https://cloud.google.com/functions/docs/building',\n", + " 'https://cloud.google.com/functions/docs/runtime-support',\n", + " 'https://cloud.google.com/functions/docs/tutorials/terraform',\n", + " 'https://cloud.google.com/functions/docs/tutorials/terraform-pubsub',\n", + " 'https://cloud.google.com/run/docs/configuring',\n", + " 'https://cloud.google.com/run/docs/configuring/concurrency',\n", + " 'https://cloud.google.com/run/docs/configuring/connect-cloudsql',\n", + " 'https://cloud.google.com/run/docs/configuring/connecting-vpc',\n", + " 'https://cloud.google.com/run/docs/configuring/execution-environments',\n", + " 'https://cloud.google.com/run/docs/configuring/http2',\n", + " 'https://cloud.google.com/run/docs/configuring/min-instances',\n", + " 'https://cloud.google.com/run/docs/configuring/networking-best-practices',\n", + " 'https://cloud.google.com/run/docs/configuring/request-timeout',\n", + " 'https://cloud.google.com/run/docs/configuring/services/containers',\n", + " 'https://cloud.google.com/run/docs/configuring/services/cpu',\n", + " 'https://cloud.google.com/run/docs/configuring/services/environment-variables',\n", + " 'https://cloud.google.com/run/docs/configuring/services/memory-limits',\n", + " 'https://cloud.google.com/run/docs/configuring/services/secrets',\n", + " 'https://cloud.google.com/run/docs/configuring/services/service-identity',\n", + " 'https://cloud.google.com/run/docs/configuring/tags',\n", + " 'https://cloud.google.com/run/docs/locations',\n", + " 'https://cloud.google.com/run/docs/quickstarts/functions/deploy-functions-gcloud',\n", + " 'https://cloud.google.com/run/docs/reference/cloud-run-admin-api-overview',\n", + " 'https://cloud.google.com/run/docs/write-functions',\n", + " 'https://cloud.google.com/shell/docs/how-cloud-shell-works',\n", + " 'https://cloud.google.comhttps://cloud.google.com/functions/docs',\n", + " 'https://cloud.google.comhttps://cloud.google.com/functions/docs/concepts/overview',\n", + " 'https://cloud.google.comhttps://cloud.google.com/run/docs/quickstarts/functions/deploy-functions-console'}" ] }, - "execution_count": 19, + "execution_count": 195, "metadata": {}, "output_type": "execute_result" } @@ -964,7 +431,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 196, "id": "98477112-90f6-4ddd-96e9-dfc5e8f5ff82", "metadata": {}, "outputs": [], @@ -1003,7 +470,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 197, "id": "849ab8d6-3f38-46a7-bbe8-5341f070861a", "metadata": {}, "outputs": [], @@ -1013,7 +480,7 @@ }, { "cell_type": "code", - "execution_count": 21, + "execution_count": 198, "id": "dceddf77-03a8-46d8-b569-929b1115b35d", "metadata": {}, "outputs": [], @@ -1023,7 +490,7 @@ }, { "cell_type": "code", - "execution_count": 22, + "execution_count": 199, "id": "1445ba84-7e53-4612-8a31-2c60355913ab", "metadata": {}, "outputs": [], @@ -1033,238 +500,272 @@ }, { "cell_type": "code", - "execution_count": 23, + "execution_count": 200, "id": "3a2263cb-694d-490c-8fd3-57a53e8dabfc", "metadata": {}, "outputs": [], "source": [ "content = \"\"\n", "for ab in art_body:\n", + " for pre_tag in ab.find_all('pre'):\n", + " pre_tag.replace_with(\"```\" + pre_tag.text.strip() + \"```\")\n", + " for code in ab.find_all('code'):\n", + " code.replace_with(\"`\" + code.text.strip() + \"`\")\n", " a_tags = ab.find_all('a')\n", " for a_tag in a_tags:\n", - " a_tag.decompose()\n", + " a_tag.text.strip()\n", " content += ab.get_text(separator=\"\\n\").strip()" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 201, "id": "ff87addb-f13c-4884-957b-fbffe47b2d4e", "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "\"Compute Engine is an infrastructure as a service (IaaS) product that offers\\nself-managed virtual machine (VM) instances and bare\\nmetal instances. Compute Engine offers VMs with a KVM hypervisor,\\noperating systems for both Linux and Windows, and local and durable\\nstorage options. You can configure and control Compute Engine\\nresources using the Google Cloud console, the Google Cloud CLI, or using a\\nREST-based API. You can also use a variety of programming languages available\\nwith Google's\\n\\n.\\n\\n\\nHere are some of the benefits of using Compute Engine:\\n\\n\\n\\n\\nExtensibility:\\n Compute Engine integrates with Google Cloud\\ntechnologies such as Cloud Storage, Google Kubernetes Engine, and\\nBigQuery, to extend beyond the basic computational capability to\\ncreate more complex and sophisticated applications.\\n\\n\\nScalability:\\n Scale the number of compute resources as needed without\\nhaving to manage your own infrastructure. This is useful for businesses that\\nexperience sudden increases in traffic, because you can quickly add more\\ninstances to handle the increase and remove the instances after they are no\\nlonger needed.\\n\\n\\nReliability:\\n Google's infrastructure is highly reliable, with a 99.9%\\nuptime guarantee.\\n\\n\\nCost-effectiveness:\\n Compute Engine offers a variety of pricing\\noptions to fit your budget. Also, you only pay for the resources that you use,\\nand there are no up-front costs.\\n\\n\\n\\n\\nWhat Compute Engine provides\\n\\n\\nCompute Engine provides flexibility so that you can run a wide-range\\nof applications and workloads that support your needs. From batch processing\\nto webserving or high performance computing you can configure\\nCompute Engine to meet your needs.\\n\\n\\nLocation selection\\n\\n\\nGoogle offers worldwide regions for you to deploy Compute Engine\\nresources. You can choose a region that best fits the requirements of your\\nworkload:\\n\\n\\n\\n\\nRegion-specific restrictions\\n\\n\\nUser latency by region\\n\\n\\nLatency requirements of your application\\n\\n\\nAmount of control over latency\\n\\n\\nBalance between low latency and simplicity\\n\\n\\n\\n\\nFor more information about regions and zones, see\\n\\n.\\n\\n\\nCompute Engine machine types\\n\\n\\nCompute Engine provides a comprehensive set of machine families, each\\ncontaining machine types to choose from when you create a compute instance. Each\\nmachine family is comprised of machine series and predefined machine types\\nwithin each series.\\n\\n\\nCompute Engine offers general-purpose, compute-optimized,\\nstorage-optimized, memory-optimized, and accelerator-optimized machine\\nfamilies. If a preconfigured, general-purpose machine type doesn't meet your\\nneeds, then you can create a custom machine type with customized CPU and memory\\nresources for some of the machine series.\\n\\n\\nFor more information, see the\\n\\n.\\n\\n\\nOperating systems\\n\\n\\nCompute Engine provides many preconfigured public operating system\\nimages for both Linux and Windows. Most public images are provided for no\\nadditional cost, but there are some\\n\\n for which you are\\nbilled. You are not billed for importing custom images, but you will incur an\\n\\n while you keep\\nthe custom image in your project.\\n\\n\\nStorage options\\n\\n\\nYou can choose from several block storage options, including Persistent Disk,\\nGoogle Cloud Hyperdisk, and Local SSD:\\n\\n\\n\\n\\nPersistent Disk:\\n High-performance and redundant network storage. Each\\nvolume is striped across hundreds of physical disks.\\n\\n\\nHyperdisk:\\n The fastest redundant network storage for\\nCompute Engine, with configurable performance and volumes that can be\\nresized dynamically. Each volume is striped across hundreds of physical disks.\\nYou can also reduce costs and disk management complexity by purchasing\\ncapacity and performance in advance with Hyperdisk Storage Pools. Hyperdisk Storage Pools provide\\nan aggregate amount of capacity and performance that you can share among the\\ndisks created in the pool.\\n\\n\\nLocal SSD:\\n Physical drives that are attached directly to the same\\nserver as a compute instance. They offer better performance, but are not\\ndurable. If the instance is shut down, then the Local SSD disks are deleted.\\n\\n\\n\\n\\nEach option has unique price and performance. For cost comparisons, see\\n\\n. For more information about\\ndisk types, see \\n.\\n\\n\\nWhat's next\\n\\n\\n\\n\\nSee the \\n and\\n\\n that are available for your use.\\n\\n\\nRead an \\n.\\n\\n\\nLearn about the various \\n.\"" + "\"Deploy a function\\n\\n\\nThis guide shows you how to deploy a function from source code using the\\n\\n`gcloud functions`\\n command. To learn how to deploy a function using the\\n\\n`gcloud run`\\n command, see\\n\\nDeploy a Cloud Run function using the gcloud CLI\\n.\\n\\n\\nThe deployment process takes your source code and configuration settings and\\n\\nbuilds a runnable image\\n that Cloud Run functions\\nmanages automatically in order to handle requests to your function.\\n\\n\\nDeployment basics\\n\\n\\nFor an introduction on the type of functions you can deploy, see\\n\\nWrite Cloud Run functions\\n.\\n\\n\\nUsers deploying functions must have the\\n\\nCloud Functions Developer\\n\\nIAM role or a role that includes the same permissions. See also\\n\\nAdditional configuration for deployment\\n.\\n\\n\\n\\n\\n\\n\\nIn the Google Cloud console, activate Cloud Shell.\\n\\n\\nActivate Cloud Shell\\n\\n\\n\\n At the bottom of the Google Cloud console, a\\n \\nCloud Shell\\n\\n session starts and displays a command-line prompt. Cloud Shell is a shell environment\\n with the Google Cloud CLI\\n already installed and with values already set for\\n your current project. It can take a few seconds for the session to initialize.\\n \\n\\n\\n\\n\\nUse the \\n`gcloud functions deploy`\\n\\ncommand to deploy a function:\\n\\n\\n```gcloud functions deploy YOUR_FUNCTION_NAME \\\\\\n --region=YOUR_REGION \\\\\\n --runtime=YOUR_RUNTIME \\\\\\n --source=YOUR_SOURCE_LOCATION \\\\\\n --entry-point=YOUR_CODE_ENTRYPOINT \\\\\\n TRIGGER_FLAGS```\\n\\n\\nThe first argument, \\n`YOUR_FUNCTION_NAME`\\n, is a name for\\nyour deployed function. The function name must start with a letter\\nfollowed by up to 62 letters, numbers, hyphens, or underscores, and must end\\nwith a letter or a number. The name of the Cloud Run service that\\nis created for your function will replace underscores with hyphens and\\nuppercase letters will be converted to lowercase. For example,\\n\\n`Function_1`\\n will be given the name \\n`function-1`\\n in Cloud Run.\\n\\n\\nNote:\\n Run \\n`gcloud config set functions/gen2 true`\\n to set all future\\n first time deployments.\\n\\n\\n\\n\\nThe \\n`--region`\\n flag\\nspecifies the region in which to deploy your function. See\\n\\nLocations\\n for a list of regions supported by\\nCloud Run.\\n\\n\\nThe \\n`--runtime`\\n flag\\nspecifies which language runtime your function uses. See\\n\\nRuntime support\\n for a list of supported\\nruntime IDs.\\n\\n\\nThe \\n`--source`\\n flag\\nspecifies the location of your function source code.\\n\\n\\nThe \\n`--entry-point`\\n\\nflag specifies the entry point to your function in your source code. This is\\nthe code that will be executed when your function runs. The value of this\\nflag must be a function name or fully-qualified class name that exists in\\nyour source code. For more information, see\\n\\nFunction entry point\\n.\\n\\n\\nTo specify the \\ntrigger\\n for your\\nfunction, additional flags (represented as\\n\\n`TRIGGER_FLAGS`\\n above) are required, depending on\\nthe trigger you want to use:\\n\\n\\n\\n\\n\\n\\nTrigger flags\\n\\n\\nTrigger description\\n\\n\\n\\n\\n\\n\\n`--trigger-http`\\n\\n\\nTrigger the function with an HTTP(S) request.\\n\\n\\n\\n\\n\\n\\n`--trigger-topic=YOUR_PUBSUB_TOPIC`\\n\\n\\nTrigger the function when a message is published to the specified\\n Pub/Sub topic.\\n\\n\\n\\n\\n\\n\\n`--trigger-bucket=YOUR_STORAGE_BUCKET`\\n\\n\\nTrigger the function when an object is created or overwritten in the\\n specified Cloud Storage bucket.\\n\\n\\n\\n\\n\\n\\n`--trigger-event-filters=EVENTARC_EVENT_FILTERS`\\n\\n\\nTrigger the function with Eventarc when an\\n event that matches the specified filters occurs.\\n\\n\\n\\n\\n\\n\\nFor a complete reference on the deployment command and its flags, see the\\n\\n`gcloud functions deploy`\\n\\ndocumentation.\\n\\n\\nFor more details about \\n`gcloud functions deploy`\\n configuration flags,\\nrefer to \\nCloud Run documentation\\n.\\n\\n\\n\\n\\n\\n\\nWhen deployment finishes successfully, functions appear with a green check\\nmark in the Cloud Run overview page in the\\n\\nGoogle Cloud console\\n.\\n\\n\\nThe initial deployment of a function may take several minutes, while the\\nunderlying infrastructure is provisioned. Redeploying an existing function\\nis faster, and incoming traffic is automatically migrated to the newest version.\\n\\n\\nNote:\\n Instances provisioned with a previous version of a function may continue\\nrunning and processing traffic for several minutes after a new deployment has\\nfinished. This ensures that traffic sent to your function while a deployment is\\nin progress isn't dropped. Also note that when a deployment fails,\\nif there is a previous version of the function, it will continue to be\\navailable in most cases.\\n\\n\\nHTTP endpoint URL\\n\\n\\nWhen you create a function with the \\n`gcloud functions`\\n command or the\\nCloud Functions v2 API, by default, the function has a\\n\\n`cloudfunctions.net`\\n HTTP endpoint URL. If you take this function and deploy it\\non Cloud Run, your function also receives a \\n`run.app`\\n HTTP endpoint\\nURL. However, functions created in Cloud Run won't have an\\n\\n`cloudfunctions.net`\\n HTTP endpoint URL. A function's \\n`cloudfunctions.net`\\n URL\\nand \\n`run.app`\\n URL behave in exactly the same way. They are interchangeable,\\nand are used to trigger your function.\\n\\n\\nTerraform examples\\n\\n\\nFor examples about how to deploy functions using Terraform, see the\\n\\nTerraform HTTP example\\n and\\n\\nTerraform Pub/Sub example\\n.\\n\\n\\nConfigure networking\\n\\n\\nFunctions created using the \\nCloud Functions v2 API\\n\\n(for example, by using \\n`gcloud functions`\\n, the REST API, or Terraform) can be\\nmanaged with the \\nCloud Run Admin API\\n\\nas well as the Cloud Functions v2 API.\\n\\n\\nNote:\\n If you created a Cloud Run function using\\n\\n`gcloud run`\\n commands or the Cloud Run Admin API, you can't manage that function\\nwith \\n`gcloud functions`\\n commands or the Cloud Functions v2 API.\\n\\n\\nTo learn more about managing networks for functions, including how to route\\n\\nVPC network traffic\\n, see\\n\\nBest practices for Cloud Run networking\\n.\\n\\n\\nLearn how to deploy Cloud Run functions on Cloud Run\\n\\n\\nDeploying functions on Cloud Run is similar to the steps described in\\nthis document, but with some added advantages:\\n\\n\\n\\n\\nYou can use the Google Cloud console, as well as the gcloud CLI\\n(\\n`gcloud run deploy`\\n).\\n\\n\\nThe steps for specifying triggers are slightly different. To learn more, see\\n\\ntriggers and retries\\n\\nand \\nexamples of function triggers\\n.\\n\\n\\nCloud Run offers a broader array of configuration options:\\n\\n\\n\\nMinimum instances\\n\\n\\nConcurrency\\n\\n\\nContainer configuration\\n\\n\\nCPU limits\\n\\n\\nMemory limits\\n\\n\\nRequest timeout\\n\\n\\nSecrets\\n\\n\\nEnvironment variables\\n\\n\\nExecution environment\\n\\n\\nHTTP/2\\n\\n\\nService accounts\\n\\n\\nCloud SQL connections\\n\\n\\nSession affinity and traffic splitting\\n\\n\\nTags\\n\\n\\nNetworking\"" ] }, - "execution_count": 24, + "execution_count": 201, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "# content" + "content" ] }, { "cell_type": "code", - "execution_count": 25, - "id": "3b59e884-7946-4b6c-b768-8d585d0a9bab", + "execution_count": 202, + "id": "2c49a47c-f5cb-42b1-a1fc-32b888886075", + "metadata": {}, + "outputs": [], + "source": [ + "def normalize_newlines(text):\n", + " # Replace multiple newlines (\\n\\n or more) with a single \\n\n", + " text = re.sub(r'\\n{2,}', '\\n', text)\n", + " # Replace single newlines (\\n) with a space\n", + " text = re.sub(r'(?\\n

Deploy a function

\\n

This guide shows you how to deploy a function from source code using the\\n`gcloud functions` command. To learn how to deploy a function using the\\n`gcloud run` command, see\\nDeploy a Cloud Run function using the gcloud CLI.

\\n

The deployment process takes your source code and configuration settings and\\nbuilds a runnable image that Cloud Run functions\\nmanages automatically in order to handle requests to your function.

\\n

Deployment basics

\\n

For an introduction on the type of functions you can deploy, see\\nWrite Cloud Run functions.

\\n

Users deploying functions must have the\\nCloud Functions Developer\\nIAM role or a role that includes the same permissions. See also\\nAdditional configuration for deployment.

\\n
    \\n
  1. \\n

    In the Google Cloud console, activate Cloud Shell.

    \\n

    Activate Cloud Shell

    \\n

    \\n At the bottom of the Google Cloud console, a\\n Cloud Shell\\n session starts and displays a command-line prompt. Cloud Shell is a shell environment\\n with the Google Cloud CLI\\n already installed and with values already set for\\n your current project. It can take a few seconds for the session to initialize.\\n

    \\n
  2. \\n
  3. Use the `gcloud functions deploy`\\ncommand to deploy a function:

    \\n
    ```gcloud functions deploy YOUR_FUNCTION_NAME \\\\\\n --region=YOUR_REGION \\\\\\n --runtime=YOUR_RUNTIME \\\\\\n --source=YOUR_SOURCE_LOCATION \\\\\\n --entry-point=YOUR_CODE_ENTRYPOINT \\\\\\n TRIGGER_FLAGS```\\n

    The first argument, `YOUR_FUNCTION_NAME`, is a name for\\nyour deployed function. The function name must start with a letter\\nfollowed by up to 62 letters, numbers, hyphens, or underscores, and must end\\nwith a letter or a number. The name of the Cloud Run service that\\nis created for your function will replace underscores with hyphens and\\nuppercase letters will be converted to lowercase. For example,\\n`Function_1` will be given the name `function-1` in Cloud Run.

    \\n\\n
      \\n
    • The `--region` flag\\nspecifies the region in which to deploy your function. See\\nLocations for a list of regions supported by\\nCloud Run.

    • \\n
    • The `--runtime` flag\\nspecifies which language runtime your function uses. See\\nRuntime support for a list of supported\\nruntime IDs.

    • \\n
    • The `--source` flag\\nspecifies the location of your function source code.

    • \\n
    • The `--entry-point`\\nflag specifies the entry point to your function in your source code. This is\\nthe code that will be executed when your function runs. The value of this\\nflag must be a function name or fully-qualified class name that exists in\\nyour source code. For more information, see\\nFunction entry point.

    • \\n
    • To specify the trigger for your\\nfunction, additional flags (represented as\\n`TRIGGER_FLAGS` above) are required, depending on\\nthe trigger you want to use:

      \\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n
      Trigger flagsTrigger description
      `--trigger-http`Trigger the function with an HTTP(S) request.
      `--trigger-topic=YOUR_PUBSUB_TOPIC`Trigger the function when a message is published to the specified\\n Pub/Sub topic.
      `--trigger-bucket=YOUR_STORAGE_BUCKET`Trigger the function when an object is created or overwritten in the\\n specified Cloud Storage bucket.
      `--trigger-event-filters=EVENTARC_EVENT_FILTERS`Trigger the function with Eventarc when an\\n event that matches the specified filters occurs.
      \\n

      For a complete reference on the deployment command and its flags, see the\\n`gcloud functions deploy`\\ndocumentation.

      \\n

      For more details about `gcloud functions deploy` configuration flags,\\nrefer to Cloud Run documentation.

    • \\n
  4. \\n
\\n

When deployment finishes successfully, functions appear with a green check\\nmark in the Cloud Run overview page in the\\nGoogle Cloud console.

\\n

The initial deployment of a function may take several minutes, while the\\nunderlying infrastructure is provisioned. Redeploying an existing function\\nis faster, and incoming traffic is automatically migrated to the newest version.

\\n\\n

HTTP endpoint URL

\\n

When you create a function with the `gcloud functions` command or the\\nCloud Functions v2 API, by default, the function has a\\n`cloudfunctions.net` HTTP endpoint URL. If you take this function and deploy it\\non Cloud Run, your function also receives a `run.app` HTTP endpoint\\nURL. However, functions created in Cloud Run won\\'t have an\\n`cloudfunctions.net` HTTP endpoint URL. A function\\'s `cloudfunctions.net` URL\\nand `run.app` URL behave in exactly the same way. They are interchangeable,\\nand are used to trigger your function.

\\n

Terraform examples

\\n

For examples about how to deploy functions using Terraform, see the\\nTerraform HTTP example and\\nTerraform Pub/Sub example.

\\n

Configure networking

\\n

Functions created using the Cloud Functions v2 API\\n(for example, by using `gcloud functions`, the REST API, or Terraform) can be\\nmanaged with the Cloud Run Admin API\\nas well as the Cloud Functions v2 API.

\\n\\n

To learn more about managing networks for functions, including how to route\\nVPC network traffic, see\\nBest practices for Cloud Run networking.

\\n

Learn how to deploy Cloud Run functions on Cloud Run

\\n

Deploying functions on Cloud Run is similar to the steps described in\\nthis document, but with some added advantages:

\\n\\n\\n'" + ] + }, + "execution_count": 222, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "str(art_body[0])\n" + ] + }, + { + "cell_type": "code", + "execution_count": 204, + "id": "eeb33044", + "metadata": {}, + "outputs": [], + "source": [ + "# def replace_pre_tags(soupy):\n", + "# # soup = BeautifulSoup(html_content, 'html.parser')\n", + "# for pre_tag in soupy.find_all('pre'):\n", + "# pre_tag.replace_with(\"```\" + pre_tag.text.strip() + \"```\")\n", + "# return str(soupy)" + ] + }, + { + "cell_type": "code", + "execution_count": 213, + "id": "985f97b7", + "metadata": {}, + "outputs": [], + "source": [ + "def normalize_newlines_and_spaces(text):\n", + " # Replace multiple newlines (\\n\\n or more) with a single \\n\n", + " text = re.sub(r'(?