Este guia ajuda você a entender, implantar e usar o App da Web Java para grande compartilhamento de dados Solução Jump Start. Nesta solução, você verá como criar um aplicativo que exibe grandes quantidades de arquivos.
Se você quiser usar o Go em vez do Java, consulte a solução de salto para aplicativo de grande compartilhamento de dados da Web em Golang.
Este documento é destinado a desenvolvedores com algum conhecimento sobre a criação de um aplicativo da Web. Ele pressupõe que você esteja familiarizado com Java e conceitos básicos da nuvem, mas não necessariamente o Google Cloud. Ter experiência com o Terraform é útil.
Objetivos
- Compreenda o padrão do usuário de compartilhamento de dados.
- Armazene e disponibilize objetos em um serviço de armazenamento de objetos baseado na nuvem.
- Implante um aplicativo que usa uma rede de entrega distribuída para exibir muitos objetos.
- Proteja os objetos em cada camada para ter acesso com menos privilégios.
Produtos usados
A solução usa os seguintes produtos do Google Cloud:
- Cloud CDN (rede de fornecimento de conteúdo): entrega rápida e confiável de conteúdo da Web e vídeos em escala global.
- Cloud Storage: um serviço pronto para empresas que oferece armazenamento de objetos de baixo custo e sem limite para diversos tipos de dados. Os dados podem ser acessados de dentro e de fora do Google Cloud e são replicados geograficamente de modo redundante.
- Cloud Run: um serviço totalmente gerenciado que permite criar e implantar apps conteinerizados sem servidor. O Google Cloud lida com o escalonamento e outras tarefas de infraestrutura para que você possa se concentrar na lógica de negócios do seu código.
- Cloud Load Balancing: um serviço que fornece balanceamento de carga escalonável e de alto desempenho no Google Cloud.
- Firestore: um banco de dados de documentos totalmente gerenciado, escalonável e sem servidor.
Para informações sobre como esses produtos são configurados e como eles interagem, consulte a próxima seção.
Arquitetura
Esta solução implanta um aplicativo de compartilhamento de imagem totalmente implementado e pronto para usar. O diagrama a seguir mostra a arquitetura dos recursos do Google Cloud implantados:
Fluxo da solicitação
Veja a seguir o fluxo de processamento de solicitações do app de compartilhamento de imagens implantado por essa solução. As etapas no fluxo são numeradas conforme mostrado no diagrama de arquitetura anterior.
- As solicitações dos usuários para fazer upload de arquivos são encaminhadas para o front-end usando um balanceador de carga.
- O front-end encaminha essas solicitações para o back-end, que usa o Cloud Run.
- O back-end armazena os arquivos no Cloud Storage e os metadados sobre os arquivos no Firestore.
- Se houver uma ocorrência em cache do Cloud CDN, as solicitações de usuários para visualizar um arquivo serão roteadas para o Cloud CDN.
- Se houver uma ausência no cache do Cloud CDN, as solicitações dos usuários para visualizar um arquivo serão roteadas para o Cloud Storage.
Componentes e configuração
A arquitetura inclui os seguintes componentes:
- Um app da Web de compartilhamento de imagens composto por um front-end e um back-end em execução no Cloud Run. O front-end do aplicativo usa o Angular. O back-end do aplicativo é escrito em Java.
- Um balanceador de carga criado usando o Cloud Load Balancing encaminha solicitações de entrada para o recurso apropriado.
- Um bucket do Cloud Storage que armazena arquivos de imagem.
- O Cloud CDN armazena em cache imagens do bucket do Cloud Storage e acelera a entrega de conteúdo.
- Um banco de dados do Firestore para armazenar metadados de arquivos.
Custo
Para uma estimativa dos custos dos recursos do Google Cloud usados pela solução de aplicativo da Web Java para compartilhamento de grandes volumes de dados, consulte a estimativa pré-calculada na Calculadora de preços do Google Cloud.
Use a estimativa como um ponto de partida para calcular o custo da implantação. É possível modificar a estimativa para refletir as alterações de configuração planejadas para os recursos usados na solução.
A estimativa pré-calculada tem como base suposições específicas, incluindo o seguinte:
- Os locais do Google Cloud em que os recursos são implantados.
- A quantidade de tempo em que os recursos são usados.
implantar a solução
Esta seção orienta você no processo de implantação da solução.
Criar ou escolher um projeto do Google Cloud
Ao implantar a solução, escolha o projeto do Google Cloud em que os recursos serão implantados. Ao decidir entre usar um projeto existente ou criar um, considere os seguintes fatores:
- Se você criar um projeto para a solução, quando não precisar mais da implantação, será possível excluir o projeto e evitar o faturamento contínuo. Se você usar um projeto existente, será preciso excluir a implantação quando não precisar mais dela.
- Usar um novo projeto pode ajudar a evitar conflitos com recursos provisionados anteriormente, como recursos usados em cargas de trabalho de produção.
Se você quiser implantar a solução em um novo projeto, crie o projeto antes de iniciar a implantação.
Para criar um projeto, siga estas etapas:
-
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.
Receber as permissões de IAM necessárias
Para iniciar o processo de implantação, você precisa das permissões do Identity and Access Management (IAM) listadas na tabela a seguir. Se você tem o
papel básico
roles/owner
no projeto em que planeja implantar a solução, você
já tem todas as permissões necessárias. Se você não tiver o papel roles/owner
, peça ao administrador para conceder essas permissões (ou as que incluem essas permissões) a você.
Permissão do IAM necessária | Papel predefinido que inclui as permissões necessárias |
---|---|
|
Administrador do Service Usage ( roles/serviceusage.serviceUsageAdmin ) |
|
Administrador da conta de serviço ( roles/iam.serviceAccountAdmin ) |
|
Administrador de projetos do IAM ( roles/resourcemanager.projectIamAdmin ) |
config.deployments.create config.deployments.list |
Administrador do Cloud Config Manager ( roles/config.admin ) |
Conta de serviço criada para a solução
Quando você inicia o processo de implantação, uma conta de serviço é criada para implantar a solução em seu nome (e para excluí-la depois, se você quiser). Essa conta de serviço recebe determinadas permissões do IAM temporariamente, ou seja, as permissões são revogadas automaticamente após a conclusão das operações de implantação e exclusão da solução. O Google recomenda que, após a exclusão da implantação, você exclua a conta de serviço, conforme descrito mais adiante neste guia.
Ver os papéis atribuídos à conta de serviço
Esses papéis são listados aqui caso um administrador do projeto ou da organização do Google Cloud precise dessas informações.
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
Escolher um método de implantação
É possível implantar essa solução usando os seguintes métodos:
No console: use esse método para testar a solução ver como ela funciona. O Cloud Build implanta todos os recursos necessários para a solução. Quando você não precisar mais da solução implantada, será possível excluí-la usando o console. Todos os recursos criados depois da implantação da solução talvez precisem ser excluídos separadamente.
Para usar esse método de implantação, siga as instruções em Implantar a partir do console.
Com o Terraform: use esse método se quiser personalizar a solução ou automatizar o provisionamento e o gerenciamento dos recursos usando a abordagem de infraestrutura como código (IaC). Faça o download da configuração do Terraform no GitHub, personalize o código conforme necessário e implante a solução usando o Terraform. Depois de implantar a solução, é possível continuar a usar o Terraform para gerenciá-la.
Para usar esse método de implantação, siga as instruções em Implantar usando o Terraform.
Implantar do console
Conclua as etapas a seguir para implantar a solução pré-configurada.
No catálogo de soluções iniciais do Google Cloud Jump, acesse a solução de aplicativo de grande compartilhamento de dados Java na Web.
Acesse a solução do app Java para compartilhamento de grandes dados na Web
Revise as informações fornecidas na página, como o custo estimado da solução e o tempo estimado de implantação.
Quando estiver tudo pronto para começar a implantar a solução, clique em Implantar.
Veja um guia interativo passo a passo.
Conclua estas etapas no guia interativo.
Anote o nome inserido para a implantação. Ele será necessário depois de excluir a implantação.
Quando você clica em Implantar, a página Implantações da solução é exibida. O campo Status nesta página mostra Implantação.
Aguarde a solução ser implantada.
Se a implantação falhar, o campo Status vai mostrar Falha. Use o registro do Cloud Build para diagnosticar os erros. Para mais informações, consulte Erros ao implantar no console.
Depois que a implantação for concluída, o campo Status mudará para Implantado.
Para ver e usar a solução, retorne à página Implantações da solução no console.
- Clique no menu Ações.
- Selecione Ver app da Web para abrir o app de compartilhamento de imagens.
Quando você não precisar mais da solução, exclua a implantação para evitar o faturamento contínuo dos recursos do Google Cloud. Para mais informações, consulte Excluir a implantação.
Implantar com o Terraform
Nesta seção, descrevemos como personalizar a solução ou automatizar o provisionamento e o gerenciamento dela usando o Terraform. As soluções que você implanta usando o código do Terraform não são exibidas na página Implantações da solução no console do Google Cloud.
Configurar o cliente do Terraform
É possível executar o Terraform no Cloud Shell ou no seu host local. Neste guia, descrevemos como executar o Terraform no Cloud Shell, que tem o Terraform pré-instalado e configurado para autenticação com o Google Cloud.
O código do Terraform para esta solução está disponível em um repositório do GitHub.
Clone o repositório do GitHub no Cloud Shell.
Você verá um prompt para confirmar o download do repositório do GitHub para o Cloud Shell.
Clique em Confirmar.
O Cloud Shell é iniciado em uma guia separada do navegador, e o código do Terraform é transferido por download para o diretório
$HOME/cloudshell_open
do seu ambiente do Cloud Shell.No Cloud Shell, verifique se o diretório de trabalho atual é
$HOME/cloudshell_open/terraform-large-data-sharing-java-webapp/infra
. Esse é o diretório que contém os arquivos de configuração do Terraform para a solução. Se você precisar mudar para esse diretório, execute o seguinte comando:cd $HOME/cloudshell_open/terraform-large-data-sharing-java-webapp/infra
Inicialize o Terraform executando o seguinte comando:
terraform init
Aguarde até ver a seguinte mensagem:
Terraform has been successfully initialized!
Configurar as variáveis do Terraform
O código do Terraform que você salvou inclui variáveis que podem ser usadas para personalizar a implantação com base nos seus requisitos. Por exemplo, é possível especificar o projeto do Google Cloud e a região em que você quer que a solução seja implantada.
Verifique se o diretório de trabalho atual é
$HOME/cloudshell_open/terraform-large-data-sharing-java-webapp/infra
. Se não estiver, acesse esse diretório.No mesmo diretório, crie um arquivo de texto chamado
terraform.tfvars
.No arquivo
terraform.tfvars
, copie o snippet de código a seguir e defina valores para as variáveis necessárias.- Siga as instruções fornecidas como comentários no snippet de código.
- Esse snippet de código inclui apenas as variáveis para as quais você precisa definir
valores. A configuração do Terraform inclui outras variáveis que têm
valores padrão. Para revisar todas as variáveis e os valores padrão, consulte
o arquivo
variables.tf
disponível no diretório$HOME/cloudshell_open/terraform-large-data-sharing-java-webapp/infra
. - Verifique se cada valor definido no arquivo
terraform.tfvars
corresponde ao tipo da variável, conforme declarado no arquivovariables.tf
. Por exemplo, se o tipo definido para uma variável no arquivovariables.tf
forbool
, especifiquetrue
oufalse
como o valor dessa variável no arquivoterraform.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 informações sobre
project_id
, consulte Como identificar projetos.
Validar e revisar a configuração do Terraform
Verifique se o diretório de trabalho atual é
$HOME/cloudshell_open/terraform-large-data-sharing-java-webapp/infra
. Se não estiver, acesse esse diretório.Verifique se a configuração do Terraform não tem erros:
terraform validate
Se o comando retornar algum erro, faça as correções necessárias na configuração e execute o comando
terraform validate
novamente. Repita essa etapa até o comando retornar a seguinte mensagem:Success! The configuration is valid.
Analise os recursos definidos na configuração:
terraform plan
Se você não tiver criado o arquivo
terraform.tfvars
conforme descrito anteriormente, o Terraform solicitará que você insira valores das variáveis que não têm valores padrão. Insira os valores obrigatórios.A saída do comando
terraform plan
é uma lista dos recursos provisionados pelo Terraform quando você aplica a configuração.Se você quiser fazer alterações, edite a configuração e execute os comandos
terraform validate
eterraform plan
novamente.
Provisionar os recursos
Quando nenhuma outra alteração for necessária na configuração, implante os recursos:
Verifique se o diretório de trabalho atual é
$HOME/cloudshell_open/terraform-large-data-sharing-java-webapp/infra
. Se não estiver, acesse esse diretório.Aplique a configuração do Terraform:
terraform apply
Se você não tiver criado o arquivo
terraform.tfvars
conforme descrito anteriormente, o Terraform solicitará que você insira valores das variáveis que não têm valores padrão. Insira os valores obrigatórios.O Terraform exibe uma lista dos recursos que serão criados.
Quando for solicitado que você execute as ações, digite
yes
.O Terraform exibe mensagens mostrando o progresso da implantação.
Se não for possível concluir a implantação, o Terraform exibirá os erros que causaram a falha. Analise as mensagens de erro e atualize a configuração para corrigi-los. Em seguida, execute o comando
terraform apply
novamente. Para receber ajuda com a solução de problemas do Terraform, consulte Erros ao implantar a solução usando o Terraform.Depois que todos os recursos forem criados, o Terraform exibirá a seguinte mensagem:
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-java_tour"
Para ver e usar o app de exemplo, abra o
lb_external_ip
no seu navegador.
Quando você não precisar mais da solução, exclua a implantação para evitar o faturamento contínuo dos recursos do Google Cloud. Para mais informações, consulte Excluir a implantação.
Personalizar a solução
Nesta seção, fornecemos informações que os desenvolvedores do Terraform podem usar para modificar a solução de grande compartilhamento de dados em Java para atender aos próprios requisitos técnicos e comerciais. As orientações nesta seção são relevantes apenas se você implantar a solução usando o Terraform.
Verifique se o diretório de trabalho atual é
$HOME/cloudshell_open/terraform-large-data-sharing-java-webapp/infra
. Se não estiver, acesse esse diretório:cd $HOME/cloudshell_open/terraform-large-data-sharing-java-webapp/infra
Abra
main.tf
e faça as alterações necessárias, conforme mostrado nos exemplos na tabela a seguir:
Parâmetro
Argumento do Terraform emmain.tf
Limite de CPU para o back-end do app
Argumento:cloud_run_server.limits.cpu
Snippet de código relevante emmain.tf
:
module "cloud_run_server" { … limits = { cpu = "2000m" … }
Limite de memória para o back-end do app
Argumento:cloud_run_server.limits.memory
Snippet de código relevante emmain.tf
:
module "cloud_run_server" { … limits = { … memory = "2Gi" …
Limite de CPU para o front-end do app
Argumento:cloud_run_client.limits.cpu
Snippet de código relevante emmain.tf
:
module "cloud_run_client" { … limits = { cpu = "1000m" … }
Limite de memória para o front-end do app
Argumento:cloud_run_client.limits.memory
Snippet de código relevante emmain.tf
:
module "cloud_run_client" { … limits = { … memory = "512Mi" …
Valide e provisione os recursos seguindo as mesmas etapas da seção anterior:
Excluir a implantação
Quando você não precisar mais da implantação da solução, exclua a implantação para evitar o faturamento contínuo dos recursos criados.
Excluir o projeto
Se você tiver implantado a solução em um novo projeto do Google Cloud e não for mais usar o projeto, exclua-o seguindo estas etapas:
- No Console do Google Cloud, acesse a página Gerenciar recursos.
- Na lista de projetos, selecione o projeto que você quer excluir e clique em Excluir.
- No prompt, digite o ID do projeto e clique em Encerrar.
Se você decidir manter o projeto, exclua a conta de serviço criada para essa solução, conforme descrito na próxima seção.
Excluir usando o console
Se você excluir a implantação da solução por meio do console, o banco de dados do Firestore não será excluído. Para excluir esse banco de dados, exclua o projeto conforme descrito anteriormente.
Use este procedimento se você tiver implantado a solução pelo console.
No console do Google Cloud, acesse a página Implantações da solução.
Selecione o projeto que contém a implantação que você quer excluir.
Localize a implantação que você quer excluir.
Clique em
Ações e selecione Excluir.Digite o nome da implantação e clique em Confirmar.
O campo Status mostra Excluindo.
Se a exclusão falhar, consulte as orientações de solução de problemas em Erro ao excluir uma implantação.
Quando você não precisar mais do projeto do Google Cloud usado na solução, exclua-o. Para mais informações, consulte Opcional: excluir o projeto.
Excluir usando o Terraform
Se você excluir a implantação da solução usando o Terraform, o banco de dados do Firestore não será excluído. Para excluir esse banco de dados, exclua o projeto conforme descrito anteriormente.
Use este procedimento se você tiver implantado a solução com o Terraform.
No Cloud Shell, verifique se o diretório de trabalho atual é
$HOME/cloudshell_open/terraform-large-data-sharing-java-webapp/infra
. Se não estiver, acesse esse diretório.Remova os recursos provisionados pelo Terraform:
terraform destroy
O Terraform exibe uma lista dos recursos que serão destruídos.
Quando for solicitado que você execute as ações, digite
yes
.O Terraform exibe as mensagens que mostram o progresso. Depois que todos os recursos forem excluídos, o Terraform exibirá a seguinte mensagem:
Destroy complete!
Se a exclusão falhar, consulte as orientações de solução de problemas em Erro ao excluir uma implantação.
Quando você não precisar mais do projeto do Google Cloud usado na solução, exclua-o. Para mais informações, consulte Opcional: excluir o projeto.
Opcional: excluir a conta de serviço
Se você excluiu o projeto usado para a solução, pule esta seção.
Como mencionado anteriormente neste guia, quando você implantou a solução, uma conta de serviço foi criada em seu nome. A conta de serviço recebeu determinadas permissões do IAM temporariamente, ou seja, as permissões foram revogadas automaticamente após a conclusão das operações de implantação e exclusão da solução, mas a conta de serviço não foi excluída. O Google recomenda que você exclua essa conta de serviço.
Se você implantou a solução no console do Google Cloud, acesse a página Implantações da solução. Sua visita a essa página dispara um processo no back-end para excluir a conta de serviço. Nenhuma ação adicional é necessária.
Se você tiver implantado a solução usando o Terraform, siga estas etapas:
No Console do Google Cloud, acesse a página Contas de serviço.
Selecione o projeto usado para a solução.
Selecione a conta de serviço que você quer excluir.
O ID de e-mail da conta de serviço que foi criada para a solução está no seguinte formato:
goog-sc-DEPLOYMENT_NAME-NNN@PROJECT_ID.iam.gserviceaccount.com
O ID de e-mail contém os seguintes valores:
- DEPLOYMENT_NAME: o nome da implantação.
- NNN: um número aleatório de três dígitos.
- PROJECT_ID é o ID do projeto em que você implantou a solução.
Clique em Excluir.
Solucionar erros
As ações que podem ser realizadas para diagnosticar e resolver erros dependem do método de implantação e da complexidade dele.
Erros de implantação no console
Se a implantação falhar quando você usar o console, faça o seguinte:
Acesse a página Implantações da solução.
Se a implantação falhou, o campo Status mostra Falha.
Para ver os detalhes dos erros que causaram a falha, faça o seguinte:
Clique em
Ações.Selecione Ver registros do Cloud Build.
Analise o registro do Cloud Build e tome as medidas apropriadas para resolver o problema que causou a falha.
Erros de implantação da solução com o Terraform
Se a implantação falhar quando você usar o Terraform, a saída do comando terraform
apply
incluirá mensagens de erro que podem ser analisadas para diagnosticar o problema.
Os exemplos nas seções a seguir mostram erros de implantação que podem ser encontrados ao usar o Terraform.
Erro: erro ao criar banco de dados: googleapi: erro 409: o banco de dados já existe. Use outro database_id
Por padrão, a implantação do Terraform considera que já existe um banco de dados do Firestore no seu projeto. Se o banco de dados já existir, execute a implantação novamente com a seguinte sinalização para pular a criação do banco de dados:
$ terraform apply -var "init=false"
Erro: erro ao criar índice: googleapi: erro 409: o índice já existe
Esse erro indica que a solução foi implantada anteriormente neste projeto. Selecione outro projeto ou exclua os índices do Firestore criados anteriormente pelo aplicativo de amostra.
Erro de API não ativada
Se você criar um projeto e tentar implantar imediatamente a solução no novo projeto, a implantação poderá falhar e apresentar um erro como este:
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.
Se esse erro ocorrer, aguarde alguns minutos e execute o comando terraform apply
novamente.
Erro ao excluir uma implantação
Em alguns casos, as tentativas de excluir uma implantação podem falhar:
- Depois de implantar uma solução no console, se você alterar qualquer recurso provisionado por ela e tentar excluir a implantação, a exclusão poderá falhar. O campo Status na página Implantações da solução mostra Com falha e o registro do Cloud Build mostra a causa do erro.
- Depois de implantar uma solução usando o Terraform, se você alterar qualquer recurso
usando uma interface diferente do Terraform (por exemplo, o console)
e, em seguida, tentar excluir a implantação, a exclusão poderá falhar. As
mensagens na saída do comando
terraform destroy
mostram a causa do erro.
Revise os registros de erro e as mensagens, identifique e exclua os recursos que causaram o erro e tente excluir a implantação novamente.
Se uma implantação baseada em console não for excluída e não for possível diagnosticar o erro usando o registro do Cloud Build, será possível excluir a implantação usando o Terraform, conforme descrito na próxima seção.
Excluir uma implantação baseada em console usando o Terraform
Nesta seção, descrevemos como excluir uma implantação baseada em console em caso de erros ao tentar excluí-la no console. Nesta abordagem, faça o download da configuração do Terraform para a implantação que você quer excluir e use o Terraform para excluir a implantação.
Identifique a região em que o código, os registros e outros dados do Terraform da implantação são armazenados. Essa região pode ser diferente da região selecionada durante a implantação da solução.
No console do Google Cloud, acesse a página Implantações de soluções.
Selecione o projeto que contém a implantação que você quer excluir.
Na lista de implantações, identifique a linha da implantação que você quer excluir.
Clique em
Consultar todo o conteúdo da linha.Na coluna Local, observe o segundo local, conforme destacado no exemplo a seguir:
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.
Crie variáveis de ambiente para o ID do projeto, a região e o nome da implantação que você quer excluir:
export REGION="REGION" export PROJECT_ID="PROJECT_ID" export DEPLOYMENT_NAME="DEPLOYMENT_NAME"
Nesses comandos, substitua o seguinte:
- REGION: o local que você anotou anteriormente neste procedimento.
- PROJECT_ID: o ID do projeto em que você implantou a solução.
- DEPLOYMENT_NAME: o nome da implantação que você quer excluir.
Encontre o ID da revisão mais recente da implantação que você quer excluir:
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
O resultado será assim:
projects/PROJECT_ID/locations/REGION/deployments/DEPLOYMENT_NAME/revisions/r-0
Encontre o local do Cloud Storage na configuração do Terraform para a implantação:
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
Veja a seguir um exemplo da saída desse comando:
gs://PROJECT_ID-REGION-blueprint-config/DEPLOYMENT_NAME/r-0/apply_results/content
Faça o download da configuração do Terraform do Cloud Storage para o Cloud Shell:
gsutil cp -r $CONTENT_PATH $HOME cd $HOME/content
Aguarde até que a mensagem
Operation completed
seja exibida, conforme mostrado no exemplo a seguir:Operation completed over 45 objects/268.5 KiB
Inicialize o Terraform:
terraform init
Aguarde até ver a seguinte mensagem:
Terraform has been successfully initialized!
Remova os recursos implantados:
terraform destroy
O Terraform exibe uma lista dos recursos que serão destruídos.
Se forem exibidos avisos sobre variáveis não declaradas, ignore-os.
Quando for solicitado que você execute as ações, digite
yes
.O Terraform exibe as mensagens que mostram o progresso. Depois que todos os recursos forem excluídos, o Terraform exibirá a seguinte mensagem:
Destroy complete!
Exclua o artefato de implantação:
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"
Aguarde alguns segundos e verifique se o artefato de implantação foi excluído:
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
Se a saída mostrar
null
, aguarde alguns segundos e execute o comando novamente.Depois que o artefato de implantação for excluído, uma mensagem, como mostrado no exemplo a seguir, será exibida:
Resource 'projects/PROJECT_ID/locations/REGION/deployments/DEPLOYMENT_NAME' was not found
Enviar feedback
As soluções Jump Start são apenas para fins informativos e não são produtos oficialmente compatíveis. O Google pode alterar ou remover soluções sem aviso prévio.
Para resolver erros, analise os registros do Cloud Build e a saída do Terraform.
Para enviar feedback, faça o seguinte:
- Para ver a documentação, os tutoriais no console ou a solução, use o botão Enviar feedback na página.
- Para código não modificado do Terraform, crie problemas no repositório do GitHub. Os problemas do GitHub são analisados com base no melhor esforço e não se destinam a perguntas gerais de uso.
- Para problemas com produtos usados na solução, entre em contato com o Cloud Customer Care.
A seguir
- Saiba como o Sharechat usa o Cloud CDN para distribuir conteúdo de alta qualidade e baixa latência para usuários a qualquer hora e em qualquer lugar.
- Consulte a visão geral do Cloud CDN.
- Saiba mais sobre as práticas recomendadas para o Cloud CDN