Um monitor sintético de verificação de links quebrados permite testar periodicamente os links em uma página da Web para detectar URLs inacessíveis. Você configura opções de teste, como o URI de origem, o limite de links e a contagem de novas tentativas, em uma função preconfigurada do Cloud Run. Para ajudar você a resolver falhas, cada execução salva resultados detalhados e capturas de tela das respostas mostradas aos usuários.
Para informações sobre monitores sintéticos, consulte Sobre monitores sintéticos.
Sobre verificadores de links corrompidos
Cada verificador de links quebrados testa os links em série, e há um tempo limite sintético geral, que é configurável.
Por padrão, um verificador de links corrompidos faz o seguinte:
- Pesquisa no URI de origem elementos de âncora HTML com atributos
href. - Testa os 10 primeiros links encontrados no URI de origem.
- Para cada link, o verificador emite uma solicitação e aguarda no máximo 30 segundos por uma resposta. Quando uma resposta é recebida, o verificador
confirma que o
status da resposta HTTP é
200, o que indica uma resposta bem-sucedida. O verificador não faz novas tentativas.
Você especifica o URI de origem. É possível configurar quais elementos HTML o verificador de links quebrados procura, o número máximo de elementos testados, o tempo limite por teste e se novas tentativas são realizadas. Você também pode configurar verificadores de links quebrados para aguardar o aparecimento de um seletor.
Os verificadores de links quebrados usam o modelo broken-links-ok. A configuração de um verificador de links quebrados é especificada pelo objeto options do arquivo index.js. Se você criar o verificador usando o
consoleGoogle Cloud , vai receber uma solicitação para cada opção de configuração e
a função do Cloud Run será atualizada para você. No entanto, se você usar a
API Cloud Monitoring ou o Terraform, precisará preencher esse objeto.
Depois de criar um verificador de links quebrados, para modificar a configuração, atualize
o objeto options e reimplemente a função do Cloud Run.
Antes de começar
Configure seu projeto e seus papéis do IAM e selecione a interface que você planeja usar. Para configurações do App Hub, selecione o projeto host ou de gerenciamento do App Hub.
Configurar o projeto e as funções
-
Para receber as permissões necessárias para visualizar e modificar monitores sintéticos usando o console do Google Cloud , peça ao administrador para conceder a você os seguintes papéis do IAM no seu projeto:
- Editor de monitoramento (
roles/monitoring.editor) - Desenvolvedor do Cloud Functions (
roles/cloudfunctions.developer)
Para mais informações sobre a concessão de papéis, consulte Gerenciar o acesso a projetos, pastas e organizações.
Também é possível conseguir as permissões necessárias usando papéis personalizados ou outros papéis predefinidos.
- Editor de monitoramento (
-
Ative a API Cloud Monitoring, Artifact Registry, API Cloud Build, API Cloud Functions, API Cloud Logging, API Pub/Sub e Cloud Run Admin, se alguma delas ainda não estiver ativada.
Funções necessárias para ativar APIs
Para ativar APIs, você precisa da permissão
serviceusage.services.enable. Se você criou o projeto, provavelmente já tem essa permissão pelo papel de proprietário (roles/owner). Caso contrário, é possível receber essa permissão pelo papel de administrador do Service Usage (roles/serviceusage.serviceUsageAdmin). Saiba como conceder papéis. Verifique se o projeto do Google Cloud contém a conta de serviço padrão do Compute Engine. Essa conta de serviço é criada quando você ativa a API Compute Engine e tem um nome semelhante a
12345-compute@developer.gserviceaccount.com.No console do Google Cloud , acesse a página Contas de serviço:
Se você usar a barra de pesquisa para encontrar essa página, selecione o resultado com o subtítulo IAM e administrador.
Se a conta de serviço padrão do Compute Engine não existir, clique em Criar conta de serviço e conclua a caixa de diálogo.
Verifique se a conta de serviço padrão do Compute Engine ou a conta de serviço criada recebeu o papel de Editor (
roles/editor).Para ver os papéis concedidos à sua conta de serviço, faça o seguinte:
-
No console Google Cloud , acesse a página IAM:
Se você usar a barra de pesquisa para encontrar essa página, selecione o resultado com o subtítulo IAM e administrador.
- Selecione Incluir concessões de papel fornecidas pelo Google.
- Se a conta de serviço usada pelo monitor sintético não estiver listada ou se
ela não tiver recebido um papel que inclua as permissões do papel
de agente do Cloud Trace (
roles/cloudtrace.agent), conceda esse papel à conta de serviço.
-
- Configure os canais de notificação que você quer usar para receber notificações. Recomendamos que você crie vários tipos de canais de notificação. Para mais informações, consulte Criar e gerenciar canais de notificação e Criar e gerenciar canais de notificação por API.
Selecione a interface que você quer usar.
Console
Quando você usa o console Google Cloud para acessar os serviços e as APIs Google Cloud , não é necessário configurar a autenticação.
Terraform
Para usar os exemplos do Terraform nesta página em um ambiente de desenvolvimento local, instale e inicialize a CLI gcloud e configure o Application Default Credentials com suas credenciais de usuário.
-
Instale a CLI do Google Cloud.
-
Ao usar um provedor de identidade (IdP) externo, primeiro faça login na CLI gcloud com sua identidade federada.
-
Se você estiver usando um shell local, crie credenciais de autenticação local para sua conta de usuário:
gcloud auth application-default login
Não é necessário fazer isso se você estiver usando o Cloud Shell.
Se um erro de autenticação for retornado e você estiver usando um provedor de identidade (IdP) externo, confirme se você fez login na CLI gcloud com sua identidade federada.
Para mais informações, consulte Configurar o ADC para um ambiente de desenvolvimento local na documentação de autenticação do Google Cloud .
REST
Para usar as amostras da API REST nesta página em um ambiente de desenvolvimento local, use as credenciais fornecidas para a CLI gcloud.
Instale a CLI do Google Cloud.
Ao usar um provedor de identidade (IdP) externo, primeiro faça login na CLI gcloud com sua identidade federada.
Saiba mais em Autenticar para usar REST na documentação de autenticação do Google Cloud .
Criar um verificador de links corrompidos
Console
Ao criar um monitor sintético usando o console Google Cloud , uma nova função do Cloud Run (2ª geração) é implantada e o monitor dessa função é criado. Não é possível criar um monitor sintético que monitore uma função do Cloud Run.
Verifique se você ativou as APIs necessárias, se o projeto tem uma conta de serviço padrão do Compute Engine e se essa conta recebeu o papel de Editor (
roles/editor). Para mais informações, consulte Antes de começar.-
No console Google Cloud , acesse a página
Monitoramento sintético:
Acesse Monitoramento sintético.
Se você usar a barra de pesquisa para encontrar essa página, selecione o resultado com o subtítulo Monitoring.
- Na barra de ferramentas do console Google Cloud , selecione seu projeto Google Cloud . Para configurações do App Hub, selecione o projeto host ou de gerenciamento do App Hub.
- Selecione Criar monitor sintético.
- Para o modelo, selecione Verificador de links corrompidos.
- Insira um nome para o monitor sintético.
Opcional: atualize o Tempo limite de resposta e a Frequência de verificação e adicione rótulos definidos pelo usuário.
Configure o URI e os elementos a serem testados:
Clique em URI de origem e insira um URI que você quer testar. O valor inserido precisa ser um endpoint HTTP ou HTTPS. Por exemplo, você pode digitar
https://mywebsite.example.com.Opcional: em Número de links a seguir, atualize o número máximo de links testados. O valor padrão desse campo é 10.
Opcional: no campo Seletor de elementos HTML, insira os elementos HTML que você quer corresponder como uma lista separada por vírgulas. O valor inserido é convertido em uma string e transmitido ao método
Document: querySelectorAll().Por padrão, esse campo é definido como
a, que corresponde a âncoras. É possível inserir valores comoa, imgquando quiser corresponder âncoras e imagens.Opcional: no campo Atributos HTML a serem seguidos, insira os atributos HTML que você quer corresponder. Os valores separados por vírgulas que você insere são transmitidos individualmente para o método
getAttribute().Por padrão, esse campo é definido como
href, que especifica o URI do link. É possível inserir vários atributos. Por exemplo, você pode inserirhref, src. Neste exemplo, o código procura o atributohrefe depois o atributosrc.Opcional: configure a espera pelo seletor, o tempo limite por URI, as novas tentativas e os códigos de status esperados:
- Clique em Mostrar mais opções.
Para configurar o verificador de links quebrados para aguardar um seletor específico aparecer no URI antes de qualquer link ser extraído, insira os seletores de CSS no campo Aguardar seletor de elementos. O valor inserido é convertido em uma string e transmitido para o método
page.waitForSelector().Se o seletor não aparecer antes do tempo limite expirar, a falha será registrada nos registros.
Atualize a ordem em que os links são selecionados para teste.
Configure novas tentativas.
Por padrão, uma solicitação é enviada para cada link. Se a solicitação inicial falhar por qualquer motivo (por exemplo, o comando expirar ou o código de status HTTP não for
200), o link será marcado como falho.Esse campo especifica o número de vezes que o verificador de links corrompidos pode emitir uma solicitação HTTP para um link antes de marcá-lo como com falha.
Configure um tempo limite que se aplique a cada URI. Por padrão, esse valor é definido como 30 segundos.
Para especificar o código de status e o tempo limite esperados para um URI específico, clique em Adicionar opção por link e preencha a caixa de diálogo.
Opcional: configure se as capturas de tela das respostas serão coletadas e salvas. Se você usar as configurações padrão, as capturas de tela não serão salvas. Se você ativar a coleta de capturas de tela, poderá coletar capturas de tela para todos os testes ou apenas para os testes com falha. O Cloud Monitoring usa a seguinte convenção para nomear o bucket do Cloud Storage:
gcm-PROJECT_ID-synthetics-LOCATIONNa expressão anterior:
- PROJECT_ID: o ID do seu projeto do Google Cloud .
- LOCATION: o local do bucket do Cloud Storage.
É possível usar um bucket do Cloud Storage.
Revise a configuração e verifique se ela está correta e completa. Em seguida, crie a função do Cloud Run:
Clique em Criar função.
Os valores nos campos Configuração de URI são copiados para o objeto
optionsno arquivoindex.jsquando você clica em Criar função. Depois de clicar em Criar função, edite o objetooptionspara mudar a configuração.Insira um nome de exibição e selecione uma região. Os nomes precisam ser exclusivos em uma região.
Na seção Configurações de ambiente de execução, build, conexões e segurança, faça o seguinte:
Na guia Conexões, verifique se a opção Permitir todo o tráfego está selecionada.
Revise as configurações padrão e atualize-as quando necessário.
- No campo Conta de serviço de execução, selecione uma conta de serviço.
Clique em Aplicar função.
Configure a política de alertas:
Opcional: atualize o nome da política de alertas e a duração da falha antes do envio das notificações.
Adicione os canais de notificação.
Clique em Criar.
A função do Cloud Run definida é criada e implantada como 2ª geração, e o monitor sintético é criado.
Terraform
O processo de criação de um verificador de links quebrados usando o Terraform é idêntico ao de qualquer outro monitor sintético. Para informações sobre como usar o Terraform para criar um monitor sintético, consulte Criar um monitor sintético e selecione a guia "Terraform".
Os verificadores de links quebrados usam o modelo broken-links-ok. A configuração de um verificador de links quebrados é especificada pelo objeto options do arquivo index.js.
Quando a estrutura options.screenshot_options é definida, o
verificador de links corrompidos coleta capturas de tela e as salva em um
bucket do Cloud Storage.
Se o campo screenshot_options.storage_location não estiver definido ou se o
valor for uma string vazia, o Monitoring vai criar um
bucket do Cloud Storage e os screenshots serão salvos nele.
O Monitoring usa a seguinte convenção para nomear o bucket do Cloud Storage:
gcm-PROJECT_ID-synthetics-LOCATION
Na expressão anterior:
- PROJECT_ID: o ID do seu projeto do Google Cloud .
- LOCATION: o local do bucket do Cloud Storage.
REST
O processo de criação de um verificador de links corrompidos usando a API Cloud Monitoring é idêntico ao processo de criação de qualquer outro monitor sintético. Para informações sobre como usar a API Cloud Monitoring para criar um monitor sintético, consulte Criar um monitor sintético e selecione a guia REST.
Os verificadores de links quebrados usam o modelo broken-links-ok. A configuração de um verificador de links quebrados é especificada pelo objeto options do arquivo index.js.
Quando a estrutura options.screenshot_options é definida, o
verificador de links corrompidos coleta capturas de tela e as salva em um
bucket do Cloud Storage.
Se o campo screenshot_options.storage_location não estiver definido ou se o
valor for uma string vazia, o Monitoring vai criar um
bucket do Cloud Storage e os screenshots serão salvos nele.
O Monitoring usa a seguinte convenção para nomear o bucket do Cloud Storage:
gcm-PROJECT_ID-synthetics-LOCATION
Na expressão anterior:
- PROJECT_ID: o ID do seu projeto do Google Cloud .
- LOCATION: o local do bucket do Cloud Storage.
Explorar resultados
Para cada execução, um verificador de links quebrados faz o seguinte:
Gera uma tabela em que cada linha fornece informações sobre o teste de um URI específico. As informações do resumo incluem o URI de destino, a latência, o status e o identificador do elemento HTML. Por exemplo, essa coluna lista a quando um elemento de âncora HTML é testado. Quando a linha corresponde ao URI de origem, o valor do identificador do elemento HTML é -.
Coleta métricas, dados de rastreamento e dados de registro.
Coleta capturas de tela, quando configurado.
Para mais informações sobre como analisar os dados coletados, consulte Analisar os resultados de monitores sintéticos.
Resolver problemas
Esta seção fornece informações que podem ser usadas para ajudar você a resolver problemas com seus verificadores de links quebrados.
Não é possível editar a configuração de um verificador de links quebrados
Você criou um verificador de links quebrados usando o console Google Cloud e quer mudar os elementos HTML testados ou modificar o tempo limite do URI, as novas tentativas, a espera pelo seletor e as opções por link. No entanto, ao editar o verificador de links quebrados, o console Google Cloud não mostra os campos de configuração.
Para resolver essa falha, faça o seguinte:
-
No console Google Cloud , acesse a página
Monitoramento sintético:
Acesse Monitoramento sintético.
Se você usar a barra de pesquisa para encontrar essa página, selecione o resultado com o subtítulo Monitoring.
- Na barra de ferramentas do console Google Cloud , selecione seu projeto Google Cloud . Para configurações do App Hub, selecione o projeto host ou de gerenciamento do App Hub.
- Localize o monitor sintético que você quer editar, clique em more_vert Mais opções e selecione Editar.
- Clique em Editar função.
Edite o objeto
optionsno arquivoindex.jse clique em Aplicar função.Para informações sobre os campos e a sintaxe desse objeto, consulte
broken-links-ok/index.js.Clique em Salvar.
OGoogle Cloud console informa que não foi possível salvar as capturas de tela
Você criou um verificador de links corrompidos e o configurou para salvar capturas de tela. No entanto, o console Google Cloud está mostrando uma das seguintes mensagens de aviso com informações mais detalhadas:
InvalidStorageLocationStorageValidationErrorBucketCreationErrorScreenshotFileUploadError
Para resolver essas falhas, tente o seguinte:
Se a mensagem
InvalidStorageLocationaparecer, verifique a existência do bucket do Cloud Storage especificado no campooptions.screenshot_options.storage_location.Confira os registros relacionados à sua função do Cloud Run. Para mais informações, consulte Como encontrar registros.
Verifique se a conta de serviço usada na função correspondente do Cloud Run tem um papel do Identity and Access Management que permite criar, acessar e gravar em buckets do Cloud Storage.
A seguir
- Exemplos de monitores sintéticos
- Gerenciar monitores sintéticos
- Analisar os resultados de monitores sintéticos