Elimine o processamento de imagens de IA/ML nas Cloud Functions

Last reviewed 2023-08-29 UTC

Este guia descreve como eliminar o processamento de imagens de IA/ML na solução Jump Start das Cloud Functions. Pode usar este guia para eliminar uma implementação existente da solução. O processamento de imagens de IA/ML nas Cloud Functions já não pode ser implementado a partir da Google Cloud consola e não é suportado.

Custo

Para uma estimativa do custo dos Google Cloud recursos que a solução de processamento de imagens de IA/ML no Cloud Functions usa, consulte a estimativa pré-calculada na Google Cloud calculadora de preços.

Use a estimativa como ponto de partida para calcular o custo da implementação. Pode modificar a estimativa para refletir quaisquer alterações de configuração que tenha feito aos recursos usados na solução.

A estimativa pré-calculada baseia-se em pressupostos para determinados fatores, incluindo o seguinte:

  • As Google Cloud localizações onde os recursos são implementados.
  • O tempo durante o qual os recursos são usados.

Também pode rever os custos de utilização dos recursos que implementou. Para mais detalhes, consulte Veja os seus relatórios de faturação e tendências de custos.

Obtenha as autorizações de IAM necessárias

Para eliminar uma implementação existente, precisa das autorizações da gestão de identidade e de acesso (IAM) indicadas na tabela seguinte. Se tiver a função básica para o projeto no qual a solução está implementada, já tem todas as autorizações necessárias.roles/owner Se não tiver a função roles/owner, peça ao administrador para lhe conceder estas autorizações (ou as funções que incluem estas autorizações).

Autorização de IAM necessária Função predefinida que inclui as autorizações necessárias

serviceusage.services.enable

Administrador de utilização de serviços
(roles/serviceusage.serviceUsageAdmin)

iam.serviceAccounts.create

Administrador da conta de serviço
(roles/iam.serviceAccountAdmin)

resourcemanager.projects.setIamPolicy

Project IAM Admin
(roles/resourcemanager.projectIamAdmin)
config.deployments.create
config.deployments.list
Administrador do Cloud Infrastructure Manager
(roles/config.admin)

Conta de serviço criada para a solução

Quando inicia o processo de eliminação através da consola, é criada uma conta de serviço para implementar a solução em seu nome (e para eliminar a implementação mais tarde, se quiser). Esta conta de serviço tem determinadas autorizações do IAM atribuídas temporariamente, ou seja, as autorizações são revogadas automaticamente após a conclusão das operações de implementação e eliminação da solução. A Google recomenda que, depois de eliminar a implementação, elimine a conta de serviço, conforme descrito mais adiante neste guia.

Veja as funções atribuídas à conta de serviço

Estes papéis estão listados aqui caso um administrador do seu projeto ou organização precise destas informações.Google Cloud

  • roles/serviceusage.serviceUsageAdmin
  • roles/iam.serviceAccountAdmin
  • roles/resourcemanager.projectIamAdmin
  • roles/cloudfunctions.admin
  • roles/run.admin
  • roles/storage.admin
  • roles/pubsublite.admin
  • roles/iam.securityAdmin
  • roles/logging.admin
  • roles/artifactregistry.reader
  • roles/cloudbuild.builds.editor
  • roles/compute.admin
  • roles/iam.serviceAccountUser

Elimine a implementação

Quando já não precisar da implementação da solução, para evitar a faturação contínua dos recursos que criou, elimine a implementação.

Elimine-o através da consola

Use este procedimento se implementou a solução através da consola.

  1. Na Google Cloud consola, aceda à página Implementações de soluções.

    Aceda a Implementações de soluções

  2. Selecione o projeto que contém a implementação que quer eliminar.

  3. Localize a implementação que quer eliminar.

  4. Na linha da implementação, clique em Ações e, de seguida, selecione Eliminar.

    Pode ter de deslocar a página para ver Ações na linha.

  5. Introduza o nome da implementação e, de seguida, clique em Confirmar.

    O campo Estado mostra A eliminar.

    Se a eliminação falhar, consulte as orientações de resolução de problemas em Erro ao eliminar uma implementação.

