Como crear un sitio estático en Cloudflare Workers Sites
Ola! Chámome Dima, son responsable técnico do equipo SysOps de Wrike. Neste artigo vouche dicir como facer que un sitio web sexa o máis próximo posible ao usuario en 10 minutos e 5 dólares ao mes e automatizar a súa implantación. O artigo non ten case nada que ver cos problemas que resolvemos dentro do noso equipo. Esta é máis ben a miña experiencia persoal e impresións de coñecer unha tecnoloxía que é nova para min. Tentei describir os pasos co maior detalle posible para que as instrucións fosen útiles para persoas con experiencia diferente. Espero que o disfrutedes. Vaia!
Entón, quizais xa atopou unha forma sinxela e barata de aloxar un sitio web. Quizais incluso gratuíto, como se describe nestegran artigo.
Pero, de súpeto, aínda estás aburrido e queres tocar o novo mundo valente da tecnoloxía? Digamos que estás pensando en automatizar a implementación e queres acelerar o teu sitio o máximo posible? Neste artigo utilizaremosHugo, pero isto é opcional.
Usamos Gitlab CI/CD para a automatización, pero que pasa coa aceleración? Implementemos o sitio directamente en Cloudflare usandoSitios de traballadores.
Imos crear a primeira publicación: hugo new posts/my-amazing-post.md
Engade contido ao ficheiro creado: contido/publicacións/my-amazing-post.md. Cando todo estea feito, cambia o valor do borrador a teito
Xeración de ficheiros estáticos: hugo -D
Agora o noso sitio estático está situado dentro dun directorio ./público e listo para a súa primeira implantación manual.
Parte 2: Configuración de Cloudflare
Agora vexamos a configuración inicial de Cloudflare. Supoñamos que xa temos un dominio para o sitio. Poñamos como exemplo blog.exemplo.com.
Paso 1: cree unha entrada DNS
Primeiro, selecciona o noso dominio e despois o elemento do menú DNS. Creamos un blog A-record e indicamos algunha IP ficticia para el (este é o oficialrecomendación, pero poderían telo feito un pouco máis bonito).
Aquí terás que limitar o token a contas e zonas, pero deixar a opción Editar para os permisos que aparecen na imaxe.
Garda o token para o futuro, necesitarémolo na terceira parte.
Paso 3: Obteña accountid e zoneid
Dominio → visión global → [barra lateral dereita]
Estes son meus, non os uses por favor :)
Gárdaos xunto á ficha, tamén os necesitaremos na terceira parte.
Paso 4: Activar os traballadores
Dominio → Traballadores → Xestionar traballadores
Escollemos un nome único e unha tarifa Traballadores → Ilimitado ($5 ao mes hoxe). Se o desexa, máis tarde pode actualizar á versión gratuíta.
Parte 3: primeira implantación (impregación manual)
Fixen o primeiro despregamento manual para descubrir o que realmente estaba a suceder alí. Aínda que todo isto pódese facer máis sinxelo:
Instalar wrangler: npm i @cloudflare/wrangler -g
Imos ao directorio do noso blog: cd blog.example.com
Lanzamento de wrangler: wrangler init — site hugo-worker
Crea unha configuración para wrangler (introduce o token cando se lle pregunte): wrangler config
Agora imos tentar facer cambios no ficheiro recén creado wrangler.toml (aquí lista completa de opcións posibles):
Indicamos accountid e zoneid
Cambio ruta a algo así como *blog.example.com/*
Indicamosteitopara traballadoresdev
Cambiar o depósito a ./public (ou onde está o seu sitio estático)
Se tes máis dun dominio no camiño, deberías corrixir o camiño no script de traballo: Workers-site/index.js (ver función handleEvent)
Xenial, é hora de implementar o sitio usando o equipowrangler publish.
Parte 4: Automatización da implantación
Esta guía está escrita para Gitlab, pero recolle a esencia e a facilidade da implementación automatizada en xeral.
Paso 1: Crea e configura o noso proxecto
Crea un novo proxecto de GitLab e carga o sitio: directorio blog.exemplo.com con todo o contido debe estar situado no directorio raíz do proxecto
Fixemosvariable CFAPITOKEN aquí: Configuración → CI / CD → Variables
Paso 2: cree un ficheiro .gitlab-ci.yml e execute a primeira implementación
Crear un ficheiro .gitlab-ci.yml na raíz co seguinte contido:
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 #
Lanzamos o primeiro despregamento manualmente (CI/CD → Liñas de tubería → Executar pipeline) ou comprometéndose coa rama mestra. Voila!
Conclusión
Ben, quizais o subestimase un pouco, e todo o proceso levou algo máis de dez minutos. Pero agora tes un sitio rápido con implementación automática e algunhas ideas novas sobre que máis podes facer con Workers.