Questa guida ha lo scopo di chiarire in che modo Terraform interagisce con le API Trusted Cloud by S3NS (distinguendo tra API pubbliche e private) e di spiegare concetti chiave come l'attivazione delle API e l'importazione delle risorse. Questa comprensione è fondamentale per gestire in modo efficace le risorse Trusted Cloud by S3NS con Terraform ed evitare errori comuni.
API pubbliche e private Trusted Cloud by S3NS
I serviziTrusted Cloud by S3NS espongono varie API che consentono ad applicazioni e strumenti (come Terraform) di interagire con le risorse e gestirle. Queste API rientrano in due categorie:
API pubbliche
Scopo: queste sono le interfacce principali per clienti e strumenti per creare, configurare e gestire Trusted Cloud by S3NS risorse (ad es. istanze Compute Engine, bucket Cloud Storage, set di dati BigQuery).
Esposizione:le API pubbliche sono ben documentate, hanno endpoint REST definiti e sono destinate all'utilizzo esterno. Sono le API con cui è progettato per interagire il provider Terraform google
.
Esempi: compute.googleapis.com
, storage.googleapis.com
, bigquery.googleapis.com
.
API private (interne)
Scopo:queste API sono interne ai servizi Trusted Cloud by S3NS , utilizzate da Google stesso per il funzionamento interno, l'orchestrazione e il provisioning dei suoi servizi gestiti. Espongono funzionalità non destinate all'interazione o alla gestione diretta dei clienti.
Esposizione:le API private in genere non sono documentate pubblicamente, non hanno endpoint esterni stabili e non sono progettate per l'accesso diretto da parte di strumenti di terze parti come Terraform. Sono un dettaglio di implementazione del servizio.
Esempio: dataproc-control.googleapis.com
è un'API interna che Dataproc utilizza per il suo control plane operativo. I clienti non interagiscono direttamente con questa API né la gestiscono.
Abilitazione delle API e importazione delle risorse in Terraform
Comprendere la distinzione tra "attivazione di un'API" e "importazione di una risorsa" è fondamentale per utilizzare Terraform in modo efficace con Trusted Cloud by S3NS.
Abilitazione di un'API
- Significato:quando "abiliti un'API" in Trusted Cloud by S3NS, attivi un servizio Trusted Cloud by S3NS specifico per il tuo progetto. In questo modo, al tuo progetto vengono concesse le autorizzazioni e l'accesso necessari per utilizzare le funzionalità del servizio e creare risorse gestite.
Contesto di Terraform:in Terraform, questa operazione viene in genere eseguita utilizzando la risorsa google_project_service
. Questa risorsa verifica che un'API pubblica specificata (ad es. compute.googleapis.com
) è abilitato per il tuo progetto Trusted Cloud by S3NS .
Scopo:l'abilitazione di un'API è un prerequisito per la creazione o la gestione di risorse appartenenti a quel servizio. Ad esempio, devi abilitare compute.googleapis.com
prima di poter creare risorse google_compute_instance
.
Esempio (Terraform):
```hcl
resource "google_project_service" "compute_api" {
project = "your-gcp-project-id"
service = "compute.googleapis.com"
disable_on_destroy = false
}
```
Nota importante:la risorsa google_project_service
è progettata esclusivamente per gestire lo stato di attivazione delle API accessibili pubblicamente Trusted Cloud by S3NS . Non è destinato all'uso con API interne o private e non funziona con queste. Il tentativo di utilizzarlo per le API private genererà errori, in quanto queste API non sono esposte tramite la superficie API pubblica per tale gestione.
Importazione di una risorsa
Che cosa significa:in Terraform, "importazione" si riferisce all'inserimento di una risorsa cloud esistente (una creata manualmente o da un altro processo esterno a Terraform) nella gestione di Terraform. Quando importi una risorsa, Terraform genera una voce di stato per la risorsa, consentendoti di gestirne il ciclo di vita (aggiornamenti, eliminazione) utilizzando la configurazione di Terraform.
Contesto Terraform: questo risultato si ottiene utilizzando il comando terraform import
o utilizzando i blocchi import
introdotti in Terraform 1.5+.
Scopo:ottenere il controllo delle risorse che non sono state inizialmente sottoposte al provisioning da Terraform.
Esempio (interfaccia a riga di comando Terraform):
```bash
terraform import google_compute_instance.my_instance projects/your-gcp-project-id/zones/us-central1-a/instances/my-vm
```
Rispondere ai dubbi sulle API private (ad es. dataproc-control.googleapis.com
A volte i clienti trovano riferimenti ad API private (come
dataproc-control.googleapis.com
per Dataproc) nei log o nella documentazione e
si chiedono se devono abilitarle o importarle con Terraform.
Nessuna azione richiesta al cliente:se un'API viene identificata come API privata o
interna Trusted Cloud by S3NS , non devi abilitarla esplicitamente utilizzando
google_project_service
o tentare di importarla con Terraform.
Gestione interna:queste API sono fondamentali per il funzionamento interno dei serviziTrusted Cloud by S3NS . Sono gestiti automaticamente da Google e non sono progettati per l'interazione o la gestione diretta con i clienti tramite strumenti pubblici.
Nessun impatto sull'Service Usage: la tua incapacità di "importare" o gestire esplicitamente un'API privata utilizzando Terraform non influirà sulla tua capacità di utilizzare il servizio Trusted Cloud by S3NS associato (ad es. Dataproc funzionerà
correttamente senza che tu debba gestire dataproc-control.googleapis.com
. Le
interazioni API interne necessarie vengono gestite da Google.
Concentrati sulle API pubbliche:quando gestisci le risorse Trusted Cloud by S3NS con Terraform, devi concentrarti esclusivamente sull'attivazione e sulla configurazione delle API pubbliche che corrispondono ai servizi e alle risorse che intendi eseguire il provisioning.
Conclusione
Comprendendo la chiara distinzione tra API pubbliche e private Trusted Cloud by S3NS e i ruoli specifici delle API di "attivazione" rispetto a quelle di "importazione" delle risorse in Terraform, puoi gestire in modo efficace la tua Trusted Cloud by S3NS infrastruttura. Non tentare di gestire o importare esplicitamente le API Trusted Cloud by S3NS private, in quanto sono componenti interni gestiti da Google. Concentra le configurazioni Terraform sulle API esposte pubblicamente e sulle risorse corrispondenti.