ID regione
REGION_ID
è un codice abbreviato assegnato da Google
in base alla regione selezionata al momento della creazione dell'app. Il codice non
corrispondono a un paese o a una provincia, anche se potrebbero essere visualizzati alcuni ID regione
in modo simile ai codici paese e provincia di uso comune. Per le app create dopo il giorno
Febbraio 2020, REGION_ID.r
è incluso in
URL di App Engine. Per le app esistenti create prima di questa data,
l'ID regione è facoltativo nell'URL.
Scopri di più sugli ID regione.
Usa l'API App Engine Admin per eseguire il deployment delle versioni delle tue app in modo programmatico
all'applicazione App Engine tramite richieste POST
HTTP.
Prima di iniziare
Prima di poter inviare la richiesta di deployment HTTP, devi poter autorizzare la richiesta HTTP, accedere ai file temporanei della tua app e avere un file JSON formattato di configurazione del deployment. Consulta i seguenti argomenti per assistenza prerequisiti:
Deployment dell'app in App Engine con l'API Admin
Per eseguire il deployment di una versione dell'app in App Engine:
Autorizzare le richieste HTTP, ad esempio ottenere un token di accesso.
L'autorizzazione dell'accesso all'API Admin può essere eseguita con OAuth a seconda delle esigenze della tua app con API. Per ulteriori informazioni, vedi Accesso all'API.
Invia una richiesta
POST
HTTP utilizzando il tuo token di accesso e API Admin per eseguire il deployment della tua versione nell'applicazione App Engine:Per eseguire il deployment di una versione, devi inviare una richiesta
POST
HTTP che specifica di configurazione JSON e definisce un valoreVersion
delle risorse del servizio di destinazione e dell'applicazione App Engine.Ad esempio, puoi utilizzare la seguente richiesta
POST
HTTP per eseguire il deployment specificata nel file di configurazione JSON, alledefault
servizio dell'applicazioneMY_PROJECT_ID
:POST https://appengine.googleapis.com/v1/apps/[MY_PROJECT_ID]/services/default/versions app.json
Comando cURL di esempio:
curl -X POST -T "app.json" -H "Content-Type: application/json" -H "Authorization: Bearer [MY_ACCESS_TOKEN]" https://appengine.googleapis.com/v1/apps/[MY_PROJECT_ID]/services/default/versions
Dove:
[MY_ACCESS_TOKEN]
è il token di accesso che hai ottenuto per autorizzare per le tue richieste HTTP.[MY_PROJECT_ID]
è l'ID del progetto in cui vuoi eseguire il deployment completamente gestita.
Esempio di risposta:
{ "metadata": { "@type": "type.googleapis.com/google.appengine.v1.OperationMetadataV1", "insertTime": "2015-05-29T17:12:44.679Z", "method": "google.appengine.v1.Versions.CreateVersion", "target": "apps/[MY_PROJECT_ID]/services/default/versions/v1", "user": "me@example.com" } "name": "apps/[MY_PROJECT_ID]/operations/89729825-ef1f-4ffa-b3e3-e2c25eb66a85" }
Verifica che sia stato eseguito il deployment della versione nell'applicazione App Engine:
Visualizza lo stato dell'effettiva operazione di deployment:
La richiesta HTTP
POST
utilizzata nel passaggio precedente ha restituito del nome dell'operazione nel camponame
, che utilizzi con il metodoGET
diapps.operations
raccolta per controllare lo stato dell'operazione di deployment.Ad esempio, se il campo
name
della risposta è:"name": "apps/[MY_PROJECT_ID]/operations/89729825-ef1f-4ffa-b3e3-e2c25eb66a85"
Quindi, invia la seguente richiesta
GET
HTTP:GET https://appengine.googleapis.com/v1/apps/[MY_PROJECT_ID]/operations/89729825-ef1f-4ffa-b3e3-e2c25eb66a85
Comando cURL di esempio:
curl -H "Authorization: Bearer [MY_ACCESS_TOKEN]" https://appengine.googleapis.com/v1/apps/[MY_PROJECT_ID]/operations/89729825-ef1f-4ffa-b3e3-e2c25eb66a85
Dove
[MY_ACCESS_TOKEN]
è il tuo token di accesso e[MY_PROJECT_ID]
è L'ID del progetto in cui hai eseguito il deployment della versione.Esempio di risposta:
{ "done": true, "metadata": { "@type": "type.googleapis.com/google.appengine.v1.OperationMetadataV1", "endTime": "2015-05-29T17:13:20.424Z", "insertTime": "2015-05-29T17:12:44.679Z", "method": "google.appengine.v1.Versions.CreateVersion", "target": "apps/[MY_PROJECT_ID]/services/default/versions/v1", "user": "me@example.com" }, "name": "apps/[MY_PROJECT_ID]/operations/89729825-ef1f-4ffa-b3e3-e2c25eb66a85", "response": { "@type": "type.googleapis.com/google.appengine.v1.Version", "creationTime": "2015-05-29T17:12:46.000Z", "deployer": "me@example.com", "id": "v1", "name": "apps/[MY_PROJECT_ID]/services/default/versions/v1", "runtime": "python27", "servingStatus": "SERVING", "threadsafe": true, } }
Per scoprire di più sul polling delle operazioni a lunga esecuzione, consulta la google.longrunning Riferimento RPC.
Verifica che la versione sia stata creata nell'applicazione App Engine:
Per visualizzare i dettagli della versione, utilizza il metodo
GET
dellaapps.services.versions
personalizzata. Devi specificare la versione di cui hai eseguito il deployment nell'istanza HTTPGET
richiesta, ad esempio:GET https://appengine.googleapis.com/v1/apps/[MY_PROJECT_ID]/services/default/versions/v1
Comando cURL di esempio:
curl -H "Authorization: Bearer [MY_ACCESS_TOKEN]" https://appengine.googleapis.com/v1/apps/[MY_PROJECT_ID]/services/default/versions/v1
Dove
[MY_ACCESS_TOKEN]
è il tuo token di accesso e[MY_PROJECT_ID]
è L'ID del progetto in cui hai eseguito il deployment della versione.Esempio di risposta:
{ "creationTime": "2015-05-29T17:12:46.000Z", "deployer": "me@example.com", "deployment": { "files": { "my-python-app.py": { "sha1Sum": "7cffbdaa9fcfa46e5e58269bfe336dd815de0566", "sourceUrl": "https://storage.googleapis.com/[YOUR_BUCKET_ID]/my-application/logo.jpg", }, "logo.jpg": { "sha1Sum": "13f7ea1e24f7cd2de5c66660525f2b509da37c14", "sourceUrl": "https://storage.googleapis.com/[YOUR_BUCKET_ID]/my-application/my-python-app.py" } } }, "handlers": [ { "authFailAction": "AUTH_FAIL_ACTION_REDIRECT", "login": "LOGIN_OPTIONAL", "script": { "scriptPath": "my-python-app.application", }, "securityLevel": "SECURE_OPTIONAL", "urlRegex": "/.*" } ] "id": "v1", "name": "apps/[MY_PROJECT_ID]/services/default/versions/v1", "runtime": "python27", "servingStatus": "SERVING", "threadsafe": true, }
GET https://appengine.googleapis.com/v1/apps/[MY_PROJECT_ID]/services/default/versions/v1?view=FULL
Facoltativo: per avviare il browser e visualizzare l'app all'indirizzo
https://VERSION_ID-dot-default-dot-PROJECT_ID.REGION_ID.r.appspot.com
, puoi eseguire questo :gcloud app browse -v [MY_VERSION_ID]
Configura il volume di traffico che dovrebbe ricevere la versione di cui hai appena eseguito il deployment.
Per impostazione predefinita, la versione iniziale di cui esegui il deployment nell'App Engine l'applicazione viene configurata automaticamente per ricevere il 100% del traffico. Tuttavia, tutte le versioni successive di cui esegui il deployment nella stessa applicazione App Engine devono essere configurati manualmente, altrimenti non ricevono traffico.
Per maggiori dettagli su come configurare il traffico per le tue versioni, consulta Migrazione e suddivisione Traffico.
Deployment di versioni e servizi aggiuntivi
I passaggi per eseguire il deployment di versioni successive della tua app, inclusa la creazione servizi aggiuntivi, sono quasi identici ai passaggi di deployment descritti in questa attività. Se desideri sostituire la versione corrente in esecuzione nel tuo App Engine o, se vuoi aggiungere altri servizi, puoi eseguire il deployment nuove versioni dopo aver apportato alcune modifiche ai file di configurazione.
Guarda gli esempi seguenti su come eseguire il deployment di versioni aggiuntive della tua app un'applicazione Compute Engine. Ricorda che, dopo aver eseguito il deployment delle versioni, devi configurare la propria traffico.
Esempio: deployment di versioni aggiuntive
Se in App Engine è in esecuzione una versione obsoleta o difettosa, puoi sostituirla
eseguendo il deployment di un'altra versione nell'applicazione App Engine
indirizzando il traffico a quella versione. Ad esempio, dopo aver modificato il codice sorgente
la tua app, puoi modificare il valore di version
nel file app.yaml
, creare
nuovo file app.json
, poi esegui il deployment di una versione v2
della tua app con un altro
Richiesta HTTP POST
:
Esempio di file app.yaml
aggiornato:
service: default
version: v2
runtime: python27
threadsafe: true
handlers:
- url: /.*
script: my-python-app.application
Esempio di richiesta HTTP POST
per la versione v2
:
POST https://appengine.googleapis.com/v1/apps/[MY_PROJECT_ID]/services/default/versions app.json
Dopo aver eseguito i passaggi per assicurarti che il deployment della versione sia stato eseguito correttamente,
puoi inviare una richiesta PATCH
HTTP per instradare tutto il traffico alla nuova versione,
esempio:
PATCH https://appengine.googleapis.com/v1/apps/[MY_PROJECT_ID]/services/default/?updateMask=split {"split": { "allocations": { "v2": "1" } } }
Per informazioni su come indirizzare il traffico, consulta Migrazione e suddivisione Traffico.
Esempio: deployment di più servizi
Se hai una versione v1
in esecuzione nell'applicazione App Engine e vuoi
per eseguire il deployment di un servizio aggiuntivo, ad esempio backend
,
passaggi di deployment.
Ad esempio, per eseguire il deployment della versione v1
che crea il servizio backend
:
- Crea il nuovo codice e i file sorgente per il servizio
backend
. - Imposta temporaneamente le risorse dell'applicazione per il tuo servizio
backend
in un nel bucket Cloud Storage. - Crea il file di configurazione
backend/app.json
. Utilizza le richieste HTTP per eseguire il deployment della versione
v1
del serviziobackend
nel tuo Applicazione App Engine:Esempio di richiesta HTTP
POST
:POST https://appengine.googleapis.com/v1/apps/[MY_PROJECT_ID]/services/backend/versions backend/app.json
Esempio di richiesta HTTP
GET
per verificare che la versionev1
inbackend
è stato creato il servizio:GET https://appengine.googleapis.com/v1/apps/[MY_PROJECT_ID]/services
Esempio di risposta:
{ "services": [ { "name": "apps/[MY_PROJECT_ID]/services/default", "id": "default", "split": { "allocations": { "v2": 1 } } }, { "name": "apps/[MY_PROJECT_ID]/services/backend", "id": "backend", "split": { "allocations": { "v1": 1 } } } ] }