Stai visualizzando la documentazione di Apigee e Apigee hybrid.
Non esiste una documentazione
Apigee Edge equivalente per questo argomento.
Sintomo
L'invio dei log API Apigee a Cloud Logging è un caso d'uso comune. In genere, questa operazione viene eseguita tramite le norme MessageLogging o ServiceCallout. In entrambi i casi, Apigee utilizza l'API Cloud Logging per scrivere i log.
In alcuni casi, potresti non visualizzare i log dell'API Apigee in Cloud Logging.
Messaggio di errore
Non viene visualizzato alcun messaggio di errore.
Possibili cause
| Causa | Descrizione | Istruzioni per la risoluzione dei problemi applicabili a |
|---|---|---|
| L'API Cloud Logging non è abilitata | Assicurati di aver abilitato l'API Cloud Logging nel progetto Google Cloud della tua organizzazione Apigee. | Apigee e Apigee hybrid |
| L'API IAM Service Account Credentials non è abilitata | Assicurati di aver attivato l'API IAM Service Account Credentials nel progetto della tua organizzazione Apigee. Google Cloud | Apigee e Apigee hybrid |
| Service account del servizio proxy configurato in modo errato | Il account di servizio utilizzato al momento del deployment (Apigee) o nella configurazione di runtime (Apigee Hybrid) potrebbe essere stato eliminato/configurato in modo errato. | Apigee e Apigee hybrid |
| Nome del progetto non corretto nella configurazione dei criteri | Il nome del progetto nella configurazione del criterio non corrisponde a quello associato all'organizzazione Apigee. | Apigee e Apigee hybrid |
| Ruoli/autorizzazioni mancanti per il service account di runtime | Per Apigee Hybrid, assicurati che il service account runtime disponga del ruolo Creatore token service account. Questo è necessario per utilizzare l'autenticazione Google. | Apigee hybrid |
| Dimensioni della voce di log superiori al limite consentito di Cloud Logging | Cloud Logging ha un limite di dimensione delle voci di 256 KB che non può essere modificato. | Apigee e Apigee hybrid |
| Esaurimento della quota di richieste di scrittura al minuto per l'API Cloud Logging | Assicurati di non superare il valore della quota di richieste di scrittura al minuto per l'API Cloud Logging nel tuo progetto Google Cloud. | Apigee e Apigee hybrid |
Causa: l'API Cloud Logging non è abilitata
Diagnosi
Verifica che l'API Cloud Logging sia abilitata. Consulta Elencare i servizi abilitati per istruzioni su come elencare le API e i servizi abilitati nella console Google Cloud .
Risoluzione
Se l'API Cloud Logging non è abilitata, abilitala seguendo i passaggi descritti in Abilitazione dei servizi. L'abilitazione dell'API può richiedere alcuni minuti.
Se non riesci a risolvere il problema per cui i log non vengono visualizzati in Cloud Logging perché l'API Cloud Logging non è abilitata, consulta Informazioni diagnostiche da raccogliere.
Causa: l'API IAM Service Account Credentials non è abilitata
Diagnosi
Verifica che l'API IAM Service Account Credentials sia abilitata. Consulta Elencare i servizi abilitati per istruzioni su come elencare le API e i servizi abilitati nella console Google Cloud .
Risoluzione
Se l'API IAM Service Account Credentials non è abilitata, abilitala seguendo i passaggi descritti in Abilitazione dei servizi. L'abilitazione dell'API può richiedere alcuni minuti.
Se non riesci a risolvere il problema per cui i log non vengono visualizzati in Cloud Logging perché l'API IAM Service Account Credentials non è abilitata, consulta Informazioni diagnostiche da raccogliere.
Causa: account di servizio proxy configurato in modo errato
Diagnosi
Apigee
- Trova il nome del account di servizio.
- Utilizzo della UI Apigee:
- Fai clic su Sviluppa > Proxy API e poi sul nome di un proxy. Ad esempio, TurboBooks.
-
In Deployment, viene visualizzato il nome dell'account di servizio.
-
Esegui la seguente chiamata API Apigee:
curl -H "Authorization: Bearer $(gcloud auth print-access-token)" "https://apigee.googleapis.com/v1/organizations/ORG_NAME/environments/ENV_NAME/apis/PROXY_NAME/revisions/REVISION_NUMBER/deployments"
Sostituisci quanto segue:
- ORG_NAME: il nome della tua organizzazione. Ad esempio,
apigee-example-org. - ENV_NAME: il nome dell'ambiente. Ad esempio,
myenv. - PROXY_NAME: il nome del proxy. Ad esempio,
TurboBooks. - REVISION_NUMBER: il numero di revisione. Ad esempio,
4.
Ad esempio:
curl -H "Authorization: Bearer $(gcloud auth print-access-token)" "https://apigee.googleapis.com/v1/organizations/apigee-example-org/environments/myenv/apis/TurboBooks/revisions/4/deployments"
Viene restituito un risultato simile al seguente:
{ "environment": "myenv", "apiProxy": "TurboBooks", "revision": "4", "deployStartTime": "1687408163394", "state": "READY", "instances": [ { "instance": "apiginstance", "deployedRevisions": [ { "revision": "4", "percentage": 100 } . . . . "serviceAccount": "projects/-/serviceAccounts/envsa-79@apigee-example-org.iam.gserviceaccount.com" }
dove
serviceAccountè il account di servizio associato al proxy API. - ORG_NAME: il nome della tua organizzazione. Ad esempio,
- Utilizzo della UI Apigee:
- Verifica quanto segue per questo account di servizio proxy:
-
Questo account di servizio deve trovarsi nello stesso progetto Google Cloud che
hai utilizzato per creare l'organizzazione Apigee. Ad esempio,
apigee-example-org. -
L'utente che esegue il deployment del proxy dispone dell'autorizzazione
iam.serviceAccounts.actAssu questo service account.- Per un elenco dei ruoli, vedi Ruoli dei service account.
- Per istruzioni su come visualizzare i ruoli di un utente specifico, vedi Visualizzare l'accesso attuale.
-
Il account di servizio proxy dispone delle autorizzazioni necessarie per chiamare il
servizio Cloud Logging.
- Per un elenco dei ruoli, consulta Ruoli di logging.
- Per istruzioni su come visualizzare le autorizzazioni del account di servizio proxy, vedi Visualizzare l'accesso attuale.
-
Questo account di servizio deve trovarsi nello stesso progetto Google Cloud che
hai utilizzato per creare l'organizzazione Apigee. Ad esempio,
Apigee hybrid
Per Apigee hybrid, oltre ai passaggi elencati in
Apigee, apri il file overrides.yaml
e assicurati che sia specificato un account di servizio in ogni ambiente
che richiede l'autenticazione Google.
Ad esempio:
envs:
- name: "ENVIRONMENT_NAME"
serviceAccountPaths:
runtime: "KEY_FILE_PATH"Sostituisci quanto segue:
-
ENVIRONMENT_NAME: il nome dell'ambiente. Ad esempio,
myenv. - KEY_FILE_PATH: il percorso del file della chiave del account di servizio di runtime. In genere, l'account di servizio viene creato in Creare service account durante l'installazione.
Risoluzione
- Se il account di servizio non si trova nello stesso Google Cloud progetto che hai utilizzato per creare l'organizzazione Apigee, è necessario creare e utilizzare un account di servizio nello stesso Google Cloud progetto. Questo aspetto è menzionato anche in Utilizzo dell'autenticazione Google.
-
Se l'utente che esegue il deployment del proxy non dispone dell'autorizzazione
iam.serviceAccounts.actAssu questo account di servizio, consulta Concedere un singolo ruolo. - Se il account di servizio proxy non dispone delle autorizzazioni necessarie per chiamare il servizio Cloud Logging, consulta Concedere un singolo ruolo.
Se i passaggi descritti in questo documento non risolvono il problema per cui l'account di servizio proxy è configurato in modo errato per Apigee e Apigee Hybrid, consulta Informazioni diagnostiche da raccogliere.
Causa: nome del progetto errato nella configurazione del criterio
Diagnosi
Se utilizzi i criteri MessageLogging per inviare i log a Cloud Logging:
- Nell'interfaccia utente Apigee, fai clic su Sviluppa > Proxy API > Nome proxy API > scheda Sviluppa.
-
Nel riquadro Codice, individua l'elemento
<CloudLogging>. -
Verifica che il valore di
<LogName>sia il nome del progetto corretto:<CloudLogging> <LogName>projects/PROJECT_ID/logs/LOG_ID</LogName> </CloudLogging>
Sostituisci quanto segue:
-
PROJECT_ID: l' Google Cloud ID progetto. Ad esempio,
apigee-example-org. - LOG_ID: l'ID log di Cloud Logging. Ad esempio,
apigee-logs.
-
PROJECT_ID: l' Google Cloud ID progetto. Ad esempio,
Risoluzione
Se il valore nell'elemento <LogName> non è corretto, aggiornalo.
Se i passaggi descritti in questo documento non risolvono il problema, consulta Informazioni diagnostiche da raccogliere.
Causa: ruoli/autorizzazioni mancanti per il account di servizio di runtime
Diagnosi
Assicurati che il runtime possa rappresentare il account di servizio proxy.
Esegui questo comando gcloud per verificare se il account di servizio di runtime dispone del ruolo iam.serviceAccountTokenCreator sul account di servizio proxy:
gcloud iam service-accounts get-iam-policy PROXY_SA_NAME@PROJECT_ID.iam.gserviceaccount.com
Sostituisci quanto segue:
- PROXY_SA_NAME: il nome del account di servizio proxy.
Ad esempio,
envsa-79. - PROJECT_ID: l' Google Cloud ID progetto. Ad esempio,
apigee-example-org.
Viene restituito un risultato simile al seguente:
- members: - serviceAccount:RUNTIME_SA_NAME@PROJECT_ID.iam.gserviceaccount.com role: roles/iam.serviceAccountTokenCreator
Sostituisci quanto segue:
RUNTIME_SA_NAME: l'ID del account di servizio di runtime.
Ad esempio, apigee-runtime.
Ad esempio:
gcloud iam service-accounts get-iam-policy envsa-79@apigee-example-org.iam.gserviceaccount.com
bindings:
- members:
- user:222larabrown@gmail.com
role: roles/iam.serviceAccountAdmin
- members:
- serviceAccount:apigee-runtime@apigee-example-org.iam.gserviceaccount.com
role: roles/iam.serviceAccountTokenCreator
- members:
- user:222larabrown@gmail.com
role: roles/iam.serviceAccountUser
etag: BwX-shcrL3o=
version: 1Se non vedi il ruolo iam.serviceAccountTokenCreator
e il membro previsto nell'output, segui i passaggi descritti nella
soluzione per concedere i ruoli corretti.
Risoluzione
Concedi all'account di servizio di runtime il ruolo iam.serviceAccountTokenCreator sull'account di servizio proxy eseguendo il seguente
comando gcloud:
gcloud iam service-accounts add-iam-policy-binding \ PROXY_SA_NAME@PROJECT_ID.iam.gserviceaccount.com \ --member=serviceAccount:RUNTIME_SA_NAME@PROJECT_ID.iam.gserviceaccount.com \ --role=roles/iam.serviceAccountTokenCreator
Sostituisci quanto segue:
-
PROXY_SA_NAME: il nome del account di servizio proxy. Ad esempio,
envsa-79. -
PROJECT_ID: l'ID progetto Google Cloud . Ad esempio,
apigee-example-org. -
RUNTIME_SA_NAME: l'ID del account di servizio di runtime. Ad esempio,
apigee-runtime.
Se i passaggi descritti in questo documento non risolvono il problema, consulta Informazioni diagnostiche da raccogliere.
Causa: le dimensioni della voce di log superano il limite di logging consentito
Diagnosi
Se non vedi alcuni log in Cloud Logging dopo aver verificato che le altre cause descritte in questo documento non siano il problema, è possibile che le dimensioni di alcune voci di log inviate da Apigee superino i 256 KB, che è il limite rigido per una voce di log in Cloud Logging. Per ulteriori informazioni, consulta la sezione Limiti di utilizzo del logging.
Risoluzione
Si tratta di un limite non configurabile impostato su Cloud Logging e l'unico workaround attualmente noto è mantenere le dimensioni della voce di log inviata da Apigee inferiori a 256 KB. Se registri un payload che potrebbe superare questo limite, non registrarlo oppure tieni presente che alcune transazioni non verranno registrate una volta raggiunto il limite.
Se i passaggi descritti in questo documento non risolvono il problema, consulta Informazioni diagnostiche da raccogliere.
Causa: esaurimento della quota di richieste di scrittura al minuto per l'API Cloud Logging
Diagnosi
A volte i clienti riscontrano di poter visualizzare la richiesta nella sessione di debug, mentre allo stesso tempo la richiesta non viene registrata in Esplora log, nonostante sia presente nei log del bilanciatore del carico.
La perdita di messaggi osservata potrebbe essere attribuita all'esaurimento della quota all'interno del progetto. L'API Cloud Logging applica un limite di frequenza di 120.000 richieste di scrittura al minuto. Il superamento di questa quota potrebbe comportare l'eliminazione dei messaggi.Per saperne di più, consulta Visualizza e gestisci le quote.
Queste quote possono essere aumentate all'interno di Google Cloud console e questa operazione può essere eseguita dal cliente stesso seguendo la documentazione relativa all'aumento della quota.
Risoluzione
Segui la procedura riportata di seguito per aumentare una quota:
- Nella pagina Quote , utilizza le caselle di controllo per selezionare API Cloud Logging e poi fai clic su Modifica quote.
Se ricevi l'errore
Edit is not allowed for this quota, puoi contattare l'assistenza clienti Google Cloud per richiedere modifiche alla quota. Tieni presente inoltre che per poter selezionare le caselle di controllo è necessario che la fatturazione sia attivata nel progetto Google Cloud. - Nel riquadro Modifiche alla quota, seleziona il servizio per espandere la visualizzazione, quindi compila i campi di descrizione Nuovo limite e Richiesta. Fai clic su Avanti.
- Compila il modulo nel riquadro Dettagli di contatto e fai clic su Invia richiesta.
Per saperne di più, consulta questa documentazione su quote e limiti .
Deve raccogliere informazioni diagnostiche
Se il problema persiste anche dopo aver seguito le istruzioni riportate sopra, raccogli le seguenti informazioni diagnostiche e poi contatta l'assistenza clienti Google Cloud:
- Organizzazione Apigee.
- Ambiente e proxy API in cui si verifica il problema.
- Sessione di debug scaricata (fornisce tutte le informazioni riportate sopra).
- Il nome della policy specifica nel proxy API che invia i log a Cloud Logging.
- Per Apigee hybrid: il file
overrides.yaml.