Quando já não precisar do Google Cloud projeto que usou para a solução, pode eliminá-lo. Para mais informações, consulte a secção Opcional: elimine o projeto.

Elimine através da CLI do Terraform

Use este procedimento se tiver implementado a solução através da CLI do Terraform.

  1. No Cloud Shell, certifique-se de que o diretório de trabalho atual é $HOME/cloudshell_open/terraform-ml-image-annotation-gcf/infra. Se não for, aceda a esse diretório.

  2. Remova os recursos aprovisionados pelo Terraform:

    terraform destroy
    

    O Terraform apresenta uma lista dos recursos que vão ser destruídos.

  3. Quando lhe for pedido para realizar as ações, introduza yes.

    O Terraform apresenta mensagens que mostram o progresso. Depois de todos os recursos serem eliminados, o Terraform apresenta a seguinte mensagem:

    Destroy complete!
    

    Se a eliminação falhar, consulte as orientações de resolução de problemas em Erro ao eliminar uma implementação.

Quando já não precisar do Google Cloud projeto que usou para a solução, pode eliminá-lo. Para mais informações, consulte a secção Opcional: elimine o projeto.

Opcional: elimine o projeto

Se implementou a solução num novo Google Cloud projeto e já não precisa do projeto, elimine-o concluindo os seguintes passos:

  1. Na Google Cloud consola, aceda à página Gerir recursos.

    Aceda a Gerir recursos

  2. Na lista de projetos, selecione o projeto que quer eliminar e, de seguida, clique em Eliminar.
  3. Na mensagem, escreva o ID do projeto e, de seguida, clique em Encerrar.

Se decidir manter o projeto, elimine a conta de serviço que foi criada para esta solução, conforme descrito na secção seguinte.

Opcional: elimine a conta de serviço

Se eliminou o projeto que usou para a solução, ignore esta secção.

Conforme mencionado anteriormente neste guia, quando implementou a solução, foi criada uma conta de serviço em seu nome. Foram atribuídas determinadas autorizações do IAM à conta de serviço temporariamente, ou seja, as autorizações foram revogadas automaticamente após a conclusão das operações de implementação e eliminação da solução, mas a conta de serviço não é eliminada. A Google recomenda que elimine esta conta de serviço.

  • Se implementou a solução através da Google Cloud consola, aceda à página Implementações de soluções. (Se já estiver nessa página, atualize o navegador.) É acionado um processo em segundo plano para eliminar a conta de serviço. Não é necessária nenhuma ação adicional.

  • Se implementou a solução através da CLI do Terraform, conclua os seguintes passos:

    1. Na Google Cloud consola, aceda à página Contas de serviço.

      Aceda a Contas de serviço

    2. Selecione o projeto que usou para a solução.

    3. Selecione a conta de serviço que quer eliminar.

      O ID de email 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 do email contém os seguintes valores:

      • DEPLOYMENT_NAME: o nome da implementação.
      • NNN: um número aleatório de 3 dígitos.
      • PROJECT_ID: o ID do projeto no qual implementou a solução.
    4. Clique em Eliminar.

Resolva problemas de erros

As ações que pode realizar para diagnosticar e resolver erros dependem do método de implementação e da complexidade do erro.

Erro ao eliminar uma implementação

Em determinados casos, as tentativas de eliminar uma implementação podem falhar:

  • Após implementar uma solução através da consola, se alterar qualquer recurso aprovisionado pela solução e, em seguida, tentar eliminar a implementação, a eliminação pode falhar. O campo Estado na página Implementações de soluções mostra Falhou e o registo do Cloud Build mostra a causa do erro.
  • Depois de implementar uma solução através da CLI do Terraform, se alterar qualquer recurso através de uma interface não pertencente ao Terraform (por exemplo, a consola) e, em seguida, tentar eliminar a implementação, a eliminação pode falhar. As mensagens no resultado do comando terraform destroy mostram a causa do erro.

