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!

Como fazer um site estático no Cloudflare Workers Sites

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 usaremos Hugo, mas isso é opcional.

Usamos Gitlab CI/CD para automação, mas e quanto à aceleração? Vamos implantar o site diretamente na Cloudflare usando Locais de trabalho.

O que é necessário para começar:

Parte 1: Instalando o Hugo

Se você já tem o Hugo instalado ou se prefere um gerador de site estático diferente (ou não usa nenhum), pode pular esta parte.

  1. Baixe Hugo em https://github.com/gohugoio/hugo/releases

  2. Colocamos o arquivo executável do Hugo de acordo com um dos definidos em PATH maneiras

  3. Criando um novo site: hugo new site blog.example.com

  4. Mude o diretório atual para o recém-criado: cd blog.example.com

  5. Selecione um tema de design (https://github.com/budparr/gohugo-theme-ananke/releases como queiras)

  6. Vamos criar a primeira postagem: hugo new posts/my-amazing-post.md

  7. Adicione conteúdo ao arquivo criado: content/posts/my-amazing-post.md.
    Quando tudo estiver pronto, altere o valor do rascunho para falso

  8. 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 oficial recomendação, mas poderiam ter deixado um pouco mais bonito).

Como fazer um site estático no Cloudflare Workers Sites

Etapa 2: token Cloudflare

  1. Meu Perfil -> Tokens de API guia-> Criar token -> Criar token personalizado

Como fazer um site estático no Cloudflare Workers Sites

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]

Como fazer um site estático no Cloudflare Workers SitesEstes 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:

  1. Instale o wrangler: npm i @cloudflare/wrangler -g

  2. Vamos ao diretório do nosso blog: cd blog.example.com

  3. Disputador de lançamento: wrangler init — site hugo-worker

  4. 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):

  1. Especificar ID da conta e ID da zona

  2. mudança estrada para algo como *blog.example.com/*

  3. Especificar falso para trabalhadoresdev

  4. Altere o intervalo para ./public (ou onde seu site estático está localizado)

  5. 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 equipe wrangler 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

  1. 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

  2. Montamos variável CFAPITOKEN aqui: Configurações CI / CDVariá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.

 Trabalhadores Cloudflare    Hugo    GitLab Ci

Fonte: habr.com

Adicionar um comentário