Este guia tem como objetivo esclarecer como o Terraform interage com as APIs (diferenciando entre APIs públicas e privadas) e explicar conceitos importantes, como ativação de API e importação de recursos. Cloud de Confiance by S3NS Esse entendimento é fundamental para gerenciar seus Cloud de Confiance by S3NS recursos de maneira eficaz com o Terraform e evitar armadilhas comuns.
APIs públicas x privadas Cloud de Confiance by S3NS
Cloud de Confiance by S3NS Os serviços expõem várias APIs que permitem que aplicativos e ferramentas (como o Terraform) interajam e gerenciem recursos. Essas APIs se enquadram em duas categorias:
APIs públicas
Finalidade:são as principais interfaces para clientes e ferramentas criarem, configurarem e gerenciarem Cloud de Confiance by S3NS recursos (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. Elas 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 privadas (internas)
Finalidade:essas APIs são internas aos Cloud de Confiance by S3NS serviços, usadas pelo próprio Google para operação interna, orquestração e provisionamento dos serviços gerenciados. Elas expõem funcionalidades que não são destinadas à interação ou gerenciamento direto do cliente.
Exposição:as APIs privadas 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. Elas são um detalhe de implementação do serviço.
Exemplo:dataproc-control.googleapis.com é uma API interna que o serviço gerenciado para Apache Spark usa para o plano de controle operacional. Os clientes não interagem ou gerenciam essa API diretamente.
Ativação de 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 maneira eficaz com Cloud de Confiance by S3NS.
Como ativar uma API
- O que significa:quando você "ativa uma API" no Cloud de Confiance by S3NS, está ativando um serviço específico para seu projeto. Cloud de Confiance by S3NS Isso concede ao 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á ativada para seu Cloud de Confiance by S3NS projeto.
Finalidade:a ativação de 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 de APIs Cloud de Confiance by S3NS acessíveis publicamente. Ele não foi criado para APIs internas ou privadas e não funciona com elas. Tentar usá-lo para APIs privadas vai resultar em erros, já que essas APIs não são expostas pela superfície da API pública para esse gerenciamento.
Como importar um recurso
O que 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 utilizando blocos import introduzidos no Terraform 1.5 e 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 resolver problemas relacionados a APIs privadas (por exemplo, dataproc-control.googleapis.com)
Os clientes às vezes encontram referências a APIs privadas (como dataproc-control.googleapis.com para o serviço gerenciado para Apache Spark) em registros ou documentação e se perguntam se precisam ativá-las ou importá-las com o Terraform.
Nenhuma ação do cliente necessária: se uma API for identificada como privada ou
interna Cloud de Confiance by S3NS API, não será necessário ativá-la explicitamente usando
google_project_service ou tentar importá-la com o Terraform.
Gerenciamento interno: essas APIs são essenciais para a operação interna dos Cloud de Confiance by S3NS serviços. Elas são gerenciadas automaticamente pelo Google e não são projetadas para interação ou gerenciamento direto do cliente por ferramentas públicas.
Nenhum impacto no Service Usage: a incapacidade de "importar" ou gerenciar explicitamente
uma API privada usando o Terraform não afeta sua capacidade de
usar o serviço associado Cloud de Confiance by S3NS (por exemplo, o serviço gerenciado para Apache Spark vai funcionar
corretamente sem que você gerencie dataproc-control.googleapis.com). As
interações necessárias da API interna são processadas pelo Google.
Foco em APIs públicas: ao gerenciar Cloud de Confiance by S3NS recursos com o Terraform, seu foco deve ser apenas na ativação e configuração das 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 Cloud de Confiance by S3NS e os papéis específicos de "ativação" de APIs versus "importação" de recursos no Terraform, você pode gerenciar sua Cloud de Confiance by S3NS infraestrutura de maneira eficaz. Não tente gerenciar ou importar APIs privadas Cloud de Confiance by S3NS explicitamente. Elas são componentes internos processados pelo Google. Concentre suas configurações do Terraform nas APIs expostas publicamente e nos recursos correspondentes.