Reveja os registos e as mensagens de erro, identifique e elimine os recursos que causaram o erro e, de seguida, tente eliminar a implementação novamente.

Se uma implementação baseada na consola não for eliminada e não conseguir diagnosticar o erro através do registo do Cloud Build, pode eliminar a implementação através da CLI do Terraform, conforme descrito na secção seguinte.

Elimine uma implementação baseada na consola através da CLI do Terraform

Esta secção descreve como eliminar uma implementação baseada na consola se ocorrerem erros quando tentar eliminá-la através da consola. Nesta abordagem, transfere a configuração do Terraform para a implementação que quer eliminar e, em seguida, usa a CLI do Terraform para eliminar a implementação.

  1. Identifique a região onde o código, os registos e outros dados do Terraform da implementação são armazenados. Esta região pode ser diferente da região que selecionou durante a implementação da solução.

    1. Na Google Cloud consola, aceda à página Implementações de soluções.

      Aceda a Implementações de soluções

    2. Selecione o projeto que contém a implementação que quer eliminar.

    3. Na lista de implementações, identifique a linha da implementação que quer eliminar.

    4. Clique em Ver todo o conteúdo da linha.

    5. Na coluna Localização, repare na segunda localização, conforme realçado no exemplo seguinte:

      Localização do código de implementação, registos e outros artefactos.

  2. In the Google Cloud console, activate Cloud Shell.

    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.

  3. Crie variáveis de ambiente para o ID do projeto, a região e o nome da implementação que quer eliminar:

    export REGION="REGION"
    export PROJECT_ID="PROJECT_ID"
    export DEPLOYMENT_NAME="DEPLOYMENT_NAME"
    

    Nestes comandos, substitua o seguinte:

    • REGION: a localização que indicou anteriormente neste procedimento.
    • PROJECT_ID: o ID do projeto onde implementou a solução.
    • DEPLOYMENT_NAME: o nome da implementação que quer eliminar.
  4. Obtenha o ID da revisão mais recente da implementação que quer eliminar:

    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 é semelhante ao seguinte:

    projects/PROJECT_ID/locations/REGION/deployments/DEPLOYMENT_NAME/revisions/r-0
    
  5. Obtenha a localização do Cloud Storage da configuração do Terraform para a implementaçã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
    

    Segue-se um exemplo do resultado deste comando:

    gs://PROJECT_ID-REGION-blueprint-config/DEPLOYMENT_NAME/r-0/apply_results/content
    
  6. Transfira a configuração do Terraform do Cloud Storage para o Cloud Shell:

    gcloud storage cp $CONTENT_PATH $HOME --recursive
    cd $HOME/content/infra
    

    Aguarde até que a mensagem Operation completed seja apresentada, conforme mostrado no exemplo seguinte:

    Operation completed over 45 objects/268.5 KiB
    
  7. Inicialize o Terraform:

    terraform init
    

    Aguarde até ver a seguinte mensagem:

    Terraform has been successfully initialized!
    
  8. Remova os recursos implementados:

    terraform destroy
    

    O Terraform apresenta uma lista dos recursos que vão ser destruídos.

    Se forem apresentados avisos sobre variáveis não declaradas, ignore-os.

  9. Quando lhe for pedido para realizar as ações, introduza yes.

    O Terraform apresenta mensagens que mostram o progresso. Depois de todos os recursos serem eliminados, o Terraform apresenta a seguinte mensagem:

    Destroy complete!
    
  10. Elimine o artefacto de implementaçã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"
    
  11. Aguarde alguns segundos e, em seguida, verifique se o artefacto de implementação foi eliminado:

    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 o resultado apresentar null, aguarde alguns segundos e, em seguida, execute o comando novamente.

    Após a eliminação do artefacto de implementação, é apresentada uma mensagem, conforme mostrado no exemplo seguinte:

    Resource 'projects/PROJECT_ID/locations/REGION/deployments/DEPLOYMENT_NAME' was not found
    
  12. O que se segue?