Noções básicas sobre as APIs do Trusted Cloud by S3NS e o Terraform

Este guia tem como objetivo esclarecer como o Terraform interage com as APIs Trusted Cloud by S3NS , diferenciando entre APIs públicas e privadas, e explicar conceitos importantes, como ativação de API e importação de recursos. Essa compreensão é crucial para gerenciar seus recursos do Trusted Cloud by S3NS de forma eficaz com o Terraform e evitar erros comuns.

APIs públicas x privadas Trusted Cloud by S3NS

Os serviços doTrusted Cloud by S3NS expõem várias APIs que permitem que aplicativos e ferramentas (como o Terraform) interajam com recursos e os gerenciem. Essas APIs se enquadram em duas categorias:

APIs públicas

Finalidade:são as principais interfaces para que clientes e ferramentas criem, configurem e gerenciem recursos do Trusted Cloud by S3NS (por exemplo, instâncias do Compute Engine, buckets do Cloud Storage, conjuntos de dados do BigQuery).

Exposição:as APIs públicas são bem documentadas, têm endpoints REST definidos e são destinadas ao consumo externo. São as APIs com que o provedor do Terraform google foi criado para interagir.

Exemplos:compute.googleapis.com, storage.googleapis.com, bigquery.googleapis.com.

APIs particulares (internas)

Finalidade:essas APIs são internas aos serviços do Trusted Cloud by S3NS , usadas pelo próprio Google para operação, organização e provisionamento internos dos serviços gerenciados. Eles expõem funcionalidades que não são destinadas à interação ou ao gerenciamento direto do cliente.

Exposição:as APIs particulares geralmente não são documentadas publicamente, não têm endpoints externos estáveis e não são projetadas para acesso direto por ferramentas de terceiros, como o Terraform. Eles são um detalhe de implementação do serviço.

Exemplo:dataproc-control.googleapis.com é uma API interna que o Dataproc usa para o plano de controle operacional. Os clientes não interagem nem gerenciam essa API diretamente.

Ativação da API x importação de recursos no Terraform

Entender a distinção entre "ativar uma API" e "importar um recurso" é fundamental para usar o Terraform de forma eficaz com o Trusted Cloud by S3NS.

Como ativar uma API

  • O que isso significa:quando você "ativa uma API" no Trusted Cloud by S3NS, está ativando um serviço Trusted Cloud by S3NS específico para seu projeto. Isso concede ao seu projeto as permissões e o acesso necessários para usar as funcionalidades desse serviço e criar recursos gerenciados por ele.

Contexto do Terraform:no Terraform, isso geralmente é feito usando o recurso google_project_service. Esse recurso verifica se uma API pública especificada (por exemplo, compute.googleapis.com) está ativado para seu projeto Trusted Cloud by S3NS .

Finalidade:ativar uma API é um pré-requisito para criar ou gerenciar recursos pertencentes a esse serviço. Por exemplo, é necessário ativar compute.googleapis.com antes de criar recursos google_compute_instance.

Exemplo (Terraform):

```hcl
resource "google_project_service" "compute_api" {
  project            = "your-gcp-project-id"
  service            = "compute.googleapis.com"
  disable_on_destroy = false
}
```

Observação importante:o recurso google_project_service foi projetado exclusivamente para gerenciar o estado de ativação das APIs Trusted Cloud by S3NS acessíveis publicamente. Ela não é destinada a APIs internas ou particulares e não funciona com elas. Tentar usar para APIs privadas vai resultar em erros, já que essas APIs não são expostas pela superfície pública da API para esse tipo de gerenciamento.

Como importar um recurso

O que isso significa:no Terraform, "importar" significa trazer um recurso de nuvem existente (criado manualmente ou por outro processo fora do Terraform) para o gerenciamento do Terraform. Ao importar um recurso, o Terraform gera uma entrada de estado para ele, permitindo que você gerencie o ciclo de vida (atualizações, exclusão) usando a configuração do Terraform.

Contexto do Terraform:isso é feito usando o comando terraform import ou blocos import introduzidos no Terraform 1.5 ou versões mais recentes.

Finalidade:para controlar recursos que não foram provisionados inicialmente pelo Terraform.

Exemplo (CLI do Terraform):

```bash
terraform import google_compute_instance.my_instance projects/your-gcp-project-id/zones/us-central1-a/instances/my-vm
```

Como lidar com preocupações sobre APIs privadas (por exemplo, dataproc-control.googleapis.com)

Às vezes, os clientes encontram referências a APIs particulares (como dataproc-control.googleapis.com para o Dataproc) em registros ou documentação e se perguntam se precisam ativar ou importar essas APIs com o Terraform.

Nenhuma ação do cliente necessária:se uma API for identificada como uma API privada ou interna Trusted Cloud by S3NS , não será necessário ativá-la explicitamente usando google_project_service nem tentar importá-la com o Terraform.

Gerenciamento interno:essas APIs são cruciais para a operação interna dos serviços do Trusted Cloud by S3NS . Eles são gerenciados automaticamente pelo Google e não foram projetados para interação ou gerenciamento direto do cliente por ferramentas públicas.

Nenhum impacto no Service Usage serviço:a incapacidade de "importar" ou gerenciar explicitamente uma API particular usando o Terraform não afeta sua capacidade de usar o serviço Trusted Cloud by S3NS associado (por exemplo, O Dataproc vai funcionar corretamente sem que você gerencie dataproc-control.googleapis.com. As interações internas necessárias da API são processadas pelo Google.

Foco em APIs públicas:ao gerenciar recursos Trusted Cloud by S3NS com o Terraform, o foco deve ser apenas em ativar e configurar as APIs públicas que correspondem aos serviços e recursos que você pretende provisionar.

Conclusão

Ao entender a distinção clara entre APIs públicas e privadas Trusted Cloud by S3NS, e as funções específicas de APIs de "ativação" versus recursos de "importação" no Terraform, você pode gerenciar sua infraestrutura Trusted Cloud by S3NS de maneira eficaz. Não tente gerenciar ou importar explicitamente APIs privadas Trusted Cloud by S3NS , porque elas são componentes internos processados pelo Google. Concentre suas configurações do Terraform nas APIs expostas publicamente e nos recursos correspondentes.