Jak vytvořit statický web na Cloudflare Workers Sites
Ahoj! Jmenuji se Dima, jsem technický vedoucí týmu SysOps ve Wrike. V tomto článku vám řeknu, jak udělat web co nejblíže uživateli za 10 minut a 5 dolarů měsíčně a zautomatizovat jeho nasazení. Článek nemá téměř nic společného s problémy, které v rámci našeho týmu řešíme. To je spíše moje osobní zkušenost a dojmy z poznávání technologie, která je pro mě nová. Snažil jsem se kroky popsat co nejpodrobněji, aby byl návod užitečný pro lidi s různými zkušenostmi. Doufám, že se vám bude líbit. Jít!
Možná jste již našli jednoduchý a levný způsob hostování webových stránek. Možná dokonce zdarma, jak je popsáno v tomtoskvělý článek.
Ale najednou se stále nudíte a chcete se dotknout nového odvážného světa technologií? Řekněme, že uvažujete o automatizaci nasazení a rádi byste svůj web co nejvíce zrychlili? V tomto článku použijemeHugo, ale je to volitelné.
Pro automatizaci používáme Gitlab CI/CD, ale co akcelerace? Pojďme nasadit web přímo do Cloudflare pomocíPracovní místa.
Pokud již máte Hugo nainstalovaný, nebo pokud dáváte přednost jinému generátoru statických stránek (nebo jej nepoužíváte vůbec), můžete tuto část přeskočit.
Vytvoříme první příspěvek: hugo new posts/my-amazing-post.md
Přidejte obsah do vytvořeného souboru: content/posts/my-amazing-post.md. Až bude vše hotovo, změňte hodnotu konceptu na nepravdivý
Generování statických souborů: hugo -D
Nyní je náš statický web umístěn v adresáři ./veřejnost a připraven na vaše první ruční nasazení.
Část 2: Nastavení Cloudflare
Nyní se podíváme na počáteční nastavení Cloudflare. Předpokládejme, že pro web již máme doménu. Vezměme si to jako příklad blog.example.com.
Krok 1: Vytvořte záznam DNS
Nejprve vyberte naši doménu a poté položku nabídky DNS. Vytvoříme blog A-record a uvedeme pro něj nějakou fiktivní IP (toto je oficiálnídoporučení, ale mohli to udělat trochu hezčí).
Krok 2: Cloudflare Token
Můj profil -> API tokeny karta-> Vytvořit token -> Vytvořit vlastní token
Zde bude potřeba omezit token na účty a zóny, ale u oprávnění uvedených na obrázku ponechte možnost Upravit.
Token si uschovejte do budoucna, budeme ho potřebovat ve třetí části.
Krok 3: Získejte accountid a zoneid
Doména → O programu → [pravý postranní panel]
Jsou moje, nepoužívejte je prosím :)
Uložte si je vedle tokenu, budeme je potřebovat i ve třetím díle.
Krok 4: Aktivujte pracovníky
Doména → Pracovníci → Správa pracovníků
Vybíráme jedinečné jméno a tarif Workers → Unlimited (dnes 5 $ měsíčně). Pokud chcete, můžete později upgradovat na bezplatnou verzi.
Část 3: První nasazení (ruční nasazení)
Provedl jsem první ruční nasazení, abych zjistil, co se tam vlastně děje. I když to vše lze udělat jednodušeji:
Nainstalujte wrangler: npm i @cloudflare/wrangler -g
Pojďme do adresáře našeho blogu: cd blog.example.com
Spustit wrangler: wrangler init — site hugo-worker
Vytvořte konfiguraci pro wrangler (na požádání zadejte token): wrangler config
Nyní se pokusíme provést změny v nově vytvořeném souboru wrangler.toml (zde úplný seznam možných nastavení):
Uveďte accountid a zoneid
Změna trasa na něco jako *blog.example.com/*
Uveďtenepravdivýpro pracovnícidev
Změňte kbelík na ./public (nebo kde se nachází váš statický web)
Pokud máte v cestě více než jednu doménu, měli byste opravit cestu v pracovním skriptu: Workers-site/index.js (viz funkce handleEvent)
Skvělé, je čas nasadit web pomocí týmuwrangler publish.
Část 4: Automatizace nasazení
Tato příručka je napsána pro Gitlab, ale zachycuje podstatu a snadnost automatizovaného nasazení obecně.
Krok 1: Vytvořte a nakonfigurujte náš projekt
Vytvořte nový projekt GitLab a nahrajte adresář site: blog.example.com s veškerým obsahem musí být umístěn v kořenovém adresáři projektu
Jsme si stanovilivariabilní CFAPITOKEN zde: Nastavení → CI / CD → Proměnné
Krok 2: Vytvořte soubor .gitlab-ci.yml a spusťte první nasazení
Vytvořte soubor .gitlab-ci.yml v kořenovém adresáři s následujícím obsahem:
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 #
První nasazení spouštíme ručně (CI/CD → Potrubí → Spustit potrubí) nebo zavázáním se k hlavní pobočce. Voila!
Závěr
Možná jsem to trochu podcenil a celý proces trval něco málo přes deset minut. Nyní však máte rychlý web s automatickým nasazením a novými nápady, co dalšího můžete s Workers dělat.