Stai visualizzando la documentazione relativa a Apigee e Apigee ibrido.
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. Generalmente, questo viene fatto tramite MessageLogging o il criterio . 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 in Cloud Logging.
Messaggio di errore
Non viene visualizzato alcun messaggio di errore.
Possibili cause
Causa | Descrizione | Le istruzioni di 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 errato nella configurazione dei criteri | Il nome del progetto nella configurazione del criterio non corrisponde a una associata all'organizzazione Apigee. | Apigee e Apigee hybrid |
Ruoli/autorizzazioni mancanti 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 |
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 abilitate e servizi aggiuntivi nella console Google Cloud.
Risoluzione
Se l'API Cloud Logging non è abilitata, abilitala utilizzando il metodo passi in . Attivazione 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: account di servizio proxy non configurato correttamente
Diagnosi
Apigee
- Trova il nome dell'account di servizio.
- Utilizzando l'UI di Apigee:
- .
- Fai clic su Sviluppo > Proxy API, quindi fai clic sul nome di un 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,
- Utilizzando l'UI di Apigee:
- Verifica quanto segue per questo account di servizio proxy:
-
Questo account di servizio deve trovarsi nello stesso progetto Google Cloud che
utilizzato per creare la tua organizzazione Apigee. Ad esempio:
apigee-example-org.
-
L'utente che esegue il deployment del proxy dispone
Autorizzazione
iam.serviceAccounts.actAs
per questo servizio .- Per un elenco dei ruoli, vedi Ruoli degli account di servizio.
- Per istruzioni su come visualizzare i ruoli di un utente specifico, vedi Visualizza accesso attuale.
-
L'account di servizio proxy dispone delle autorizzazioni necessarie per chiamare
servizio Cloud Logging.
- Per un elenco dei ruoli, vedi Ruoli di logging.
- Per istruzioni su come visualizzare l'account di servizio proxy autorizzazioni, consulta Visualizza accesso attuale.
-
Questo account di servizio deve trovarsi nello stesso progetto Google Cloud che
utilizzato per creare la tua 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 della chiave dell'account di servizio di runtime . In genere avresti già creato l'account di servizio Creare account di servizio durante l'installazione.
Risoluzione
- Se l'account di servizio non si trova nello stesso progetto Google Cloud che utilizzata per creare la tua organizzazione Apigee, un account di servizio deve da creare e utilizzare 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 della
iam.serviceAccounts.actAs
autorizzazione per questo account di servizio, vedi Concedi 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 in cui il proxy l'account di servizio non è configurato correttamente per Apigee Apigee hybrid, vedi Devi raccogliere dati diagnostici.
Causa: nome di progetto errato nel criterio configurazione
Diagnosi
Se utilizzi Criterio MessageLogging per inviare log a Cloud Logging:
- Nell'UI di Apigee, fai clic su Sviluppa > Proxy API > Nome proxy API > Sviluppa.
-
Nel riquadro Codice, individua il
.
<CloudLogging>
. -
Verifica che il valore
<LogName>
sia il progetto corretto nome:<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 ha il
valore corretto, aggiornalo con quello 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 impersonare l'account di servizio proxy.
Esegui questo comando gcloud per verificare se l'account di servizio di runtime ha . iam.serviceAccountTokenCreator per l'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 del progetto Google Cloud. 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 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 del progetto Google Cloud. Ad esempio:
apigee-example-org
. -
RUNTIME_SA_NAME: l'ID dell'account di servizio di runtime. Per
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 di log superano il limite di logging consentito
Diagnosi
Se non vedi alcuni dei log visualizzati in Cloud Logging dopo assicurarsi che le altre cause descritte in questo documento non siano il problema, è possibile che la dimensione di alcune voci di log inviate Apigee supera i 256 kB, che è il limite rigido per una voce relativa alle dimensioni di log in Cloud Logging. Vedi Limiti di utilizzo di Logging per saperne di più.
Risoluzione
Si tratta di un limite non configurabile impostato su Cloud Logging e l'unico una soluzione alternativa nota attualmente è quella di mantenere le dimensioni della voce di log inviata da Apigee sotto i 256 kB. Se stai registrando un payload che potrebbe andare oltre 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.
Raccogliere dati diagnostici
Se il problema persiste anche dopo aver seguito le istruzioni riportate sopra, Raccogli le seguenti informazioni diagnostiche e contatta l'assistenza clienti Google Cloud:
- nella piattaforma Apigee.
- Ambiente e proxy API che visualizzano il problema.
- Sessione di debug scaricata (forniranno tutte le informazioni precedenti).
- Il nome del criterio specifico nel proxy API a cui invia i log in Cloud Logging.
- Per Apigee hybrid: il file
overrides.yaml
.