Izvietojiet Google mākonī, izmantojot Github darbības

Blogs

Izvietojiet Google mākonī, izmantojot Github darbības

CI/CD risinājums, kas ar darbībām un mākoni darbojas līdz nullei



Fons

Ir daudz pārklāšanās starp projektiem, pie kuriem strādāju savā laikā un kad strādāju kopā ar komandu, lai izstrādātu risinājumus diviem aspektiem. Tā kā man ir ierobežots brīvais laiks, kad izstrādāju savu darbu, un mūsu komandas mazie izmēri, es vienmēr ieteikšu risinājumus, kas ir vienkārši un mērogojami līdz nullei bez jebkādas darbības.

Tāpēc, meklējot CI/CD risinājumu, kas atbalstītu vienu no maniem iecienītākajiem produktiem, ko piedāvā Google Cloud Platform (GCP) ar nosaukumu Cloud Run, es gribēju apskatīt Github Actions. Github Actions šādā veidā ir ļoti līdzīgs Cloud Run, jo no jums tiek iekasēta maksa tikai par to, ko izmantojat.



Šie pakalpojumi ir ne tikai pilnībā pārvaldīti un tiek samazināti līdz nullei, bet tiem ir arī papildu priekšrocības, kuras es labprāt izmantoju, eksperimentējot patstāvīgi - abiem šiem pakalpojumiem ir bezmaksas līmenis

Pēc nelielas piepūles es varēju panākt, lai šie divi pakalpojumi spēlētu kopā. Es daudz paklupu, kad bija jākonfigurē lomas un atļaujas, jo GCP neparedzami uzvedās aiz viņu lomām, bet, par laimi, pierakstīju katru soli, ko es gāju, lai rastu praktisku risinājumu, lai jums nebūtu jātērē vairākas stundas. izmēģiniet kļūdu, lai integrētu Github Actions un Google Cloud Run.



angular 2 bagātināta teksta redaktors

Darba sākšana

Piemērs, kuru es jums darīšu, būs vienkāršs kolbas serveris, kas izvietots, izmantojot Github Actions, uz Google Cloud Run. Pirms šī piemēra izskatīšanas esmu sniedzis vairākus jēdzienus un dažas prasības, kas nepieciešamas, lai to darbinātu lokāli.

Jēdzieni

Github darbības - Github automatizācijas risinājums, kas ļauj piegādāt yaml konfigurāciju, lai automatizētu tādus uzdevumus kā CI/CD darbības.

Google mākonis - Google nodrošināta pārvaldīta platforma bez serveriem, kas tiek samazināta līdz nullei. Lietotājam vienkārši jānodrošina Dockerfile konteinera palaišanai.

Kolba - Python mikro tīmekļa ietvars, ko parasti izmanto Python izstrādātāji.

Prasības

Šajā piemērā es jums parādīšu, lai to palaistu lokāli: jums būs nepieciešamas divas lietas: Python 3.9 un Flask. Tāpat kā ar visiem maniem piemēriem, jūsu dzīve būs daudz mazāk sāpīga, ja instalēsit savas prasības a virtuālā vide caur pip . Ja esat iepazinies ar abiem, es arī ieteiktu to izmantot virtualenvwrapper kam ir patiešām jauki paplašinājumi, kas vēl vairāk vienkāršo jūsu izstrādes vides darbplūsmu.

1. darbība: iespējojiet Google Cloud Run

Ja izlaižat šo soli, jums tiks parādīta šāda kļūda, kas patiesībā ir diezgan informatīva.

Attēls ziņai

Pretējā gadījumā vienkārši noklikšķiniet uz tālāk esošās saites un iespējojiet API.

Jums vajadzētu redzēt ekrānu, kurā ir šāda informācija. Pārliecinieties, vai esat izvēlējies savu projektu, kuru vēlaties izvietot, un tas jāredz navigācijas joslā kreisās puses tuvumā.

Attēls ziņai

2. darbība: iestatiet Google autentifikāciju

Šajā solī mums būs jāizveido pakalpojuma konts, kuram ir atļauju kopums, kas nepieciešams, lai to varētu izvietot pakalpojumā Cloud Run no Github Actions. Tāpēc dodieties uz savu Google projektu un izveidojiet šo pakalpojuma kontu.

Kad pakalpojuma konts ir izveidots, jums jāizvēlas šādas lomas. Es izmēģināju vairākus dažādus veidus, kā noņemt ļoti pieļaujamo projekta skatītāja lomu, taču šī raksta laikā šī loma būs nepieciešama jūsu pakalpojuma kontam, pretējā gadījumā Github izvietošana neizdosies pat tad, ja tā ir veiksmīgi izvietota Cloud Run.

Attēls ziņai

Atliek tikai eksportēt akreditācijas datus savam pakalpojuma kontam. Jums tas būs jāpatur, jo mēs to izmantosim vēlāk, lai sniegtu akreditācijas datus, kas ļaus Github Action izvietot mūsu tīmekļa serveri Cloud Run.

3. darbība. Izveidojiet vai klonējiet parauga kodu izvietošanai

Tagad mēs varētu būt vadībā ar šo soli, bet, tā kā kods patiešām nav mūsu procesa vērtīgā daļa, es plānoju vairāk koncentrēties uz Google Cloud Run un Github Actions integrāciju.

Lai to izdarītu, varat veikt vienu no divām darbībām. Izveidojiet savu Github krātuvi no nulles vai klonējiet zemāk esošo krātuvi.

Kad esat izdarījis šo piezīmi vai izveidojis vienkāršu sveikas pasaules galapunktu. Tālāk sniegtais piemērs ir no mūsu Github repo un sniedz vienkāršu piemēru, kas ļaus mums redzēt, vai mūsu integrācija bija veiksmīga.

import os from flask import Flask, request app = Flask(__name__) @app.route('/') def hello_world(): name = request.args.get('name', 'World') return f'Hello {name}!' if __name__ == '__main__': app.run(debug=True, host='0.0.0.0', port=int(os.environ.get('PORT', 8080)))

Prasības, kas nepieciešamas projekta vietējai darbībai, un Docker konteinerā, kuru mēs izmantosim, tiks ievērotas.

Flask gunicorn

A | _+_ | fails būs jāizveido jūsu projekta pamata līmenī ar šīm atļaujām, lai mēs varētu viegli tos instalēt mūsu konteinerā.

#mākoņi #github #kolba #izstrādātājs #python

virzienā uz datascience.com

Izvietojiet Google mākonī, izmantojot Github darbības

Izvietojiet Google mākonī, izmantojot Github darbības. Es jums parādīšu vienkāršu kolbas serveri, kas izvietots, izmantojot Github Actions, uz Google Cloud Run. Meklējot CI/CD risinājumu, kas atbalstītu vienu no maniem iecienītākajiem produktiem, ko piedāvā Google Cloud Platform (GCP) ar nosaukumu Cloud Run, es gribēju apskatīt Github Actions. Github Actions šādā veidā ir ļoti līdzīgs Cloud Run, jo no jums tiek iekasēta maksa tikai par to, ko izmantojat.