Como corrigir o problema “O Runtime das Funções do Azure está inacessível”
Este artigo ajuda-o a resolver a seguinte cadeia de erros que aparece no portal do Azure:
"Erro: Funções do Azure Runtime está inacessível. Clique aqui para obter detalhes sobre a configuração de armazenamento."
Este problema ocorre quando o runtime das Funções não consegue iniciar. A razão mais comum para tal é a aplicação de funções ter perdido o acesso à respetiva conta de armazenamento. Para obter mais informações, veja Requisitos da conta de armazenamento.
O resto deste artigo ajuda-o a resolver causas específicas deste erro, incluindo como identificar e resolver cada caso.
A conta de armazenamento foi eliminada
Cada aplicação de funções necessita de uma conta de armazenamento para funcionar. Se essa conta for eliminada, as suas funções não funcionarão.
Comece por procurar o nome da conta de armazenamento nas definições da aplicação. Ou AzureWebJobsStorage
WEBSITE_CONTENTAZUREFILECONNECTIONSTRING
contém o nome da sua conta de armazenamento como parte de uma cadeia de ligação. Para obter mais informações, veja Referência das definições da aplicação para Funções do Azure.
Procure a sua conta de armazenamento no portal do Azure para ver se ainda existe. Se tiver sido eliminada, recrie a conta de armazenamento e substitua as cadeias de ligação de armazenamento. O código da função é perdido e tem de voltar a implementá-lo.
As definições da aplicação da conta de armazenamento foram eliminadas
No passo anterior, se não conseguir encontrar uma cadeia de ligação da conta de armazenamento, é provável que tenha sido eliminada ou substituída. A eliminação das definições da aplicação ocorre normalmente quando utiliza blocos de implementação ou scripts de Resource Manager do Azure para definir as definições da aplicação.
Definições de aplicação necessárias
- Obrigatório:
- Necessário para funções de plano Premium:
Para obter mais informações, veja Referência das definições da aplicação para Funções do Azure.
Orientação
- Não verifique a definição de bloco para nenhuma destas definições. Se trocar blocos de implementação, a aplicação de funções é interrompida.
- Não modifique estas definições como parte de implementações automatizadas.
- Estas definições têm de ser fornecidas e válidas no momento da criação. Uma implementação automatizada que não contenha estas definições resulta numa aplicação de funções que não será executada, mesmo que as definições sejam adicionadas mais tarde.
As credenciais da conta de armazenamento são inválidas
As cadeias de ligação da conta de armazenamento anteriormente abordadas têm de ser atualizadas se voltar a gerar chaves de armazenamento. Para obter mais informações sobre a gestão de chaves de armazenamento, veja Criar uma conta de Armazenamento do Azure.
A conta de armazenamento está inacessível
A sua aplicação de funções tem de poder aceder à conta de armazenamento. Os problemas comuns que impedem uma aplicação de funções de aceder a uma conta de armazenamento são:
A aplicação de funções está implementada no seu Ambiente do Serviço de Aplicações (ASE) sem as regras de rede corretas para permitir o tráfego de e para a conta de armazenamento.
A firewall da conta de armazenamento está ativada e não está configurada para permitir o tráfego de e para funções. Para obter mais informações, veja Configurar firewalls e redes virtuais do Armazenamento do Microsoft Azure.
Verifique se a
allowSharedKeyAccess
definição está definida comotrue
, que é o valor predefinido. Para obter mais informações, veja Impedir a autorização de Chave Partilhada para uma conta de Armazenamento do Azure.
A quota de execução diária está cheia
Se tiver uma quota de execução diária configurada, a aplicação de funções está temporariamente desativada, o que faz com que muitos dos controlos do portal fiquem indisponíveis.
Para verificar a quota no portal do Azure, selecioneDefinições da Aplicação de Funções funcionalidades> da plataformana sua aplicação de funções. Se tiver ultrapassado a Quota de Utilização Diária que definiu, é apresentada a seguinte mensagem:
"A Aplicação de Funções atingiu a quota de utilização diária e foi parada até às próximas 24 horas."
Para resolver este problema, remova ou aumente a quota diária e, em seguida, reinicie a aplicação. Caso contrário, a execução da sua aplicação será bloqueada até ao dia seguinte.
A aplicação está atrás de uma firewall
A sua aplicação de funções pode estar inacessível por um dos seguintes motivos:
A aplicação de funções está alojada num Ambiente do Serviço de Aplicações com balanceamento de carga interno e está configurada para bloquear o tráfego de entrada da Internet.
A sua aplicação de funções tem restrições de IP de entrada que estão configuradas para bloquear o acesso à Internet.
O portal do Azure faz chamadas diretamente para a aplicação em execução para obter a lista de funções e faz chamadas HTTP para o ponto final do Kudu. As definições ao nível da plataforma no separador Funcionalidades da Plataforma ainda estão disponíveis.
Para verificar a configuração do ASE:
- Aceda ao grupo de segurança de rede (NSG) da sub-rede onde reside o ASE.
- Valide as regras de entrada para permitir o tráfego proveniente do IP público do computador onde está a aceder à aplicação.
Também pode utilizar o portal a partir de um computador ligado à rede virtual que está a executar a sua aplicação ou a uma máquina virtual em execução na sua rede virtual.
Para obter mais informações sobre a configuração de regras de entrada, veja a secção "Grupos de Segurança de Rede" das Considerações de rede de um Ambiente do Serviço de Aplicações.
Erros de contentor no Linux
Para aplicações de funções que são executadas no Linux num contentor, o Azure Functions runtime is unreachable
erro pode ocorrer devido a problemas com o contentor. Utilize o procedimento seguinte para rever os registos de contentores quanto a erros:
Navegue para o ponto final do Kudu para a aplicação de funções, que está localizada em
https://<FUNCTION_APP>.scm.azurewebsites.net
, onde<FUNCTION_APP>
é o nome da sua aplicação.Transfira os registos do Docker .zip ficheiro e reveja os conteúdos no seu computador local.
Verifique se existem erros registados que indiquem que o contentor não consegue iniciar com êxito.
Imagem de contentor indisponível
Podem ocorrer erros quando a imagem de contentor que está a ser referenciada está indisponível ou falha ao iniciar corretamente. Verifique se existem erros registados que indiquem que o contentor não consegue iniciar com êxito.
Tem de corrigir quaisquer erros que impeçam o contentor de iniciar corretamente a execução da aplicação de funções.
Quando a imagem de contentor não for encontrada, verá um manifest unknown
erro nos registos do Docker. Neste caso, pode utilizar os comandos da CLI do Azure documentados em Como direcionar Funções do Azure versões de runtime para alterar a imagem de contentor que está a ser referenciada. Se tiver implementado uma imagem de contentor personalizada, terá de corrigir a imagem e reimplementar a versão atualizada para o registo referenciado.
O contentor de aplicações tem portas em conflito
A aplicação de funções pode estar num estado sem resposta devido a uma atribuição de porta em conflito após o arranque. Isto pode acontecer nos seguintes casos:
- O contentor tem serviços separados em execução em que um ou mais serviços estão a vincular à mesma porta que a aplicação de funções.
- Adicionou uma Ligação Híbrida do Azure que partilha o mesmo valor de porta que a aplicação de funções.
Por predefinição, o contentor no qual a aplicação de funções é executada utiliza a porta :80
. Quando outros serviços no mesmo contentor também estão a tentar utilizar a porta :80
, a aplicação de funções pode falhar ao iniciar. Se os registos mostrarem conflitos de portas, altere as portas predefinidas.
Colisão do ID do Anfitrião
A partir da versão 3.x do runtime das Funções, a colisão do ID do anfitrião é detetada e registada como um aviso. Na versão 4.x, é registado um erro e o anfitrião é parado. Se o runtime não conseguir iniciar para a sua aplicação de funções, reveja os registos. Se existir um aviso ou um erro sobre colisões de ID do anfitrião, siga os passos de mitigação em Considerações sobre o ID do Anfitrião.
Definições da aplicação só de leitura
Alterar as definições da aplicaçãosó de leitura Serviço de Aplicações pode colocar a aplicação de funções num estado inacessível.
Passos seguintes
Saiba mais sobre como monitorizar as suas aplicações de funções: