Google Cloud Run alebo ako spustiť statický web za 5 minút a oveľa viac

TLDR; Tento článok nie je z technického hľadiska príliš hlboký o tom, ako funguje Google Cloud Run. Aplikácia Google Cloud Run môže tiež urobiť omnoho viac, ako prevádzkovať jednoduchý web. V článku sa podrobne opisujú veľmi jednoduché prípady použitia a moje prvé skúsenosti s tým a dúfajme, že to pomôže ostatným, ktorí by mohli byť zvedaví, ale nevedia, kde začať (aj keď už existujúce Quickstarts sú pravdepodobne všetko, čo potrebujete).

Mal som problém mesiac. Môj pevný disk vyhradený pre server úplne zomrel (spoločnosť fsck na nich ani nepracovala) a nakoniec sme sa ho rozhodli zbaviť po 10 rokoch. Žiaľ, tam fungovala webová stránka mojej mamy. To je správne! Je to iba statický web s veľmi nízkou návštevnosťou, ale je pre mňa stále veľmi príjemné.

Až do včerajška som nič nerobil. Zvyčajne využívam príležitosť vyskúšať nové veci, keď sa niečo podobné stane, nechcel som používať žiadnu službu, do ktorej odovzdávate súbory HTML a to je všetko. Prvou možnosťou, ktorá prišla k mne, bolo použitie hostingu Firebase, ale už som to urobil pre inú jednostránkovú stránku a už v práci používam Firebase.

Našťastie sa Google Next '19 stalo pred pár týždňami. Včera som na svojej dochádzke počúval Podcast Google Cloud Platform a epizóda sa týkala nového produktu, ktorý bol ohlásený počas nasledujúceho ‘19: Google Cloud Run. Keď bol podcast hotový, videl som, že je to jasné: budem používať Google Cloud Run!

Čo je však Google Cloud Run? Je to serverless urobil správnym spôsobom. Ospravedlňujeme sa? Pomocou funkcií Google Cloud Functions môžete do súboru napísať obslužný program HTTP Node.js (alebo Go…) HTTP a nahrať ho. Po zavedení tejto funkcie získate adresu URL a ste nastavení, môžete na ňu len ukázať. Google Cloud Run ide na ďalšiu úroveň. Namiesto nahrávania súborov s funkciami teraz nasadíte kontajnery. Prečo je to lepšie? Pretože teraz môžete do kontajnera vložiť, čo chcete. Namiesto toho, aby ste čakali, až bude váš preferovaný jazyk podporovaný funkciami Cloud Functions (čo by sa nikdy nestalo), teraz si jednoducho vytvoríte kontajner a spustíte v ňom všetko, čo chcete. Všetko, čo musíte urobiť, je otvoriť port 8080 v kontajneri (viac o tom neskôr). Rovnako ako v prípade funkcií cloudu sa všetko škálovateľne vyšplhá a môžete svoje kontajnery pripojiť k iným produktom Google Cloud. Predstavte si možnosti.

Od dnešného dňa som si celkom istý, že už musí byť veľa článkov o tom, čo budem vysvetľovať, ale ten zážitok bol taký bezbolestný, krásny, jednoduchý a rýchly, že som si myslel, že stojí za to ho zdieľať. Tak to tu ide!

Vytvorte nový projekt platformy Google Cloud Platform

V prípade, že prvýkrát vytvoríte nový projekt GCP (Google Cloud Platform), nižšie je uvedený postup. Ak už viete ako, vytvorte v konzole nový projekt a pomenujte ho, povedzme napríklad MyWebsite, a preskočte na ďalšiu časť.

Najprv prejdite do konzoly Google Cloud Console a v hornej časti kliknite na možnosť Vybrať projekt. Otvorí sa modálne okno, kliknite na Nový projekt.

Ďalej stačí zadať názov projektu, povedali sme, že ide o MyWebsite a kliknite na Vytvoriť. V tomto kroku je veľmi dôležité pamätať si: ID projektu je mywebsite-239106, zapíšte si ho, keď ho neskôr použijeme.

Po vytvorení projektu ho vyberte z rovnakej rozbaľovacej ponuky Vyberte projekt, na ktorý sme klikli hneď na začiatku.

Povoliť fakturáciu (a informácie o cenách)

Bohužiaľ som si uvedomil, že musíte prejsť týmto krokom. Keď som prvýkrát vyskúšal službu Google Cloud Run, moja fakturácia bola povolená, takže som si neuvedomil, že to bolo doteraz potrebné. Len predpokladám, že s tým nemáte žiadne problémy. Na konci bude prevádzka webovej stránky s nízkou návštevnosťou „takmer“ zadarmo. Ďalšie podrobnosti nájdete v časti Google Cloud Run Pricing.

Povoliť Google Cloud Run

Ak máte vybraný projekt GCP, jednoducho prejdite do služby Google Cloud Run a kliknite na položku Spustiť používanie služby Cloud Run.

Mali by ste skončiť v konzole Google Cloud Run.

Nainštalujte a autorizujte súpravu Google Cloud SDK

Ak už máte nainštalovanú súpravu Google Cloud SDK a viete, čo robíte, pravdepodobne tento krok preskočíte (nezabudnite aktualizovať súpravu Google Cloud SDK, nainštalujte komponenty Beta a vyberte svoj novovytvorený projekt).

Ak používate OS X, je veľmi pravdepodobné, že máte nainštalovaný Homebrew. Ak tak urobíte, jednoducho napíšte:

$ brew cask install google-cloud-sdk

