Ensimmäisessä harjoituksessa tutustutaan Google App Engineen. Tarkoituksena on saada kehitysympäristö pystytettyä ja luoda pieni Hello World -sovellus. Sovellus voidaan täten suorittaa paikallisesti tai julkaista pilveen.
App Engine -sovelluksia luodakseen täytyy olla Google-tili sekä asentaa Python 2.7.x sekä App Engine SDK for Python. Sovelluksen tiedostoja voi periaatteessa muokata millä tahansa editorilla, ja sitten ajaa SDK:n komentorivityökaluilla. SDK:n mukana tulee ajoympäristö, jossa sovelluksia voi ajaa omalla koneellaan ennen julkaisua App Enginen pilveen.
Käydään tässä läpi kaksi vaihtoehtoista kehitysympäristön asennustapaa.
Luultavasti paras vaihtoehto on asentaa Python 2.7.x ja Google Cloud SDK omalle koneelle.
Yksi varsin mukava vaihtoehto kehitysympäristöksi on asentaa yllä mainittujen lisäksi Eclipse ja siihen PyDev-plugin (asenna Eclipsessä: Help -> Install New Software -> Work With: http://pydev.org/updates -> PyDev -> ...). Tällöin saa Python-kehitystä auttavia juttuja ja App Engine -sovelluksia voi ajaa ja julkaista suoraan Eclipsestä käsin.
Jos ei jostain syystä halua/voi asentaa kehitysympäristöä omalle koneelle, voi App Engine -sovelluksia tehdä Lintulassakin.
Lintulaan on asennettu App Engine SDK sekä Python 2.7. SDK:n sovellukset sijaitsevat poluissa
/home/palpo/bin/dev_appserver
ja /home/palpo/bin/appcfg
.
Voit esimerkiksi lisätä seuraavan rivin ~/.bash_profile
-tiedostoosi:
export PATH="$PATH:/home/palpo/bin/"
jolloin sovelluksia voi ajaa paikallisesti näin:
dev_appserver helloworld
ja julkaista näin:
appcfg --noauth_local_webserver -A helloworld_sovellukseni_id update helloworld
(Jotta PATH-muutos tulee heti voimaan voit komentaa: source ~/.bash_profile
)
Jos käytät Lintulaa SSH-yhteyden yli ja haluat testata palvelua oman koneesi graafisella selaimella joudut turvautumaan porttiforwardointiin. Forwardointi on helppoa tehdä esim. Puttyllä.
- Puttyn asetuksissa siirry Connection->SSH->Tunnels välilehdelle.
- Kirjoita Add new forwarded port -kohtaan sourceksi valitsemasi PORTTINUMERO ja destinaatioksi arokorppi.cs.tut.fi:APPENGINE_PORTTI ja radiobuttonista local.
- Nyt voit yhdistää arokorpilla olevaan palveluun omalla koneellasi olevalla selaimella kirjoittamalla selaimen osoitekenttään http://localhost:PORTTINUMERO/
Jotta SDK:n ajama sovellus kuuntelee muitakin kuin lokaaleja yhteyksiä, on sitä käynnistettäessä määriteltävä host (0.0.0.0 = kaikki). Porttina voi käyttää vaikka jotain väliltä 40000-50000 joka ei ole kenenkään muun käytössä.
dev_appserver . --port 40404 --host 0.0.0.0
Voi aloittaa vaikkapa linkistä:
-
Getting started with Python 2.7
- SDK:n asennuksen jälkeen voi tehdä pienen Hello World -sovelluksen.
-
App Engine sisältää webapp2-sovelluskehyksen (tarkempi dokumentaatio), joka reitittää HTTP-pyynnöt sovellukselle. Muitakin sovelluskehyksiä (mm. Django, Flask) voi käyttää. Webapp2 on kuitenkin yksinkertainen, oletuksena mukana App Enginessä ja riittää hyvin mm. harjoitustyön tekoon.
-
App Engine -sovelluksiaan voi hallinnoida ja tarkkailla täällä ja/tai täällä.
- Asenna ja konffaa tarvittavat työkalut App Engine -sovellusten tekoon
- Luo yksinkertainen App Engine -webbisovellus, joka vaikkapa tulostaa tekstin "Moi".
- Aja sovellus paikallisessa kehitysympäristössä
- Julkaise sovellus pilveen, niin että se näkyy osoitteessa
<sovelluksen nimi>.appspot.com
- Lisää muutoksesi GitHub:iin