Gestire le API Cloud e le librerie client di Cloud in Cloud Code per Cloud Shell

Per accedere ai prodotti e ai servizi Google Cloud in modo programmatico, utilizza le API Cloud. Queste API espongono una semplice interfaccia JSON REST. Il modo consigliato per accedere alle API Cloud è utilizzare Librerie client di Cloud.

Cloud Code semplifica l'aggiunta delle librerie client di Cloud per le API Cloud e il linguaggio che usi nel tuo progetto. Nella stessa visualizzazione, puoi cercare esempi per ogni API e incorporarli facilmente nella tua applicazione.

Navigazione delle API Cloud

Per esplorare tutte le API Google Cloud disponibili:

  1. Fai clic su Cloud Code ed espandi la sezione API Cloud.

    La visualizzazione API Cloud raggruppa le API Cloud per categoria.

  2. Per visualizzare i dettagli di un'API, fai clic sul nome dell'API. Vengono visualizzati dettagli come il nome, lo stato, le istruzioni di installazione delle librerie client, la documentazione e gli esempi di codice del servizio.

Abilitazione delle API Cloud in corso...

Per abilitare le API Cloud per un progetto utilizzando la pagina dei dettagli dell'API, segui questi passaggi:

  1. Nella pagina dei dettagli dell'API Cloud, scegli il progetto per cui attivare l'API Cloud.
  2. Fai clic su Abilita API. Una volta attivata l'API, viene visualizzato un messaggio per confermare la modifica.

Aggiungere librerie client al progetto

Oltre a esplorare e attivare le API Cloud utilizzando Cloud Code, puoi aggiungere una libreria client specifica per il linguaggio al tuo progetto.

Per installare una libreria client, segui le istruzioni riportate nella pagina dei dettagli dell'API per la tua lingua.

Utilizzare gli esempi di API

Puoi cercare ed eseguire esempi di codice per ogni API nel browser API.

  1. Fai clic su Cloud Code ed espandi le API Cloud .

  2. Per aprire la visualizzazione dei dettagli, fai clic sul nome di un'API.

  3. Per visualizzare gli esempi di codice per l'API, fai clic su Esempi di codice.

  4. Per filtrare l'elenco di esempi, digita il testo da cercare o scegli un linguaggio di programmazione dall'elenco Lingua.

  5. Per visualizzare un Sample, fai clic sul nome del Sample. Sono inoltre disponibili opzioni per copiare il sample negli appunti o visualizzarlo su GitHub.

Configurazione dell'autenticazione

Dopo aver attivato le API richieste e aver aggiunto le librerie client necessarie, devi configurare l'applicazione in modo che venga autenticata correttamente. La configurazione dipende dal tipo di sviluppo la piattaforma su cui stai utilizzando.

Una volta completati i passaggi di autenticazione, l'applicazione può autenticarsi ed è pronta per il deployment.

Sviluppo locale

