Stai visualizzando la documentazione di Apigee e Apigee hybrid.
Non esiste documentazione equivalente di
Apigee Edge per questo argomento.
Sintomo
L'invio dei log dell'API Apigee a 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 l'API Cloud Logging per 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 attivato 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 Credenziali account di servizio IAM nel progetto 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 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 |
Mancano ruoli/autorizzazioni per l'account di servizio di runtime | Per Apigee Hybrid, assicurati che l'account di servizio di runtime abbia il ruolo Creatore token account di servizio. Questo è obbligatorio per poter utilizzare l'autenticazione Google. | Apigee hybrid |
Le dimensioni della voce di log superano il limite consentito da Cloud Logging | Cloud Logging ha un limite di dimensioni 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 delle richieste di scrittura al minuto per l'API Logging Cloud 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'attivazione dell'API può richiedere alcuni minuti.
Se non riesci a risolvere il problema relativo alla mancata visualizzazione dei log in Cloud Logging a causa della mancata attivazione dell'API Cloud Logging, consulta Devi raccogliere informazioni di diagnostica.
Causa: l'API IAM Service Account Credentials non è abilitata
Diagnosi
Verifica che l'API IAM Service Account Credentials 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 IAM Service Account Credentials non è abilitata, abilitala seguendo i passaggi descritti in Attivazione dei servizi. L'attivazione dell'API può richiedere alcuni minuti.
Se non riesci a risolvere il problema relativo alla mancata visualizzazione dei log in Cloud Logging a causa della mancata attivazione dell'API Cloud IAM Service Account Credentials, consulta È necessario raccogliere informazioni di diagnostica.
Causa: account di servizio 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, viene visualizzato il nome dell'account di servizio.
-
Esegui la seguente chiamata all'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 qualcosa di 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 al 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, consulta 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 aspetto è 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, consulta Concedi 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 progetto Google Cloud. Ad esempio:
apigee-example-org
. - LOG_ID: l'ID log di Cloud Logging. Ad esempio:
apigee-logs
.
-
PROJECT_ID: l'ID 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 informazioni di diagnostica.
Causa: ruoli/autorizzazioni mancanti per l'account di servizio di runtime
Diagnosi
Assicurati che il runtime sia in grado di simulare l'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, segui i passaggi descritti in
Risoluzione per concedere i ruoli corretti.
Risoluzione
Concedi all'account di servizio di runtime il ruolo iam.serviceAccountTokenCreator
nell'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 dell'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 dell'account di servizio di runtime. Ad esempio,
apigee-runtime
.
Se i passaggi descritti in questo documento non risolvono il problema, consulta Devi raccogliere informazioni di diagnostica.
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 registri un payload che potrebbe superare questo limite, non registrarlo o 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 Devi raccogliere informazioni di diagnostica.
Causa: esaurimento della quota di richieste di scrittura al minuto per l'API Cloud Logging
Diagnosi
A volte i clienti riferiscono di riuscire a vedere la richiesta nella sessione di debug, mentre al contempo la richiesta non viene registrata nell'esploratore dei log, nonostante sia presente nei log di Load Balancer.
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 in Google Cloud Console e questa operazione può essere eseguita dal cliente stesso seguendo la documentazione relativa all'aumento delle quote.
Risoluzione
Per aumentare una quota, segui la procedura riportata di seguito:
- Nella pagina Quote , utilizza le caselle di controllo per selezionare API Cloud Logging e 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 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 ulteriori informazioni, consulta questa documentazione 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:
- Organizzazione Apigee.
- Ambiente e proxy API in cui si verifica il problema.
- Sessione di debug scaricata (che fornirà tutte le informazioni riportate sopra).
- Il nome del criterio specifico nel proxy API che invia i log a Cloud Logging.
- Per Apigee hybrid: il file
overrides.yaml
.