Stai visualizzando la documentazione di Apigee e Apigee hybrid.
Non esiste una equivalente
Documentazione di Apigee Edge per questo argomento.
Sintomo
Invio dei log dell'API Apigee a in corso... Cloud Logging è un caso d'uso comune. In genere, questo viene fatto tramite la norma MessageLogging o la norma ServiceCallout. In entrambi i casi, Apigee utilizza API Cloud Logging per e scrivere i log.
In alcuni casi, potresti non vedere 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 in Google Cloud della tua organizzazione Apigee. | Apigee e Apigee hybrid |
Account di servizio proxy configurato in modo errato | L'account di servizio utilizzato al momento del deployment (Apigee) o in fase di runtime (Apigee Hybrid) potrebbe essere stata eliminata/configurazione errata. | Apigee e Apigee hybrid |
Nome del progetto non corretto nella configurazione dei criteri | Il nome del progetto nella configurazione del criterio non corrisponde a una associata all'organizzazione Apigee. | Apigee e Apigee hybrid |
Mancano ruoli/autorizzazioni per l'account di servizio di runtime | Per Apigee hybrid, assicurati che il servizio di runtime l'account di servizio ha il ruolo Creatore token account di servizio. Questo è che deve utilizzare l'autenticazione Google. | Apigee hybrid |
La dimensione della voce di log supera il limite consentito di Cloud Logging | Cloud Logging ha un limite per le dimensioni delle voci di 256 kB che non può essere modificato. | Apigee e Apigee hybrid |
Esaurimento delle richieste di scrittura al minuto per l'API Cloud Logging | Assicurati di non superare il valore della quota per le 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 Elenca 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 Cloud Logging perché l'API Cloud Logging non è stata abilitata. Consulta Devi raccogliere dati diagnostici.
Causa: service account proxy configurato in modo errato
Diagnosi
Apigee
- Trova il nome dell'account di servizio.
- Utilizzo dell'interfaccia utente di Apigee:
- Fai clic su Sviluppa > Proxy API e poi su un nome di proxy. Ad esempio, TurboBooks.
-
In Deployment, il nome dell'Account di servizio è
visualizzati.
-
Effettua 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
è l'account di servizio associato a il proxy API. - ORG_NAME: il nome della tua organizzazione. Ad esempio,
- Utilizzo dell'interfaccia utente di Apigee:
- Verifica quanto segue per questo account di servizio proxy:
-
Questo account di servizio deve trovarsi nello stesso progetto Google Cloud utilizzato per creare l'organizzazione Apigee. Ad esempio:
apigee-example-org.
-
L'utente che esegue il deployment del proxy dispone dell'autorizzazione
iam.serviceAccounts.actAs
su questo account di servizio.- Per un elenco dei ruoli, vedi Ruoli degli account di servizio.
- Per istruzioni su come visualizzare i ruoli di un utente specifico, consulta Visualizzare l'accesso corrente.
-
L'account di servizio proxy dispone delle autorizzazioni necessarie per chiamare il servizio Cloud Logging.
- Per un elenco dei ruoli, consulta Logging dei ruoli.
- Per istruzioni su come visualizzare le autorizzazioni dell'account di servizio proxy, consulta Visualizzare l'accesso corrente.
-
Questo account di servizio deve trovarsi nello stesso progetto Google Cloud 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 in ogni ambiente sia specificato un account di servizio
che richieda l'autenticazione di 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 dell'account di servizio di runtime. In genere, avrai già creato l'account di servizio in Crea account di servizio durante l'installazione.
Risoluzione
- Se l'account di servizio non si trova nello stesso progetto Google Cloud utilizzato per creare l'organizzazione Apigee, è necessario creare e utilizzare un account di servizio nello stesso progetto Google Cloud. Questo valore è anche menzionato in Utilizzo dell'autenticazione Google.
-
Se l'utente che esegue il deployment del proxy non dispone dell'autorizzazione
iam.serviceAccounts.actAs
su questo account di servizio, consulta la sezione Concedere un singolo ruolo. - Se l'account di servizio proxy non dispone delle autorizzazioni necessarie per chiamare il servizio Cloud Logging, vedi Assegna un singolo ruolo.
Se i passaggi descritti in questo documento non risolvono il problema relativo alla configurazione errata dell'account di servizio proxy per Apigee e Apigee Hybrid, consulta Devi raccogliere informazioni di diagnostica.
Causa: nome del progetto errato nella configurazione del criterio
Diagnosi
Se utilizzi il criterio di logging dei messaggi per inviare i log a Cloud Logging:
- Nell'interfaccia utente di Apigee, fai clic sulla scheda Sviluppa > Proxy API > Nome proxy API > Sviluppa.
-
Nel riquadro Codice, individua l'elemento
<CloudLogging>
. -
Verifica che il valore
<LogName>
sia il nome corretto del progetto:<CloudLogging> <LogName>projects/PROJECT_ID/logs/LOG_ID</LogName> </CloudLogging>
Sostituisci quanto segue:
-
PROJECT_ID: l'ID del progetto Google Cloud. Ad esempio,
apigee-example-org
. - LOG_ID: l'ID log di Cloud Logging. Ad esempio,
apigee-logs
.
-
PROJECT_ID: l'ID del progetto Google Cloud. Ad esempio,
Risoluzione
Se il valore nell'elemento <LogName>
non è corretto, aggiornalo con il valore corretto.
Se i passaggi descritti in questo documento non risolvono il problema, consulta Devi raccogliere dati diagnostici.
Causa: ruoli/autorizzazioni mancanti per l'account di servizio di runtime
Diagnosi
Assicurati che il runtime sia in grado di eseguire il furto d'identità dell'account di servizio proxy.
Esegui il seguente comando gcloud per verificare se l'account di servizio di runtime ha il ruolo iam.serviceAccountTokenCreator nell'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 dell'account di servizio proxy.
Ad esempio,
envsa-79
. - PROJECT_ID: l'ID progetto Google Cloud. Ad esempio:
apigee-example-org
.
Viene restituito qualcosa di 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 dell'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: 1
Se non vedi il ruolo iam.serviceAccountTokenCreator
e il membro previsto nell'output, quindi segui i passaggi
Soluzione per concedere i ruoli corretti.
Risoluzione
Concedi all'account di servizio di runtime
Ruolo iam.serviceAccountTokenCreator
nel servizio di proxy
eseguendo questo comando
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 dell'account di servizio proxy. Per
ad esempio
envsa-79
. -
PROJECT_ID: l'ID progetto Google Cloud. Ad esempio,
apigee-example-org
. -
RUNTIME_SA_NAME: l'ID dell'account di servizio di runtime. Ad esempio
apigee-runtime
.
Se i passaggi descritti in questo documento non risolvono il problema, consulta Devi raccogliere dati diagnostici.
Causa: le dimensioni della voce del log superano il limite di registrazione consentito
Diagnosi
Se non visualizzi alcuni log in Cloud Logging dopo aver verificato che le altre cause descritte in questo documento non sono il problema, è possibile che le dimensioni di alcune voci di log inviate da Apigee superino i 256 KB, che è il limite massimo per una voce di dimensioni dei log in Cloud Logging. Per ulteriori informazioni, consulta la sezione Limiti di utilizzo di Logging.
Risoluzione
Si tratta di un limite non configurabile impostato su Cloud Logging e l'unica soluzione alternativa attualmente nota è mantenere le dimensioni della voce di log inviata da Apigee inferiori a 256 KB. Se stai registrando un payload con un potenziale superiore questo limite, non registrare il payload o comprendere che le transazioni non verranno registrate una volta raggiunto il limite.
Se i passaggi descritti in questo documento non risolvono il problema, consulta Devi raccogliere dati diagnostici.
Causa: esaurimento della quota di richieste di scrittura al minuto per l'API Cloud Logging
Diagnosi
A volte i clienti riscontrano di essere in grado di visualizzare la richiesta nella sessione di debug e, allo stesso tempo, la richiesta non viene collegata a 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 la perdita di messaggi. Per ulteriori informazioni, consulta Visualizzare e gestire le quote.
Queste quote possono essere aumentate all'interno della Google Cloud Console e questo può essere fatto dal cliente stesso seguendo la documentazione sull'aumento della quota.
Risoluzione
Per aumentare una quota, segui la procedura riportata di seguito:
- Nella pagina Quote , utilizza le caselle di controllo per selezionare API Cloud Logging, quindi fai clic su Modifica quote.
Se ricevi un errore
Edit is not allowed for this quota
, puoi contattare l'assistenza clienti Google Cloud per richiedere modifiche alla quota. Tieni inoltre presente che la fatturazione deve essere attivata nel progetto Google Cloud per selezionare le caselle di controllo. - Nel riquadro Modifiche quota, seleziona il servizio per espandere la visualizzazione, quindi compila i campi Nuovo limite e Richiesta per la descrizione. Fai clic su Next (Avanti).
- Compila il modulo nel riquadro Dettagli di contatto e fai clic su Invia richiesta.
Per ulteriori informazioni, consulta questa documentazione di su quote e limiti.
Deve raccogliere informazioni di diagnostica
Se il problema persiste anche dopo aver seguito le istruzioni riportate sopra, raccogli le seguenti informazioni di diagnostica e poi contatta l'assistenza clienti Google Cloud:
- nella piattaforma Apigee.
- Ambiente e proxy API in cui si verifica il problema.
- Sessione di debug scaricata (forniranno tutte le informazioni precedenti).
- Il nome del criterio specifico nel proxy API a cui invia i log e in Cloud Logging.
- Per Apigee hybrid: il file
overrides.yaml
.