L'istanza VM di Cloud Shell utilizza l'impostazione predefinita di Compute Engine (l'account di servizio utilizzato da Google Kubernetes Engine per impostazione predefinita) come l'account di servizio predefinito. Ciò significa che, quando sviluppi Cloud Code su Cloud Shell, non è necessario configurare configurazione aggiuntiva quando si utilizzano librerie client. La tua applicazione è autenticati e pronti per essere eseguiti localmente.

Sviluppo locale con API che richiedono un account di servizio

Alcune API, come l'API Cloud Translation, richiedono un account di servizio con le autorizzazioni appropriate per autenticare le richieste. Per scoprire di più, consulta la pagina Creare e gestire gli account di servizio.

  1. Per aprire un terminale, fai clic su Terminale > Nuovo terminale.

  2. Crea un account di servizio per autenticare le richieste API:

    gcloud iam service-accounts create \
    SERVICE_ACCOUNT_ID \
    --project PROJECT_ID

    Sostituisci i seguenti valori:

    • SERVICE_ACCOUNT_ID: l'ID account di servizio
    • PROJECT_ID: l'ID progetto

    Per trovare questi ID, in Google Cloud fai clic sul menu di navigazione nella in alto a sinistra dello schermo, tieni il puntatore del mouse su IAM e Amministratore e fai clic su Account di servizio.

    La colonna Email mostra l'indirizzo SERVICE_ACCOUNT_ID e PROJECT_ID per ciascuno dei tuoi account di servizio nella seguente formato:

    SERVICE_ACCOUNT_ID@PROJECT_ID.iam.gserviceaccount.com

    Ad esempio: l'indirizzo email di un account di servizio my-service-account@my-project.iam.gserviceaccount.com ha quanto segue valori:

    • SERVICE_ACCOUNT_ID: my-service-account
    • PROJECT_ID: my-project
  3. Concedi all'account di servizio il ruolo appropriato. Il seguente comando di esempio concede il ruolo Utente dell'API Cloud Translation. Per determinare il ruolo da concedere, consulta la documentazione dell'API Cloud in uso.

    gcloud projects \
    add-iam-policy-binding \
    PROJECT_ID \
    --member='serviceAccount:SERVICE_ACCOUNT_ID@PROJECT_ID.iam.gserviceaccount.com' \
    --role='roles/cloudtranslate.user'
  4. Crea una chiave dell'account di servizio:

    gcloud iam service-accounts keys \
    create key.json --iam-account \
    SERVICE_ACCOUNT_ID@PROJECT_ID.iam.gserviceaccount.com
  5. Imposta la chiave come credenziale predefinita:

    export \
     GOOGLE_APPLICATION_CREDENTIALS=key.json
    
  6. (Facoltativo) Per consentire agli utenti di simulare l'identità dell'account di servizio, esegui il comando gcloud iam service-accounts add-iam-policy-binding per concedere a un utente il ruolo Utente account di servizio (roles/iam.serviceAccountUser) nell'account di servizio:

    gcloud iam service-accounts add-iam-policy-binding \
        SERVICE_ACCOUNT_ID@PROJECT_ID.iam.gserviceaccount.com \
        --member="user:USER_EMAIL" \
        --role="roles/iam.serviceAccountUser"

    Sostituisci i seguenti valori:

    • USER_EMAIL: l'indirizzo email dell'utente

Sviluppo da remoto

GKE

A seconda dell'ambito del progetto, puoi scegliere come autenticare i servizi Google Cloud su GKE:

  • (Solo per lo sviluppo)
    1. Crea un cluster GKE con le seguenti impostazioni:
      • Assicurati di utilizzare l'account di servizio utilizzato per impostazione predefinita da GKE, ovvero l'account di servizio predefinito di Compute Engine, e che Ambiti di accesso sia impostato su Consenti l'accesso completo a tutte le API Cloud (entrambe le impostazioni sono accessibili nella sezione Pool di nodi > Sicurezza). Poiché il L'account di servizio Compute Engine è condiviso da tutti carichi di lavoro di cui è stato eseguito il deployment sul tuo nodo, questo metodo l'overprovisioning delle autorizzazioni e deve essere usato solo per lo sviluppo.
      • Assicurati che Workload Identity non sia abilitato sul tuo (nella sezione Cluster > Sicurezza).
    2. Assegna i ruoli necessari all'account di servizio:
  • (consigliato per la produzione)
    1. Configura il cluster e l'applicazione GKE con Workload Identity per autenticare i servizi Google Cloud su GKE. In questo modo, il tuo account di servizio Kubernetes viene associato al tuo account di servizio Google.
    2. Configura il deployment Kubernetes in modo che faccia riferimento al service account Kubernetes impostando il campo .spec.serviceAccountName nel file YAML del deployment Kubernetes. Se stai lavorando a un'app creata da un'applicazione di esempio Cloud Code, questo file si trova nella cartella kubernetes-manifests.
    3. Se il servizio Google Cloud a cui stai tentando di accedere richiede ruoli aggiuntivi, concedili per il servizio Google account che stai utilizzando per sviluppare la tua app:

Cloud Run

  1. Per creare un nuovo account di servizio univoco per il deployment di Cloud Run accedi alla pagina Account di servizio e seleziona il progetto in cui è archiviato il tuo secret.

    Vai alla pagina Account di servizio

  2. Fai clic su Crea account di servizio.
  3. Nella finestra di dialogo Crea account di servizio, inserisci un nome descrittivo per l'account di servizio.
  4. Modifica l'ID account di servizio impostando un valore univoco e riconoscibile e fai clic su Crea.
  5. Se il servizio Google Cloud a cui stai tentando di accedere richiede altri ruoli, concedi i ruoli, fai clic su Continua e poi su Fine.
  6. Per aggiungere il tuo account di servizio alla configurazione del deployment:
    1. Utilizza la barra di stato di Cloud Code per scegliere il comando Cloud Run: Deploy.
    2. Nella UI del deployment di Cloud Run, sotto Impostazioni revisione, nel campo Account di servizio, e specificare il tuo account di servizio.
    Sezione Impostazioni di revisione avanzate espansa in Cloud Run: campo Deployment e account di servizio compilato con il nome dell'account di servizio nel formato nome-account-di-servizio@nome-del-progetto.iam.gserviceaccount.com

Cloud Run

A seconda dell'ambito del progetto, puoi scegliere come autentica i servizi Google Cloud su GKE:

  • (Solo sviluppo)
    1. Crea un cluster GKE con le seguenti impostazioni:
      • Assicurati di utilizzare l'account di servizio GKE utilizza per impostazione predefinita l'account di servizio predefinito di Compute Engine e L'opzione Ambiti di accesso sia impostata su Consenti l'accesso completo a Tutte le API Cloud (entrambe le impostazioni sono accessibili nella sezione Pool di nodi > Sicurezza). Poiché Compute Engine è condiviso da tutti i carichi di lavoro di cui è stato eseguito il deployment sul nodo, questo metodo esegue l'overprovisioning delle autorizzazioni e deve essere usato solo per lo sviluppo.
      • Assicurati che Workload Identity non sia abilitato nel cluster (nella sezione Cluster > Sicurezza).
    2. Assegna i ruoli necessari al tuo account di servizio:
      • Se utilizzi l'account di servizio predefinito di Compute Engine, i ruoli IAM corretti potrebbero essere già applicati.
      • Per un elenco dei tipi di ruoli IAM e dei ruoli predefiniti che puoi concedere alle identità, consulta la guida ai ruoli. Per la procedura di concessione dei ruoli, consulta Concessione, modifica e revoca dell'accesso alle risorse.
  • (consigliato per la produzione)
    1. Configura il cluster e l'applicazione GKE con Workload Identity per autenticare i servizi Google Cloud su GKE. Questa operazione associa l'account di servizio Kubernetes con il tuo account di servizio Google.
    2. Per aggiungere il tuo account di servizio alla configurazione del deployment:
      1. Utilizza la barra di stato di Cloud Code per scegliere il comando Cloud Run: Deploy.
      2. Nell'interfaccia utente di Deployment di Cloud Run, in Impostazioni revisione, nel campo Account di servizio, specifica il tuo account di servizio.
      Sezione Impostazioni di revisione avanzate espansa in Cloud Run: campo Deployment e account di servizio compilato con il nome dell'account di servizio Kubernetes nel formato service-account-name@project-name.iam.gserviceaccount.com
    3. Se il servizio Google Cloud a cui stai tentando di accedere richiede ruoli aggiuntivi, assegnali all'account di servizio Google che utilizzi per sviluppare la tua app:

Sviluppo remoto con le autorizzazioni di Secret Manager abilitate

Se esegui lo sviluppo in remoto, utilizzando un account di servizio per l'autenticazione e la tua applicazione utilizza i secret, devi completare alcuni passaggi aggiuntivi oltre alle istruzioni per lo sviluppo remoto. Questi passaggi assegnano il tuo account di servizio Google Il ruolo necessario per accedere a un determinato secret di Secret Manager:

  1. Fai clic su Cloud Code ed espandi la sezione Gestore dei segreti.

    Secret Manager in Cloud Code aperto con due secret elencati

  2. Fai clic con il tasto destro del mouse sul segreto e seleziona Modifica autorizzazioni nella console Cloud. Verrà aperta la pagina di configurazione di Secret Manager per il segreto nel browser web.

    Ho fatto clic con il tasto destro del mouse sul secret nel riquadro Secret Manager

  3. Nella console Google Cloud, fai clic su Autorizzazioni, quindi su Aggiungi.

  4. Nel campo Nuove entità, inserisci il nome dell'account di servizio.

  5. Nel campo Seleziona un ruolo, scegli la Funzione di accesso ai secret di Secret Manager ruolo.

  6. Fai clic su Salva.

    Il tuo account di servizio ora ha l'autorizzazione per accedere a questo determinato secret.