Test locale

Durante lo sviluppo, puoi eseguire e testare localmente l'immagine del container, prima di eseguire il deployment. Puoi utilizzare Cloud Code o Docker installato localmente per eseguire e testare in locale, inclusa l'esecuzione in locale con accesso ai servizi Google Cloud.

Esecuzione in un emulatore Cloud Run for Anthos

Il plug-in Cloud Code per VS Code e IDE JetBrains ti consente di eseguire localmente il debug dell'immagine del container ed eseguirne il debug in un emulatore Cloud Run for Anthos all'interno dell'IDE. L'emulatore ti consente di configurare un ambiente che sia rappresentativo del tuo servizio in esecuzione su Cloud Run for Anthos.

Puoi configurare proprietà come l'allocazione di CPU e memoria, specificare le variabili di ambiente e impostare connessioni di database Cloud SQL.

  1. Installa Cloud Code per VS Code o per un IDE JetBrains.
  2. Segui le istruzioni per lo sviluppo e il debug locali nel tuo IDE.

Esecuzione in locale utilizzando Docker

Per testare l'immagine del container in locale utilizzando Docker:

  1. Usa il comando Docker:

    PORT=8080 && docker run -p 9090:${PORT} -e PORT=${PORT} IMAGE_URL

    Sostituisci IMAGE_URL con un riferimento all'immagine del container, ad esempio gcr.io/myproject/my-image:latest.

    La variabile di ambiente PORT specifica la porta che la tua applicazione utilizzerà per ascoltare le richieste HTTP o HTTPS. Si tratta di un requisito del Contratto di runtime del container. In questo esempio, utilizziamo la porta 8080.

  2. Apri http://localhost:9090 nel browser.

Se non hai mai utilizzato i container, consulta la Guida introduttiva a Docker. Per ulteriori informazioni sui comandi Docker, consulta la documentazione di Docker.

Esecuzione in locale utilizzando Docker con accesso ai servizi Google Cloud

Se utilizzi le librerie client di Google Cloud per integrare l'applicazione con i servizi di GCP e non hai ancora protetto questi servizi per controllare l'accesso esterno, puoi configurare il container locale per l'autenticazione con i servizi di Google Cloud utilizzando le credenziali predefinite dell'applicazione.

Per l'esecuzione a livello locale:

  1. Per istruzioni su come generare, recuperare e configurare le credenziali dell'account di servizio, consulta la guida introduttiva all'autenticazione.

  2. I seguenti flag di esecuzione Docker inseriscono le credenziali e la configurazione dal sistema locale al container locale:

    1. Utilizza il flag --volume (-v) per inserire il file delle credenziali nel container (supponendo che tu abbia già impostato la variabile di ambiente GOOGLE_APPLICATION_CREDENTIALS sulla macchina):
      -v $GOOGLE_APPLICATION_CREDENTIALS:/tmp/keys/FILE_NAME.json:ro
    2. Utilizza il flag --environment (-e) per impostare la variabile GOOGLE_APPLICATION_CREDENTIALS all'interno del container:
      -e GOOGLE_APPLICATION_CREDENTIALS=/tmp/keys/FILE_NAME.json
  3. Facoltativamente, utilizza questo comando run di Docker completamente configurato:

    PORT=8080 && docker run \
    -p 9090:${PORT} \
    -e PORT=${PORT} \
    -e K_SERVICE=dev \
    -e K_CONFIGURATION=dev \
    -e K_REVISION=dev-00001 \
    -e GOOGLE_APPLICATION_CREDENTIALS=/tmp/keys/FILE_NAME.json \
    -v $GOOGLE_APPLICATION_CREDENTIALS:/tmp/keys/FILE_NAME.json:ro \
    IMAGE_URL

    Tieni presente che il percorso

    /tmp/keys/FILE_NAME.json
    mostrato nell'esempio precedente è una posizione ragionevole per inserire le tue credenziali all'interno del container.

    Tuttavia, funzioneranno anche altre posizioni della directory. Il requisito fondamentale è che la variabile di ambiente GOOGLE_APPLICATION_CREDENTIALS deve corrispondere alla posizione di montaggio dell'associazione all'interno del container.

    Tieni presente inoltre che, con alcuni servizi Google Cloud, potrebbe essere utile utilizzare una configurazione alternativa per isolare la risoluzione dei problemi locali dai dati e dalle prestazioni di produzione.

Passaggi successivi

Per scoprire come eseguire il deployment dei container creati, segui le indicazioni sul deployment dei servizi.