Ak nemáte homebrew, odporúčam vám ho nainštalovať. Ak ho nechcete nainštalovať, môžete postupovať podľa pokynov na inštaláciu z súpravy Google Cloud SDK, ak používate GNU / Linux.

Po nainštalovaní súpravy Google Cloud SDK je preto potrebné ju autorizovať pomocou účtu Google, ktorý ste použili na vytvorenie svojho projektu. Zadajte nasledujúci text:

$ gcloud auth login

Potom nainštalujte komponenty Google Cloud SDK Beta:

Komponenty $ gcloud inštalujú beta

Nakoniec vyberte svoj projekt (pamätajte si ID projektu, ktoré sme si predtým zapísali?):

$ gcloud config set project mywebsite-239016

Nainštalujte Docker

Opäť platí, že v OS X, ak máte homebrew, napíšte:

$ ukotviteľný kotol na inštaláciu nápojového sudu

Ak nie, stiahnite si Docker a postupujte podľa pokynov. Je to celkom rovno.

Vytvorte kontajner

Nakoniec zaujímavá časť. Čo urobíme ďalej, je nasadenie jednoduchej stránky HTML a jej zobrazovanie prostredníctvom služby Google Cloud Run. Najprv vytvoríme nový adresár a trochu zorganizujeme veci:

webová stránka $ mkdir
$ cd webová stránka
$ mkdir html nginx

V adresári html vytvorte súbor index.html s týmto obsahom:


 Ahoj z Google Cloud Run! 

Na obsluhu tohto súboru potrebujeme iba webový server. Použijeme nginx. Povedal som, že služba Google Cloud Run používa kontajnery, čo znamená, že môžeme jednoducho použiť existujúci kontajner nginx. Jediný problém s predvoleným kontajnerom nginx je v tom, že poskytuje súbory na porte 80, ale služba Google Cloud Run očakáva, že kontajnery budú slúžiť veciam na porte 8080. Neskôr poskytneme nový konfiguračný súbor pre nginx.

Vytvorte nový súbor Dockerfile vo webovom adresári:

$ cat Dockerfile
Z Nginx
KÓPIA html / usr / share / nginx / html
COPY nginx / default.conf /etc/nginx/conf.d/default.conf

V tomto Dockerfile len povieme Dockerovi, aby vytvoril nový kontajner založený na kontajneri nginx a pridávame náš adresár html (ktorý obsahuje náš index.html) plus konfiguračný súbor nginx, ktorý vytvoríme ďalej.

V adresári nginx vytvorte súbor default.conf (všimnite si, ako počúvame na porte 8080):

$ cat nginx / default.conf
server {
    počúvať 8080;
    server_name localhost;
    umiestnenie / {
        root / usr / share / nginx / html;
        index index.html index.htm;
    }
    # presmeruje chybové stránky servera na statickú stránku /50x.html
    error_page 500 502 503 504 / 50x.html;
    location = /50x.html {
        root / usr / share / nginx / html;
    }
}

Potom by ste mali mať túto štruktúru adresárov:

$ strom
,
Ock Dockerfile
├── html
│ └── index.html
Gin nginx
    └── default.conf

Upozorňujeme, že v adresári html alebo inde ste mohli pridať ďalšie súbory: viac súborov HTML, súbory CSS, obrázky atď. Ak je to veľká webová stránka, je pravdepodobne lepšie nahrať obsah do služby Google Cloud Storage a udržať kontajner malý.

Zostavte a umiestnite kontajner

Teraz môžeme zostaviť kontajner a zatlačiť ho. Deje sa tak pomocou príkazu Google Cloud SDK:

$ gcloud builds submit --tag gcr.io/mywebsite-239106/hello

Špecifikovali sme náš projekt mywebsite-239106 a názov nášho nového hello služby Google Cloud Run.

Nakoniec môžeme nasadiť nový kontajner do služby Google Cloud Run:

$ gcloud beta run nasadiť - obrázok gcr.io/mywebsite-239106/hello

Ak všetko dopadlo dobre, mala by sa vám zobraziť táto správa:

Bola nasadená revízia služby [ahoj] [ahoj-00001] a poskytuje prevádzku na adrese https://hello-7ss2wutasq-uc.a.run.app

Zdá sa, že vygenerovaná adresa URL je funkčná!

Ďalšie podrobnosti nájdete aj v konzole Google Cloud Run:

Potom môžete vykonať zmeny na svojich webových stránkach a pokračovať v budovaní a zavádzaní nového kontajnera. V službe Google Cloud Run sa zobrazia všetky revízie, ktoré ste nasadili.

Priradenie domény

Ďalšiu vec, ktorú môžete urobiť, je priradiť doménu novej službe Google Cloud Run. Nebudem sa tým zaoberať tu, pretože to vyžaduje aktualizáciu záznamov DNS vašej domény a to skutočne závisí od služby, ktorú používate, ale musím povedať, že tento proces je veľmi priamočiary. Po dokončení nasadenia stačí kliknúť na Spravovať vlastné domény (pozri obrázok vyššie).

Oh! Najlepšie na tom je, že certifikáty sú už spravované za vás. Bol som našťastie prekvapený, že bez toho, aby sme urobili čokoľvek, už bol pre moju doménu nastavený certifikát Poďme šifrovať a HTTP a HTTPS fungovali ako kúzlo.

A to bolo všetko!

Mimochodom, spomenul som niečo o Firebase a práci. V práci používame Firebase a ďalšie veci platformy Google Cloud Platform. Chcel som sa len podeliť o nový projekt, na ktorom pracujeme už niekoľko mesiacov. Je to celkom nový koncept zdieľania obrazovky a má tiež zvláštne meno. Vyskúšajte to: https://www.rumpus.co/