Conecte uma aplicação a uma origem
Crie um connector para uma origem HTTP e envie as requisições de uma aplicação a ele com uma regra do Rules Engine, pelo Azion Console ou pela API.
Você pode conectar uma aplicação a uma origem com um connector e uma regra do Rules Engine que o define. A origem, também chamada de backend, é o servidor do qual a Azion obtém o seu conteúdo. Ela pode ser um serviço de object storage, um servidor em cloud ou outra infraestrutura que hospeda os assets ou os dados da sua aplicação. Você cria os dois pelo Azion Console ou pela API.
Para servir os objetos de um bucket, consulte Use um bucket como origem de uma aplicação. Para distribuir as requisições entre vários endereços, consulte Balanceie o tráfego entre múltiplas origens. Uma conta que não migrou para a API v4 configura as origens nas Origins legadas da aplicação. Para mais informações, consulte Origins.
Escolha a interface em que você trabalha. Os pré-requisitos e os procedimentos mudam conforme a sua escolha.
Pré-requisitos
- Uma aplicação servida por um workload. Para criar os dois, consulte Primeiros passos com Applications.
- Acesso ao Azion Console. Para entrar, consulte Acesse Azion Console.
Crie um connector para a origem
Um connector guarda o endereço da origem e as opções que a Azion usa para se conectar a ela. No Azion Console, você configura connectors no menu Connectors, e não em uma aba da aplicação. Para cada campo desse formulário, consulte Configurações de connector. O connector desta seção acessa httpbin.org por HTTPS.
Para criar o connector com a API, envie uma requisição POST ao endpoint de connectors:
O corpo define quatro valores:
| Chave | O que define |
|---|---|
type | http conecta a uma origem HTTP ou HTTPS. |
addresses | O endereço da origem. Um connector para uma única origem traz um endereço. |
transport_policy | force_https faz a Azion se conectar à origem por HTTPS, qualquer que seja o protocolo da requisição do usuário. |
host | O valor que a Azion envia à origem no header Host. |
A API responde 202 e retorna o connector:
A resposta preenche o que o corpo deixou de fora. O connector e o endereço dele estão ativos, o endereço usa a porta 80 para HTTP e 443 para HTTPS, e Load Balancer e Origin Shield estão desabilitados em modules. Copie o valor de data.id: a regra que envia as requisições ao connector o identifica por esse ID.
Endereço, path e header Host
Insira o endereço como um nome de domínio ou um endereço IPv4 ou IPv6, sem http:// ou https://. Em vez disso, a chave transport_policy define o protocolo. Quando o conteúdo fica sob um path, como https://bucket.s3.amazonaws.com/applications/your-app, divida a URL. O hostname, bucket.s3.amazonaws.com, vai no endereço, e o path, /applications/your-app, vai no prefixo de path do connector, path_prefix. Um endereço que traz o path faz as requisições à origem falharem.
A chave host recebe um nome de domínio fixo ou a variável ${host}. A Azion envia um nome fixo, como httpbin.org, qualquer que seja o domínio que o usuário requisitou. Use um nome fixo quando a origem serve um único virtualhost, ou responde a um virtualhost em um endereço diferente do que está no DNS. Um nome fixo também serve para uma origem que precisa de um hostname específico para roteamento, correspondência de certificado ou controle de acesso. ${host}, o padrão, encaminha o header Host da requisição do usuário, para uma origem que serve vários virtualhosts a partir de um endereço. Um valor vazio é recusado.
Uma origem que exige autenticação HMAC, como um bucket privado de object storage, precisa de uma região, uma access key e uma secret key válidas no connector. Sem credenciais válidas, a origem recusa a requisição: o endpoint S3 do Azion Object Storage responde a uma requisição sem assinatura com 401 e UnauthorizedAccess. Uma alteração no endereço ou no header Host de um connector alcança todas as regras que o definem. Revise essas regras antes de alterar um connector que serve tráfego de produção.
Envie as requisições ao connector
Um connector não recebe nenhuma requisição até que uma regra o defina. A regra desta seção é executada na fase de requisição da aplicação. O critério dela corresponde a todos os paths, com a variável ${uri}, o operador starts_with e / como argumento, e o behavior dela define o connector. Uma aplicação começa sem regras, então é esta regra que envia as requisições dela à origem.
Para enviar apenas um path, como /httpbin, use o operador is_equal com esse path como argumento. Só com essa regra, uma requisição a qualquer outro path recebe 404.
A variável ${uri} funciona em todas as aplicações. Um critério com ${request_uri} precisa de Application Accelerator ativado na aplicação. Para todas as variáveis e todos os operadores, consulte Rules Engine para Applications.
Para criar a regra com a API, envie uma requisição POST ao endpoint request_rules da aplicação. Substitua <application-id> pelo ID da sua aplicação e <connector-id> pelo ID do connector:
A API responde 202 e retorna a regra:
A regra é a primeira da fase de requisição da aplicação, com order 0.
A mesma regra com ${request_uri} no lugar de ${uri}, em uma aplicação sem Application Accelerator, é recusada com 400:
O erro aponta para a variável em source.pointer e nomeia o Produto ausente em meta.missing_required_modules.
Para o behavior e os atributos dele, consulte Set Connector.
Confirme que a aplicação alcança a origem
A regra leva alguns minutos para se propagar. Até lá, a aplicação responde como respondia antes de a regra existir.
Para confirmar a rota, envie uma requisição ao domínio do seu workload, com esse domínio no lugar de <your-workload-domain>:
A resposta é a que httpbin.org retorna para /. O domínio de um workload termina em .map.azionedge.net, e a API o retorna em workload_domain quando cria o workload. Se a resposta ainda não vier da origem, envie a requisição novamente até que venha. Se nunca vier, consulte Solucionar problemas de Applications.