Use um bucket como origem de uma aplicação
Sirva os objetos de um bucket do Object Storage por uma aplicação, com um connector do tipo storage e uma regra do Rules Engine que envia requisições a ele.
Você pode servir os objetos de um bucket do Object Storage por uma aplicação ao combinar um connector para o bucket com uma regra do Rules Engine. Uma requisição para o domínio do workload que serve a aplicação passa então a retornar o objeto armazenado sob a chave correspondente. Para conectar uma aplicação a um servidor HTTP em vez de um bucket, consulte Conecte uma aplicação a uma origem.
Uma conta que não migrou para a API v4 monta o mesmo caminho pelas 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
- Um bucket cujo
workloads_accesséread_onlyouread_write. Um bucketrestrictednão pode servir de origem para uma aplicação. Para criar um bucket, consulte Primeiros passos com Object Storage. - Uma aplicação servida por um workload. Para criar os dois, consulte Primeiros passos com Applications.
- Um personal token, enviado no header
AuthorizationcomoToken [TOKEN VALUE], porque esta página faz upload dos objetos com a API. Para criar um token, consulte Gerencie um personal token. curlou outro cliente HTTP.
- Acesso ao Azion Console. Para entrar, consulte Acesse Azion Console.
Faça upload dos objetos a servir
O connector serve o que o bucket já guarda, então os objetos entram primeiro. O exemplo desta página serve uma página de dois objetos, ambos armazenados sob o prefixo src de um bucket chamado app-origin:
Em um diretório local src, crie index.html. A página vincula a folha de estilos dela por um caminho relativo:
Em um diretório styles dentro de src, crie style.css, o arquivo que a página vincula:
Para fazer upload do arquivo HTML com a API, envie uma requisição POST com a chave do objeto no caminho. Content-Type define o tipo com que o objeto é armazenado e servido:
A API responde 201 com a chave sob a qual o objeto é armazenado:
Para fazer upload da folha de estilos, envie a mesma requisição com a chave e o tipo dela:
A resposta traz a chave do segundo objeto:
O bucket guarda os dois objetos. O segmento src/ de cada chave faz parte da chave, não é uma pasta, e a plataforma o cria junto com o objeto. Sem um header Content-Type, a plataforma detecta o tipo do objeto. Azion Console e Azion CLI também fazem upload de objetos. Para mais informações, consulte Primeiros passos com Object Storage.
Crie um connector para o bucket
Um connector para um bucket nomeia o bucket do qual uma aplicação lê e o prefixo dentro dele. O prefixo define onde os caminhos da aplicação começam. Com o prefixo /src, o objeto armazenado sob src/index.html responde em /index.html, e src/styles/style.css responde em /styles/style.css. O prefixo é opcional na API e obrigatório no Azion Console.
No Azion Console, você configura connectors no menu Connectors, e não em uma aba da aplicação. Para cada campo do formulário do Console e do corpo da requisição, consulte Configurações de connector.
Na API, o type do connector é storage, e os attributes dele carregam bucket, o nome do bucket, e prefix. No exemplo desta página, bucket é app-origin e prefix é /src.
Crie o connector com uma requisição POST para /v4/workspace/connectors. Em seguida, copie o ID do connector, que a API retorna em data.id: a regra que envia as requisições para o bucket nomeia o connector por esse ID.
Envie as requisições para o bucket
Um connector não recebe nenhuma requisição até que uma regra o defina. A regra desta seção roda na fase de requisição da aplicação. O critério dela corresponde a todo caminho, com a variável ${uri}, o operador starts_with e / como argumento, então a aplicação inteira lê do bucket. O behavior dela define o connector.
A variável ${uri} funciona em toda aplicação. Um critério com ${request_uri} precisa de Application Accelerator ativado na aplicação. Para todas as variáveis e operadores, consulte Rules Engine para Applications.
Para criar a regra com a API, envie uma requisição POST para o endpoint request_rules da aplicação. Substitua <application-id> pelo ID da sua aplicação e <connector-id> pelo ID do connector para o bucket:
A API responde 202 e retorna a regra:
A regra é a primeira da fase de requisição da aplicação, com order 0.
Para o behavior e os atributos dele, consulte Set Connector.
Confirme que a aplicação serve o bucket
A regra leva algum tempo para propagar. Até lá, o domínio do workload não responde com os objetos.
Para confirmar o caminho de entrega, requisite a página pelo domínio do seu workload, com esse domínio no lugar de <your-workload-domain>:
O corpo da resposta é o objeto armazenado sob src/index.html, que o prefixo /src serve em /index.html. Ele traz o título Hello world! e o parágrafo I am an object from a bucket. O domínio de um workload termina em .map.azionedge.net, e a API o retorna em workload_domain quando cria o workload.
Acesse o mesmo endereço em um navegador. O navegador renderiza a página com a folha de estilos aplicada, que ele carrega de /styles/style.css sob o mesmo prefixo.
Se o domínio ainda não retorna o objeto, a regra não propagou. Envie a requisição de novo e procure outra causa somente depois disso. Para mais informações, consulte Solucionar problemas de Applications.