Está a ver a documentação do Apigee e do Apigee Hybrid.
Não existe um equivalente
na documentação do Apigee Edge para este tópico.
Sintoma
O envio de registos da API Apigee para o Cloud Logging é um exemplo de utilização comum. Isto é geralmente feito através da política MessageLogging ou da política ServiceCallout. Em ambos os casos, o Apigee usa a API Cloud Logging para escrever os registos.
Em alguns casos, pode não ver os registos da API Apigee no Cloud Logging.
Mensagem de erro
Não é apresentada nenhuma mensagem de erro.
Causas possíveis
Causa | Descrição | Instruções de resolução de problemas aplicáveis a |
---|---|---|
A Cloud Logging API não está ativada | Certifique-se de que ativou a API Cloud Logging no Google Cloud projeto da sua organização do Apigee. | Apigee e Apigee Hybrid |
A API IAM Service Account Credentials não está ativada | Certifique-se de que ativou a API IAM Service Account Credentials no Google Cloud projeto da sua organização do Apigee. | Apigee e Apigee Hybrid |
Conta de serviço do proxy configurada incorretamente | A conta de serviço usada no momento da implementação (Apigee) ou na configuração de tempo de execução (Apigee hybrid) pode ter sido eliminada/configurada incorretamente. | Apigee e Apigee Hybrid |
Nome do projeto incorreto na configuração da política | O nome do projeto na configuração da política não é o mesmo que o associado à organização do Apigee. | Apigee e Apigee Hybrid |
Funções/autorizações em falta para a conta de serviço de tempo de execução | Para o Apigee hybrid, certifique-se de que a conta de serviço de runtime tem a função criador de tokens da conta de serviço. Isto é necessário para usar a autenticação Google. | Apigee Hybrid |
O tamanho da entrada do registo excede o limite permitido do Cloud Logging | O Cloud Logging tem um limite de tamanho de entrada de 256 KB que não pode ser alterado. | Apigee e Apigee Hybrid |
Esgotamento da quota de pedidos de gravação por minuto para a Cloud Logging API | Certifique-se de que não excede o valor da quota de pedidos de gravação por minuto para a API Cloud Logging no seu projeto do Google Cloud. | Apigee e Apigee Hybrid |
Causa: a Cloud Logging API não está ativada
Diagnóstico
Verifique se a API Cloud Logging está ativada. Consulte Listar serviços ativados para obter instruções sobre como listar APIs ativadas e serviços na Google Cloud consola.
Resolução
Se a API Cloud Logging não estiver ativada, ative-a através dos passos em Ativar serviços. A ativação da API pode demorar alguns minutos.
Se não conseguir resolver o problema em que os registos não são vistos no Cloud Logging devido à API Cloud Logging não estar ativada, consulte o artigo Tem de recolher informações de diagnóstico.
Causa: a API IAM Service Account Credentials não está ativada
Diagnóstico
Confirme se a API IAM Service Account Credentials está ativada. Consulte Listar serviços ativados para obter instruções sobre como listar APIs ativadas e serviços na Google Cloud consola.
Resolução
Se a API IAM Service Account Credentials não estiver ativada, ative-a através dos passos em Ativar serviços. A ativação da API pode demorar alguns minutos.
Se não conseguir resolver o problema em que os registos não são vistos no Cloud Logging devido à API IAM Service Account Credentials não estar ativada, consulte o artigo Tem de recolher informações de diagnóstico.
Causa: conta de serviço de proxy configurada incorretamente
Diagnóstico
Apigee
- Encontre o nome da conta de serviço.
- Usando a IU do Apigee:
- Clique em Desenvolver > Proxies de API e, de seguida, clique no nome de um proxy. Por exemplo, TurboBooks.
-
Em Implementações, é apresentado o nome da conta de serviço.
-
Emita a seguinte chamada da 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"
Substitua o seguinte:
- ORG_NAME: o nome da sua organização. Por exemplo,
apigee-example-org
. - ENV_NAME: o nome do ambiente. Por exemplo,
myenv
. - PROXY_NAME: o nome do proxy. Por exemplo,
TurboBooks
. - REVISION_NUMBER: o número de revisão. Por exemplo,
4
.
Por exemplo:
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"
É devolvido algo semelhante ao seguinte:
{ "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" }
Onde
serviceAccount
é a conta de serviço associada ao proxy da API. - ORG_NAME: o nome da sua organização. Por exemplo,
- Usando a IU do Apigee:
- Valide o seguinte para esta conta de serviço de proxy:
-
Esta conta de serviço tem de estar no mesmo projeto do Google Cloud que
usou para criar a sua organização do Apigee. Por exemplo,
apigee-example-org.
-
O utilizador que implementa o proxy tem a autorização
iam.serviceAccounts.actAs
nesta conta de serviço.- Para ver uma lista de funções, consulte o artigo Funções das contas de serviço.
- Para ver instruções sobre como ver as funções de um utilizador específico, consulte Ver acesso atual.
-
A conta de serviço do proxy tem as autorizações necessárias para chamar o serviço Cloud Logging.
- Para ver uma lista de funções, consulte o artigo Funções de registo.
- Para ver instruções sobre como ver as autorizações da conta de serviço de proxy, consulte Ver acesso atual.
-
Esta conta de serviço tem de estar no mesmo projeto do Google Cloud que
usou para criar a sua organização do Apigee. Por exemplo,
Apigee Hybrid
Para o Apigee hybrid, além dos passos indicados no
Apigee, abra o ficheiro overrides.yaml
e certifique-se de que existe uma conta de serviço especificada em cada ambiente
que requer autenticação Google.
Por exemplo:
envs:
- name: "ENVIRONMENT_NAME"
serviceAccountPaths:
runtime: "KEY_FILE_PATH"
Substitua o seguinte:
-
ENVIRONMENT_NAME: o nome do ambiente. Por exemplo,
myenv
. - KEY_FILE_PATH: o caminho para o ficheiro da chave da conta de serviço de tempo de execução. Normalmente, já teria criado a conta de serviço em Criar contas de serviço durante a instalação.
Resolução
- Se a conta de serviço não estiver no mesmo Google Cloud projeto que usou para criar a sua organização do Apigee, tem de criar uma conta de serviço no mesmo Google Cloud projeto e usá-la. Isto também é mencionado em Usar a autenticação Google.
-
Se o utilizador que implementa o proxy não tiver a autorização
iam.serviceAccounts.actAs
nesta conta de serviço, consulte Conceda uma única função. - Se a conta de serviço do proxy não tiver as autorizações necessárias para chamar o serviço Cloud Logging, consulte o artigo Conceda uma única função.
Se os passos neste documento não resolverem o problema em que a conta de serviço do proxy está configurada incorretamente para o Apigee e o Apigee hybrid, consulte o artigo Informações de diagnóstico necessárias.
Causa: nome do projeto incorreto na configuração da política
Diagnóstico
Se estiver a usar a política MessageLogging para enviar registos para o Cloud Logging:
- Na IU do Apigee, clique em Develop > API Proxies > nome do proxy de API > separador Develop.
-
No painel Código, localize o elemento
<CloudLogging>
. -
Verifique se o valor
<LogName>
é o nome do projeto correto:<CloudLogging> <LogName>projects/PROJECT_ID/logs/LOG_ID</LogName> </CloudLogging>
Substitua o seguinte:
-
PROJECT_ID: O Google Cloud ID do projeto. Por exemplo,
apigee-example-org
. - LOG_ID: o ID do registo do Cloud Logging. Por exemplo,
apigee-logs
.
-
PROJECT_ID: O Google Cloud ID do projeto. Por exemplo,
Resolução
Se o valor no elemento <LogName>
não tiver o valor correto, atualize-o para o valor correto.
Se os passos neste documento não resolverem o problema, consulte o artigo Informações de diagnóstico necessárias.
Causa: funções/autorizações em falta para a conta de serviço de tempo de execução
Diagnóstico
Certifique-se de que o tempo de execução consegue usar a identidade da conta de serviço do proxy.
Execute o seguinte comando gcloud para verificar se a conta de serviço de tempo de execução tem a função iam.serviceAccountTokenCreator na conta de serviço do proxy:
gcloud iam service-accounts get-iam-policy PROXY_SA_NAME@PROJECT_ID.iam.gserviceaccount.com
Substitua o seguinte:
- PROXY_SA_NAME: o nome da conta de serviço proxy.
Por exemplo,
envsa-79
. - PROJECT_ID: O Google Cloud ID do projeto. Por exemplo,
apigee-example-org
.
É devolvido algo semelhante ao seguinte:
- members: - serviceAccount:RUNTIME_SA_NAME@PROJECT_ID.iam.gserviceaccount.com role: roles/iam.serviceAccountTokenCreator
Substitua o seguinte:
RUNTIME_SA_NAME: o ID da conta de serviço do ambiente de execução.
Por exemplo, apigee-runtime
.
Por exemplo:
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 não vir a função iam.serviceAccountTokenCreator
e o membro esperado no resultado, siga os passos na Resolução para conceder as funções corretas.
Resolução
Conceda à conta de serviço de tempo de execução a função iam.serviceAccountTokenCreator
na conta de serviço de proxy executando o seguinte 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
Substitua o seguinte:
-
PROXY_SA_NAME: o nome da conta de serviço proxy. Por exemplo,
envsa-79
. -
PROJECT_ID: O Google Cloud ID do projeto. Por exemplo,
apigee-example-org
. -
RUNTIME_SA_NAME: o ID da conta de serviço do ambiente de execução. Por exemplo,
apigee-runtime
.
Se os passos neste documento não resolverem o problema, consulte o artigo Informações de diagnóstico necessárias.
Causa: o tamanho da entrada do registo excede o limite de registo permitido
Diagnóstico
Se não vir alguns dos registos apresentados no Cloud Logging depois de se certificar de que as outras causas descritas neste documento não são o problema, é possível que o tamanho de algumas das entradas de registo enviadas do Apigee exceda 256 KB, que é o limite rígido para uma entrada de tamanho de registo no Cloud Logging. Consulte a secção Registo de limites de utilização para mais informações.
Resolução
Este é um limite não configurável definido no Cloud Logging e a única solução alternativa conhecida atualmente é manter o tamanho da entrada de registo enviada do Apigee abaixo de 256 KB. Se estiver a registar uma carga útil que possa exceder este limite, não registe esta carga útil ou compreenda que algumas transações não serão registadas quando o limite for atingido.
Se os passos neste documento não resolverem o problema, consulte o artigo Informações de diagnóstico necessárias.
Causa: esgotamento da quota de pedidos de gravação por minuto para a Cloud Logging API
Diagnóstico
Por vezes, os clientes verificam que conseguem ver o pedido na sessão de depuração, mas, ao mesmo tempo, o pedido não é registado no explorador de registos, apesar de estar presente nos registos do equilibrador de carga.
A perda de mensagens observada pode ser atribuída ao esgotamento da quota no projeto. A API Cloud Logging aplica um limite de taxa de 120 000 pedidos de escrita por minuto. Exceder esta quota pode resultar na perda de mensagens.Para mais informações, consulte o artigo Veja e faça a gestão das quotas.
Estas quotas podem ser aumentadas no Google Cloud console e o próprio cliente pode fazê-lo seguindo a documentação de aumento de quotas.
Resolução
Siga o procedimento abaixo para aumentar uma quota:
- Na página Quotas , use as caixas de verificação para selecionar API Cloud Logging e, de seguida, clique em Editar quotas.
Se receber um erro
Edit is not allowed for this quota
, pode contactar o apoio ao cliente do Google Cloud para pedir alterações à quota. Tenha também em atenção que a faturação tem de estar ativada no projeto do Google Cloud para clicar nas caixas de verificação. - No painel Alterações de quota, selecione o serviço para expandir a vista e, em seguida, preencha os campos Novo limite e Descrição do pedido. Clique em Seguinte.
- Preencha o formulário no painel Detalhes de contacto e clique em Enviar pedido.
Para mais informações, consulte esta documentação sobre quotas e limites .
Tem de recolher informações de diagnóstico
Se o problema persistir mesmo depois de seguir as instruções acima, reúna as seguintes informações de diagnóstico e, em seguida, contacte o apoio ao cliente do Google Cloud:
- Organização do Apigee.
- O ambiente e o proxy de API estão a detetar o problema.
- Sessão de depuração transferida (esta opção fornece todas as informações acima).
- O nome da política específica no proxy de API que está a enviar registos para o Cloud Logging.
- Para o Apigee Hybrid: o ficheiro
overrides.yaml
.