Esta guía te ayuda a comprender, implementar y usar la solución de inicio rápido App web de Golang para compartir datos de gran tamaño. En esta solución, se muestra cómo puedes diseñar una aplicación que pueda entregar grandes cantidades de archivos.
Si deseas usar Java en lugar de Go, consulta la solución de inicio rápido App web de Java para compartir datos de gran tamaño.
Este documento está dirigido a desarrolladores que tengan experiencia en la compilación de una aplicación web. Se supone que estás familiarizado con el lenguaje de programación Go y con los conceptos básicos de la nube, aunque no necesariamente con Google Cloud. Es útil tener experiencia en Terraform.
Objetivos
- Comprende el patrón de usuario de uso compartido de datos grandes.
- Almacena y entrega objetos en un servicio de almacenamiento de objetos basado en la nube.
- Implementa una aplicación que use una red de entrega distribuida para entregar muchos objetos
- Protege los objetos en cada capa para obtener acceso de privilegio mínimo.
Productos usados
En la solución, se usan los siguientes productos de Google Cloud :
- Cloud CDN (red de distribución de contenidos): contenido web rápido y confiable, y publicación de videos a escala global.
- Cloud Storage: un servicio preparado para empresas que proporciona almacenamiento de objetos de bajo costo y sin límites para varios tipos de datos. Se puede acceder a los datos desde dentro y desde fuera de Google Cloud y replicarlos con redundancia geográfica.
- Cloud Run: un servicio completamente administrado que te permite implementar y compilar apps en contenedores sin servidores. Google Cloud controla el escalamiento y otras tareas de infraestructura para que puedas enfocarte en la lógica empresarial de tu código.
- Cloud Load Balancing: Un servicio que proporciona balanceo de cargas escalable y de alto rendimiento en Google Cloud.
- Firestore: Una base de datos de documentos completamente administrada, escalable y sin servidores.
Para obtener información sobre cómo se configuran estos productos y cómo interactúan, consulta la siguiente sección.
Arquitectura
Esta solución implementa una app para compartir imágenes lista para usar y completamente implementada. En el siguiente diagrama, se muestra la arquitectura de los recursos de Google Cloud que implementa la solución:
Flujo de solicitud
A continuación, se muestra el flujo de procesamiento de solicitudes de la app para compartir imágenes. Los pasos del flujo están numerados como se muestra en el diagrama de arquitectura anterior.
- Las solicitudes de los usuarios para subir archivos se enrutan al frontend mediante un balanceador de cargas.
- El frontend enruta estas solicitudes al backend, que usa Cloud Run.
- El backend almacena los archivos en Cloud Storage y los metadatos sobre los archivos de Firestore.
- Si hay un acierto de caché de Cloud CDN, las solicitudes de los usuarios para ver un archivo se enrutan a Cloud CDN.
- Si hay un error de caché de Cloud CDN, las solicitudes de los usuarios para ver un archivo se enrutan a Cloud Storage.
Componentes y configuración
La arquitectura incluye los siguientes componentes:
- Una aplicación web de uso compartido de imágenes compuesta por un frontend y un backend que se ejecuta en Cloud Run. El frontend de la app usa Angular. El backend de la app está escrito en Go.
- Un balanceador de cargas creado con Cloud Load Balancing enruta las solicitudes entrantes al recurso adecuado.
- Un bucket de Cloud Storage que almacena archivos de imagen.
- Cloud CDN almacena en caché las imágenes del bucket de Cloud Storage y acelera la entrega de contenido.
- Una base de datos de Firestore para almacenar metadatos de archivos.
Costo
Para obtener una estimación del costo de los recursos de Google Cloud que usa la solución App web de Golang para compartir datos de gran tamaño, consulta la estimación calculada previamente en la calculadora de precios de Google Cloud.
Usa la estimación como punto de partida para calcular el costo de la implementación. Puedes modificar la estimación para que refleje cualquier cambio de configuración que planeas realizar para los recursos que se usan en la solución.
La estimación calculada previamente se basa en suposiciones para ciertos factores, incluidos los siguientes:
- Las ubicaciones de Google Cloud en las que se implementan los recursos.
- La cantidad de tiempo que se usan los recursos.
Implementa la solución
En esta sección, se te guiará a través del proceso de implementación de la solución.
Crea o elige un proyecto de Google Cloud
Cuando implementas la solución, eliges el proyecto de Google Cloud en el que se implementan los recursos. Cuando decidas si usarás un proyecto existente o crearás un proyecto nuevo, ten en cuenta los siguientes factores:
- Si creas un proyecto para la solución, cuando ya no necesites la implementación, puedes borrar el proyecto y evitar la facturación continua. Si usas un proyecto existente, debes borrar la implementación cuando ya no la necesites.
- El uso de un proyecto nuevo puede ayudar a evitar conflictos con los recursos aprovisionados con anterioridad, como los recursos que se usan para cargas de trabajo de producción.
Si deseas implementar la solución en un proyecto nuevo, crea el proyecto antes de comenzar la implementación.
Para crear un proyecto, completa los siguientes pasos:
-
In the Google Cloud console, go to the project selector page.
-
Click Create project.
-
Name your project. Make a note of your generated project ID.
-
Edit the other fields as needed.
-
Click Create.
Obtén los permisos de IAM necesarios
Para iniciar el proceso de implementación, necesitas los permisos de Identity and Access Management (IAM) que se enumeran en la siguiente tabla. Si tienes el rol básico roles/owner
para el proyecto en el que planeas implementar la solución, ya tienes todos los permisos necesarios. Si no tienes el rol roles/owner
, pídele a tu administrador que te otorgue estos permisos (o los roles que incluyen estos permisos).
Se requiere permiso de IAM | Rol predefinido que incluye los permisos necesarios |
---|---|
|
Administrador de Service Usage ( roles/serviceusage.serviceUsageAdmin ) |
|
Administrador de cuenta de servicio ( roles/iam.serviceAccountAdmin ) |
|
Administrador de IAM de proyecto ( roles/resourcemanager.projectIamAdmin ) |
config.deployments.create config.deployments.list |
Administrador de Cloud Config Manager ( roles/config.admin ) |
Cuenta de servicio creada para la solución
Cuando inicias el proceso de implementación, se crea una cuenta de servicio para implementar la solución en tu nombre (y para borrar la implementación más adelante si lo deseas). A esta cuenta de servicio se le asignan ciertos permisos de IAM de forma temporal; es decir, los permisos se revocan de forma automática después de que se completan las operaciones de implementación y eliminación de la solución. Google recomienda que, después de borrar la implementación, borres la cuenta de servicio, como se describe más adelante en esta guía.
Visualiza los roles asignados a la cuenta de servicio
Estos roles se enumeran aquí en caso de que un administrador de tu organización o proyecto de Cloud necesite esta información.
roles/storage.admin
roles/datastore.owner
roles/appengine.appAdmin
roles/compute.admin
roles/compute.networkAdmin
roles/cloudtrace.admin
roles/iam.serviceAccountUser
roles/run.admin
roles/monitoring.admin
roles/vpcaccess.admin
Elige un método de implementación
Puedes implementar esta solución con los siguientes métodos:
Desde la consola: Usa este método si deseas probar la solución como está y ver cómo funciona. Cloud Build implementa todos los recursos necesarios para la solución. Cuando ya no necesites la solución implementada, puedes borrarla mediante la consola. Es posible que cualquier recurso que crees después de implementar la solución deba borrarse por separado.
Para usar este método de implementación, sigue las instrucciones en Implementa desde la consola.
Usa Terraform: Usa este método si quieres personalizar la solución o automatizar el aprovisionamiento y la administración de los recursos mediante el uso del enfoque de la infraestructura como código (IaC). Descarga la configuración de Terraform desde GitHub y opcionalmente personaliza el código según sea necesario e implementa la solución mediante Terraform. Después de implementar la solución, puedes seguir usando Terraform para administrarla.
Para usar este método de implementación, sigue las instrucciones en Implementa con Terraform.
Implementar desde la consola
Completa los siguientes pasos para implementar la solución preconfigurada.
En el catálogo de soluciones de inicio de Google Cloud, ve a la solución App web de Golang para compartir datos de gran tamaño.
Ir a la solución App web de Golang para compartir datos de gran tamaño
Revisa la información que se proporciona en la página, como el costo estimado de la solución y el tiempo de implementación estimado.
Cuando estés listo para comenzar la implementación de la solución, haz clic en Implementar.
Se muestra una guía interactiva paso a paso.
Completa los pasos de la guía interactiva.
Toma nota del nombre que ingreses para la implementación. Este nombre es obligatorio más adelante cuando borres la implementación.
Cuando haces clic en Implementar, se muestra la página Implementaciones de soluciones. El campo Estado de esta página muestra Implementando.
Espera a que se implemente la solución.
Si la implementación falla, el campo Estado muestra Con errores. Puedes usar el registro de Cloud Build para diagnosticar los errores. Para obtener más información, consulta Errores cuando se implementa desde la consola.
Una vez completada la implementación, el campo Estado cambia a Implementado.
- Para ver y usar la solución, regresa a la página Implementaciones de soluciones en la consola.
- Haz clic en el menú Acciones.
- Selecciona Ver aplicación web para abrir la aplicación de uso compartido de imágenes.
- Para ver y usar la solución, regresa a la página Implementaciones de soluciones en la consola.
Cuando ya no necesites la solución, puedes borrar la implementación para evitar que se sigan facturando los recursos de Google Cloud. Para obtener más información, consulta Borra la implementación.
Implementa con Terraform
En esta sección, se describe cómo puedes personalizar la solución o automatizar el aprovisionamiento y la administración de la solución mediante Terraform. Las soluciones que implementas mediante el código de Terraform no se muestran en la página Implementaciones de soluciones en la consola de Google Cloud.
Configura el cliente de Terraform
Puedes ejecutar Terraform en Cloud Shell o en tu host local. En esta guía, se describe cómo ejecutar Terraform en Cloud Shell, que tiene Terraform preinstalado y configurado para autenticarse con Google Cloud.
El código de Terraform para esta solución está disponible en un repositorio de GitHub.
Clona el repositorio de GitHub en Cloud Shell.
Se muestra un mensaje para que confirmes la descarga del repositorio de GitHub en Cloud Shell.
Haz clic en Confirmar.
Cloud Shell se inicia en otra pestaña del navegador y el código de Terraform se descarga en el directorio
$HOME/cloudshell_open
de tu entorno de Cloud Shell.En Cloud Shell, verifica si el directorio de trabajo actual es
$HOME/cloudshell_open/terraform-large-data-sharing-golang-webapp/infra
. Este es el directorio que contiene los archivos de configuración de Terraform para la solución. Si necesitas cambiar a ese directorio, ejecuta el siguiente comando:cd $HOME/cloudshell_open/terraform-large-data-sharing-golang-webapp/infra
Inicializa Terraform mediante la ejecución del siguiente comando:
terraform init
Espera hasta ver el siguiente mensaje:
Terraform has been successfully initialized!
Configura las variables de Terraform
El código de Terraform que descargaste incluye variables que puedes usar para personalizar la implementación según tus requisitos. Por ejemplo, puedes especificar el proyecto de Google Cloud y la región en la que deseas que se implemente la solución.
Asegúrate de que el directorio de trabajo actual sea
$HOME/cloudshell_open/terraform-large-data-sharing-golang-webapp/infra
. Si no es así, ve a ese directorio.En el mismo directorio, crea un archivo de texto llamado
terraform.tfvars
.En el archivo
terraform.tfvars
, copia el siguiente fragmento de código y establece los valores para las variables obligatorias.- Sigue las instrucciones que se proporcionan como comentarios en el fragmento de código.
- Este fragmento de código solo incluye las variables para las que debes establecer valores. La configuración de Terraform incluye otras variables que tienen valores predeterminados. Para revisar todas las variables y los valores predeterminados, consulta el archivo
variables.tf
que está disponible en el directorio$HOME/cloudshell_open/terraform-large-data-sharing-golang-webapp/infra
. - Asegúrate de que cada valor que establezcas en el archivo
terraform.tfvars
coincida con el tipo de variable como se declara en el archivovariables.tf
. Por ejemplo, si el tipo que se define para una variable en el archivovariables.tf
esbool
, debes especificartrue
ofalse
como el valor de esa variable en el archivoterraform.tfvars
.
# This is an example of the terraform.tfvars file. # The values in this file must match the variable types declared in variables.tf. # The values in this file override any defaults in variables.tf. # ID of the project in which you want to deploy the solution project_id = "PROJECT_ID"
Para obtener información sobre
project_id
, consulta Identifica proyectos.
Valida y revisa la configuración de Terraform
Asegúrate de que el directorio de trabajo actual sea
$HOME/cloudshell_open/terraform-large-data-sharing-golang-webapp/infra
. Si no es así, ve a ese directorio.Verifica que la configuración de Terraform no tenga errores:
terraform validate
Si el comando muestra algún error, realiza las correcciones necesarias en la configuración y, luego, vuelve a ejecutar el comando
terraform validate
. Repite este paso hasta que el comando muestre el siguiente mensaje:Success! The configuration is valid.
Revisa los recursos que se definen en la configuración:
terraform plan
Si no creaste el archivo
terraform.tfvars
como se describió antes, Terraform te solicita que ingreses valores para las variables que no tienen valores predeterminados. Ingresa los valores obligatorios.El resultado del comando
terraform plan
es una lista de los recursos que Terraform aprovisiona cuando aplicas la configuración.Si deseas realizar algún cambio, edita la configuración y, luego, vuelve a ejecutar los comandos
terraform validate
yterraform plan
.
Aprovisiona los recursos
Cuando no se necesiten más cambios en la configuración de Terraform, implementa los recursos de la siguiente manera:
Asegúrate de que el directorio de trabajo actual sea
$HOME/cloudshell_open/terraform-large-data-sharing-golang-webapp/infra
. Si no es así, ve a ese directorio.Aplica la configuración de Terraform:
terraform apply
Si no creaste el archivo
terraform.tfvars
como se describió antes, Terraform te solicita que ingreses valores para las variables que no tienen valores predeterminados. Ingresa los valores obligatorios.Terraform muestra una lista de los recursos que se crearán.
Cuando se te solicite que realices las acciones, ingresa
yes
.Terraform muestra mensajes que señalan el progreso de la implementación.
Si no se puede completar la implementación, Terraform muestra los errores que causaron la falla. Revisa los mensajes de error y actualiza la configuración para corregir los errores. Luego, vuelva a ejecutar el comando
terraform apply
. Para obtener ayuda con la solución de errores de Terraform, consulta Errores que se generan cuando se implementa la solución con Terraform.Una vez que se hayan creado todos los recursos, Terraform mostrará el siguiente mensaje:
Apply complete!
Outputs: bucket_name = "BUCKET_NAME" lb_external_ip = "IP_ADDRESS" neos_walkthrough_url = "https://console.cloud.google.com/products/solutions/deployments?walkthrough_id=solutions-in-console--large-data-sharing--large-data-sharing--golang-_tour"
Para ver y usar la app de muestra, abre
lb_external_ip
en el navegador.
Cuando ya no necesites la solución, puedes borrar la implementación para evitar que se sigan facturando los recursos de Google Cloud. Para obtener más información, consulta Borra la implementación.
Personaliza la solución
En esta sección, se proporciona información que los desarrolladores de Terraform pueden usar para modificar la solución App web de Golang para compartir datos de gran tamaño a fin de cumplir con sus propios requisitos técnicos y comerciales. La guía de esta sección es relevante solo si implementas la solución mediante Terraform.
Verifica que el directorio de trabajo actual sea
$HOME/cloudshell_open/terraform-large-data-sharing-golang-webapp/infra
. Si no es así, ve a ese directorio:cd $HOME/cloudshell_open/terraform-large-data-sharing-golang-webapp/infra
Abre
main.tf
y realiza los cambios necesarios, como se muestra en los ejemplos de la siguiente tabla:
Parámetro
Argumento de Terraform enmain.tf
Límite de CPU para el backend de la app
Argumento:cloud_run_server.limits.cpu
Fragmento de código relevante enmain.tf
:
module "cloud_run_server" { … limits = { cpu = "2000m" … }
Límite de memoria para el backend de la app
Argumento:cloud_run_server.limits.memory
Fragmento de código relevante enmain.tf
:
module "cloud_run_server" { … limits = { … memory = "2Gi" …
Límite de CPU para el frontend de la app
Argumento:cloud_run_client.limits.cpu
Fragmento de código relevante enmain.tf
:
module "cloud_run_client" { … limits = { cpu = "1000m" … }
Límite de memoria para el frontend de la app
Argumento:cloud_run_client.limits.memory
Fragmento de código relevante enmain.tf
:
module "cloud_run_client" { … limits = { … memory = "512Mi" …
Valida y aprovisiona los recursos mediante los mismos pasos que en la sección anterior:
Borrar la implementación
Cuando ya no necesites la implementación de la solución, borra la implementación para evitar que se sigan facturando los recursos que creaste.
Borra el proyecto
Si implementaste la solución en un proyecto de Google Cloud nuevo y ya no lo necesitas, sigue estos pasos para borrarlo:
- En la consola de Google Cloud, ve a la página Administrar recursos.
- En la lista de proyectos, elige el proyecto que quieres borrar y haz clic en Borrar.
- Cuando se te solicite, escribe el ID del proyecto y, luego, haz clic en Cerrar.
Si decides conservar el proyecto, borra la cuenta de servicio que se creó para esta solución, como se describe en la siguiente sección.
Borra a través de la consola
Si borras la implementación de la solución a través de la consola, no se borrará la base de datos de Firestore. Para borrar esta base de datos, borra el proyecto como se describió antes.
Usa este procedimiento si implementaste la solución a través de la consola.
En la consola de Google Cloud, ve a la página Implementaciones de soluciones.
Selecciona el proyecto que contenga la implementación que deseas borrar.
Busca la implementación que deseas borrar.
Haz clic en
Acciones y selecciona Borrar.Ingresa el nombre de la implementación y, luego, haz clic en Confirmar.
El campo Estado muestra Borrando.
Si la eliminación falla, consulta la guía de solución de problemas en Error cuando se borra la implementación.
Cuando ya no necesites el proyecto de Google Cloud que usaste para la solución, puedes borrarlo. Para obtener más información, consulta Opcional: Borra el proyecto.
Borra con Terraform
Si borras la implementación de la solución con Terraform, la base de datos de Firestore no se borrará. Para borrar esta base de datos, borra el proyecto como se describió antes.
Usa este procedimiento si implementaste la solución con Terraform.
En Cloud Shell, asegúrate de que el directorio de trabajo actual sea
$HOME/cloudshell_open/terraform-large-data-sharing-golang-webapp/infra
. Si no es así, ve a ese directorio.Quita los recursos que aprovisionó Terraform:
terraform destroy
Terraform muestra una lista de los recursos que se destruirán.
Cuando se te solicite que realices las acciones, ingresa
yes
.Terraform mostrará mensajes que muestran el progreso. Después de borrar todos los recursos, Terraform muestra el siguiente mensaje:
Destroy complete!
Si la eliminación falla, consulta la guía de solución de problemas en Error cuando se borra la implementación.
Cuando ya no necesites el proyecto de Google Cloud que usaste para la solución, puedes borrarlo. Para obtener más información, consulta Opcional: Borra el proyecto.
Opcional: Borra la cuenta de servicio
Si borraste el proyecto que usaste para la solución, omite esta sección.
Como se mencionó antes en esta guía, cuando implementaste la solución, se creó una cuenta de servicio en tu nombre. A la cuenta de servicio se le asignaron ciertos permisos de IAM de forma temporal, es decir, los permisos se revocaron de forma automática después de que se completaron las operaciones de implementación y eliminación de la solución, pero la cuenta de servicio no se borró. Google recomienda que borres esta cuenta de servicio.
Si implementaste la solución desde la consola de Google Cloud, ve a la página Implementaciones de soluciones. Tu visita a esa página activa un proceso en el backend para borrar la cuenta de servicio. No es necesario realizar ninguna otra acción.
Si implementaste la solución con Terraform, completa los siguientes pasos:
En la consola de Google Cloud, ve a la página Cuentas de servicio.
Selecciona el proyecto que usaste para la solución.
Selecciona la cuenta de servicio que deseas borrar.
El ID de correo electrónico de la cuenta de servicio que se creó para la solución tiene el siguiente formato:
goog-sc-DEPLOYMENT_NAME-NNN@PROJECT_ID.iam.gserviceaccount.com
El ID de correo electrónico contiene los siguientes valores:
- DEPLOYMENT_NAME: El nombre de la implementación.
- NNN: Un número aleatorio de 3 dígitos.
- PROJECT_ID: Es el ID del proyecto en el que implementaste la solución.
Haz clic en Borrar.
Solucionar errores
Las acciones que puedes realizar para diagnosticar y resolver errores dependen del método de implementación y la complejidad del error.
Errores en la implementación desde la consola
Si la implementación falla cuando usas la consola, haz lo siguiente:
Ve a la página Implementaciones de soluciones.
Si la implementación falló, el campo Estado muestra Con errores.
Ve los detalles de los errores que causaron la falla:
Haz clic en
Acciones.Selecciona Ver registros de Cloud Build.
Revisa el registro de Cloud Build y toma las medidas adecuadas para resolver el problema que causó la falla.
Errores que se generan cuando se implementa la solución con Terraform
Si la implementación falla cuando se usa Terraform, el resultado del comando terraform
apply
incluye mensajes de error que puedes revisar para diagnosticar el problema.
En los ejemplos de las siguientes secciones, se muestran errores de implementación que puedes encontrar cuando usas Terraform.
Error: Se produjo un error cuando se creó la base de datos: googleapi: Error 409: La base de datos ya existe. Usa otro database_id
Según la configuración predeterminada, la implementación de Terraform supone que no existe una base de datos de Firestore en tu proyecto. Si tu base de datos ya existe, vuelve a ejecutar la implementación con la siguiente marca para omitir la creación de la base de datos:
$ terraform apply -var "init=false"
Error: Error al crear Índice: googleapi: Error 409: El índice ya existe
Este error indica que la solución se implementó antes en este proyecto. Selecciona otro proyecto o borra los índices de Firestore que creó la app de muestra antes.
Error: API no habilitada
Si creas un proyecto y, luego, intentas implementar la solución en el proyecto nuevo de inmediato, la implementación podría fallar con un error como el siguiente:
Error: Error creating Network: googleapi: Error 403: Compute Engine API has not
been used in project PROJECT_ID before or it is disabled. Enable it by visiting
https://console.developers.google.com/apis/api/compute.googleapis.com/overview?project=PROJECT_ID
then retry. If you enabled this API recently, wait a few minutes for the action
to propagate to our systems and retry.
Si se produce este error, espera unos minutos y vuelve a ejecutar el comando terraform apply
.
Error cuando se borra una implementación
En algunos casos, los intentos de borrar una implementación podrían fallar:
- Después de implementar una solución desde la consola, si cambias cualquier recurso que aprovisionó la solución y, luego, intentas borrar la implementación, la eliminación podría fallar. El campo Estado en la página Implementaciones de soluciones muestra Con errores, y el registro de Cloud Build muestra la causa del error.
- Después de implementar una solución mediante Terraform, si cambias algún recurso mediante una interfaz que no es de Terraform (por ejemplo, la consola) y, luego, intentas borrar la implementación, la eliminación podría fallar. Los mensajes en el resultado del comando
terraform destroy
muestran la causa del error.
Revisa los registros de errores y los mensajes, identifica y borra los recursos que causaron el error y, luego, intenta borrar la implementación.
Si una implementación basada en la consola no se borra y no puedes diagnosticar el error mediante el registro de Cloud Build, puedes borrar la implementación mediante Terraform, como se describe en la siguiente sección.
Borra una implementación basada en la consola con Terraform
En esta sección, se describe cómo borrar una implementación basada en la consola si se producen errores cuando intentas borrarla de la consola. En este enfoque, descarga la configuración de Terraform para la implementación que deseas borrar y, luego, usa Terraform para borrar la implementación.
Identifica la región en la que se almacenan el código, los registros y otros datos de Terraform de la implementación. Esta región puede ser diferente de la región que seleccionaste cuando implementaste la solución.
En la consola de Google Cloud, ve a la página Implementaciones de soluciones.
Selecciona el proyecto que contenga la implementación que deseas borrar.
En la lista de implementaciones, identifica la fila de la implementación que deseas borrar.
Haz clic en
Ver todo el contenido de la fila.En la columna Ubicación, observa la segunda ubicación, como se destaca en el siguiente ejemplo:
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
Crea variables de entorno para el ID del proyecto, la región y el nombre de la implementación que deseas borrar:
export REGION="REGION" export PROJECT_ID="PROJECT_ID" export DEPLOYMENT_NAME="DEPLOYMENT_NAME"
En estos comandos, reemplaza lo siguiente:
- REGION: Es la ubicación que anotaste antes en este procedimiento.
- PROJECT_ID: Es el ID del proyecto en el que implementaste la solución.
- DEPLOYMENT_NAME: Es el nombre de la implementación que deseas borrar.
Obtén el ID de la última revisión de la implementación que deseas borrar:
export REVISION_ID=$(curl \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://config.googleapis.com/v1alpha2/projects/${PROJECT_ID}/locations/${REGION}/deployments/${DEPLOYMENT_NAME}" \ | jq .latestRevision -r) echo $REVISION_ID
El resultado es similar a este:
projects/PROJECT_ID/locations/REGION/deployments/DEPLOYMENT_NAME/revisions/r-0
Obtén la ubicación de Cloud Storage de la configuración de Terraform para la implementación:
export CONTENT_PATH=$(curl \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://config.googleapis.com/v1alpha2/${REVISION_ID}" \ | jq .applyResults.content -r) echo $CONTENT_PATH
El siguiente es un ejemplo del resultado de este comando:
gs://PROJECT_ID-REGION-blueprint-config/DEPLOYMENT_NAME/r-0/apply_results/content
Descarga la configuración de Terraform desde Cloud Storage a Cloud Shell:
gsutil cp -r $CONTENT_PATH $HOME cd $HOME/content
Espera hasta que aparezca el mensaje
Operation completed
, como se muestra en el siguiente ejemplo:Operation completed over 45 objects/268.5 KiB
Inicializa Terraform mediante este comando:
terraform init
Espera hasta ver el siguiente mensaje:
Terraform has been successfully initialized!
Quita los recursos implementados:
terraform destroy
Terraform muestra una lista de los recursos que se destruirán.
Si se muestran advertencias sobre variables no declaradas, ignora las advertencias.
Cuando se te solicite que realices las acciones, ingresa
yes
.Terraform mostrará mensajes que muestran el progreso. Después de borrar todos los recursos, Terraform muestra el siguiente mensaje:
Destroy complete!
Borra el artefacto de implementación:
curl -X DELETE \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://config.googleapis.com/v1alpha2/projects/${PROJECT_ID}/locations/${REGION}/deployments/${DEPLOYMENT_NAME}?force=true&delete_policy=abandon"
Espera unos segundos y, luego, verifica que se haya borrado el artefacto de implementación:
curl -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://config.googleapis.com/v1alpha2/projects/${PROJECT_ID}/locations/${REGION}/deployments/${DEPLOYMENT_NAME}" \ | jq .error.message
Si el resultado muestra
null
, espera unos segundos y vuelve a ejecutar el comando.Después de borrar el artefacto de implementación, aparece un mensaje como el que se muestra en el siguiente ejemplo:
Resource 'projects/PROJECT_ID/locations/REGION/deployments/DEPLOYMENT_NAME' was not found
Enviar comentarios
Las soluciones de Jump Start solo tienen fines informativos y no son productos compatibles de forma oficial. Google puede cambiar o quitar soluciones sin previo aviso.
Para solucionar errores, revisa los registros de Cloud Build y el resultado de Terraform.
Para enviar comentarios, haz lo siguiente:
- Para ver la documentación, los instructivos en la consola o la solución, usa el botón Enviar comentarios en la página.
- Para el código de Terraform sin modificar, crea problemas en el repositorio de GitHub. Los problemas de GitHub se revisan según el criterio del mejor esfuerzo y no están destinados a preguntas de uso general.
- Si tienes problemas con los productos que se usan en la solución, comunícate con Atención al cliente de Cloud.
¿Qué sigue?
- Descubre cómo Sharechat usa Cloud CDN para distribuir contenido de alta calidad y baja latencia a los usuarios en cualquier momento y lugar.
- Consulta la descripción general de Cloud CDN.
- Obtén más información sobre las prácticas recomendadas para Cloud VPN.