Como fazer um site estático no Cloudflare Workers Sites
Olá! Meu nome é Dima e sou líder técnico da equipe SysOps do Wrike. Neste artigo vou te contar como deixar um site o mais próximo possível do usuário em 10 minutos e 5 dólares por mês e automatizar sua implantação. O artigo quase nada tem a ver com os problemas que resolvemos dentro da nossa equipe. Esta é antes a minha experiência pessoal e impressões ao conhecer uma tecnologia que é nova para mim. Tentei descrever as etapas com o máximo de detalhes possível para que as instruções fossem úteis para pessoas com experiências diferentes. Espero que você aproveite. Ir!
Então, talvez você já tenha encontrado uma forma simples e barata de hospedar um site. Talvez até grátis, conforme descrito nesteótimo artigo.
Mas de repente você ainda está entediado e quer entrar no admirável mundo novo da tecnologia? Digamos que você esteja pensando em automatizar a implantação e gostaria de acelerar o seu site o máximo possível? Neste artigo usaremosHugo, mas isso é opcional.
Usamos Gitlab CI/CD para automação, mas e quanto à aceleração? Vamos implantar o site diretamente na Cloudflare usandoLocais de trabalho.
Vamos criar a primeira postagem: hugo new posts/my-amazing-post.md
Adicione conteúdo ao arquivo criado: content/posts/my-amazing-post.md. Quando tudo estiver pronto, altere o valor do rascunho para falso
Gerando arquivos estáticos: hugo -D
Agora nosso site estático está localizado dentro de um diretório ./público e pronto para sua primeira implantação manual.
Parte 2: Configurando o Cloudflare
Agora vamos dar uma olhada na configuração inicial do Cloudflare. Vamos supor que já temos um domínio para o site. Tomemos como exemplo blog.exemplo.com.
Etapa 1: crie uma entrada DNS
Primeiro, selecione nosso domínio e depois o item de menu DNS. Criamos um registro A do blog e indicamos algum IP fictício para ele (esse é o oficialrecomendação, mas poderiam ter deixado um pouco mais bonito).
Etapa 2: token Cloudflare
Meu Perfil -> Tokens de API guia-> Criar token -> Criar token personalizado
Aqui você precisará limitar o token a contas e zonas, mas deixe a opção Editar para as permissões listadas na imagem.
Guarde o token para o futuro, precisaremos dele na terceira parte.
Etapa 3: obtenha accountid e zoneid
Domínio → Visão geral → [barra lateral direita]
Estes são meus, não os use, por favor :)
Salve-os ao lado do token, também precisaremos deles na terceira parte.
Etapa 4: ativar trabalhadores
Domínio → Trabalhadores → Gerenciar trabalhadores
Escolhemos um nome e tarifa exclusivos Trabalhadores → Ilimitado (US$ 5 por mês hoje). Se desejar, você pode atualizar posteriormente para a versão gratuita.
Parte 3: Primeira implantação (implantação manual)
Fiz a primeira implantação manual para descobrir o que realmente estava acontecendo ali. Embora tudo isso possa ser feito de forma mais simples:
Instale o wrangler: npm i @cloudflare/wrangler -g
Vamos ao diretório do nosso blog: cd blog.example.com
Disputador de lançamento: wrangler init — site hugo-worker
Crie uma configuração para o wrangler (insira o token quando solicitado): wrangler config
Agora vamos tentar fazer alterações no arquivo recém-criado wrangler.toml (aqui lista completa de configurações possíveis):
Especificar ID da conta e ID da zona
mudança estrada para algo como *blog.example.com/*
Especificarfalsopara trabalhadoresdev
Altere o intervalo para ./public (ou onde seu site estático está localizado)
Se você tiver mais de um domínio no caminho, deverá corrigir o caminho no script de trabalho: site de trabalhadores/index.js (ver função manipularEvento)
Ótimo, é hora de implantar o site usando a equipewrangler publish.
Parte 4: Automação de implantação
Este guia foi escrito para o Gitlab, mas captura a essência e a facilidade da implantação automatizada em geral.
Etapa 1: Crie e configure nosso projeto
Crie um novo projeto GitLab e carregue o diretório site: blog.exemplo.com com todo o conteúdo deve estar localizado no diretório raiz do projeto
Montamosvariável CFAPITOKEN aqui: Configurações → CI / CD → Variáveis
Etapa 2: crie um arquivo .gitlab-ci.yml e execute a primeira implantação
Criar um arquivo .gitlab-ci.yml na raiz com o seguinte conteúdo:
stages:
- build
- deploy
build:
image: monachus/hugo
stage: build
variables:
GIT_SUBMODULE_STRATEGY: recursive
script:
- cd blog.example.com/
- hugo
artifacts:
paths:
- blog.example.com/public
only:
- master # this job will affect only the 'master' branch
tags:
- gitlab-org-docker #
deploy:
image: timbru31/ruby-node:2.3
stage: deploy
script:
- wget https://github.com/cloudflare/wrangler/releases/download/v1.8.4/wrangler-v1.8.4-x86_64-unknown-linux-musl.tar.gz
- tar xvzf wrangler-v1.8.4-x86_64-unknown-linux-musl.tar.gz
- cd blog.example.com/
- ../dist/wrangler publish
artifacts:
paths:
- blog.example.com/public
only:
- master # this job will affect only the 'master' branch
tags:
- gitlab-org-docker #
Lançamos a primeira implantação manualmente (CI/CD → Dutos → Executar pipeline) ou comprometendo-se com o branch master. Voilá!
Conclusão
Bem, posso ter subestimado um pouco e todo o processo demorou pouco mais de dez minutos. Mas agora você tem um site rápido com implantação automática e algumas ideias novas sobre o que mais você pode fazer com o Workers.