O que são webhooks?
Você pode ter encontrado o termo webhook nas configurações do seu aplicativo. Você pode se perguntar se um webhook é de alguma utilidade para você ou não. Bem, a resposta é um sim absoluto. Webhook é uma maneira de entregar os dados a um aplicativo. Webhooks, em palavras simples, permitem que você entregue as mensagens de um aplicativo para o outro. Sempre que um evento é concluído, as mensagens automatizadas são enviadas para o aplicativo. Webhooks são o que essas respostas automatizadas são. O conceito é muito semelhante às notificações de SMS.
Por exemplo, você possui uma conta do PayPal e alguém quer transferir seu dinheiro. Para saber se o evento é bem -sucedido, você precisa de alguma notificação. É aqui que os webhooks entram em jogo. O webhook permite que o PayPal informe seu aplicativo de contabilidade quando o sistema concluir sua ordem de pagamento. Da mesma forma, o WooCommerce notifica você sobre seus pedidos no Slack via Webhooks.
Agora, vamos discutir os pré-requisitos e o processo passo a passo para criar um webhook em Kubernetes.
Pré -requisitos:
Antes da criação de webhooks, vamos analisar os pré -requisitos. Você deve garantir que seu sistema esteja em conformidade com todos os padrões antes de construir seu webhook:
Se você não instalou essas ferramentas, seu primeiro passo é instalá -las imediatamente. Depois de obter essas ferramentas, podemos passar para a próxima parte. Vamos mergulhar na criação de webhooks, passo a passo.
Etapa 1: Formato do arquivo de configuração
Para o modo de configuração HTTP, o webhook requer um arquivo. Este arquivo de configuração usa o formato do arquivo kubeconfig e o especifica pelo -Authorization-Webhook-Config-File = Some_FileName Flag. O arquivo compreende dois elementos - usuários e clusters. Os usuários fazem referências ao webhook do servidor API dentro do arquivo, enquanto os clusters fazem referências ao serviço remoto.
Aqui está como é um simples arquivo de configuração:
Na captura de tela anexada, você pode ver a versão da API e o tipo de API nas duas primeiras linhas. Depois disso, os clusters, usuários e informações de contexto atuais são apresentados. Lembre -se de que os arquivos Kubeconfig precisam de contexto. Portanto, você deve dar um ao servidor da API. Isso é o que realizamos na etapa anterior, como você pode ver na imagem anterior.
Depois que a configuração HTTP for feita com sucesso, podemos avançar para a próxima etapa, que está solicitando as cargas úteis.
Etapa 2: Solicitar cargas úteis
O servidor da API publica uma autorização JSON serializada.K8S.io/v1beta1 sujeito aquáticasReViewObject quando está prestes a ser autorizado. Isso é feito para notificar sobre a decisão de autorização. Este objeto contém informações sobre o campo e o recurso. As informações de recursos definem as propriedades que foram acessadas ou solicitadas, enquanto os detalhes do campo identificam a pessoa que tenta fazer a solicitação.
Aqui, é importante ter em mente que as regras de compatibilidade de versão não são diferentes para objetos de API da webhook e são igualmente semelhantes aos objetos da API de Kubernetes. A desserialização correta é crucial para a criação de webhook. Para alcançar uma desserialização precisa, os implementadores devem sempre levar em consideração dois fatores: o potencial das promessas de compatibilidade mais frouxa dos objetos beta e a necessidade de verificar o campo APIVERSION da solicitação. Além disso, o servidor da API deve ativar a autorização.K8S.Grupo de Extensões IO/V1beta1API (-Runtime-Config = Autorização.K8S.io/v1beta1 = true).
Aqui está um exemplo de pedido de solicitação que anexamos sua ajuda:
O serviço remoto é responsabilizado por permitir e proibir o acesso, o que é feito preenchendo o campo de status. Discutiremos os dois tipos de respostas passo a passo. Falando sobre as especificações do corpo de resposta permissiva, você pode deixá -lo vazio ou omitir completamente. Na maioria das vezes, é ignorado. Um exemplo de permitir o acesso é o seguinte:
Em seguida é o acesso desapropriado. Agora existem dois métodos para executar uma resposta desapropriada. Os implementadores geralmente preferem o primeiro método na maioria dos casos. Este método depende da configuração dos autorizadores. Os autorizadores podem aprovar o pedido se tiverem sido configurados. No cenário oposto, onde não há autorizadores ou simplesmente não permitem a solicitação, a solicitação não é aprovada para gerar uma resposta permissiva. A imagem a seguir mostra uma resposta negado:
Por que usar Kubernetes para webhooks?
Kubernetes é um sistema de código aberto para gerenciar a comunicação entre aplicativos de software, escala e automação. Em termos de velocidade e gerenciamento de cluster de back -end, Kubernetes avançou significativamente nos últimos anos. Devido à sua maravilhosa flexibilidade, escalabilidade e facilidade de operação, é um dos melhores softwares para clusters de back -end hoje. Uma das principais características dos Kubernetes é que ele fornece recursos para garantir as cargas de trabalho de produção seguras.
Diferença entre API e Webhook
API e webhooks são frequentemente usados no mundo do software diariamente. Você pode usar os termos de forma intercambiável. Como ambos têm uma operação semelhante, a confusão é bastante válida. No entanto, eles não são as mesmas coisas. A principal diferença entre API e Webhook é que as APIs são manuais, mas os webhooks são automatizados. No caso das APIs, eles precisam ser solicitados a acessar ou negar os pedidos. No entanto, Webhook faz isso por conta própria. Podemos dizer que Webhook é um subconjunto de API. Portanto, eles têm um escopo muito limitado. O ponto principal é que as APIs exigem o comando de um usuário para executar uma resposta, enquanto os webhooks não dependem de tais comandos de usuário.
Conclusão
Este artigo apresentou uma visão de um pássaro sobre o que são webhooks e como criá -los em Kubernetes. Neste artigo, aprendemos por que Kubernetes é o software mais popular para a construção de webhooks. Seguindo o guia que é declarado neste artigo, ajudaremos você a fazer seus webhooks em pouco tempo e com facilidade.