Hogyan készítsünk kiszolgáló nélküli alkalmazást az AWS Chalice használatával

Nemrég találkoztam az AWS Chalice-val, és elbűvölt az általa kínált egyszerűség és használhatóság.

Az AWS Chalice egy szerver nélküli keretrendszer, amely lehetővé teszi szerver nélküli alkalmazások felépítését a Python használatával, és az Amazon API Gateway és az AWS Lambda használatával az AWS-en.

Úgy döntöttem, hogy kijátszom vele, és néhány percen belül valóban létrehozhattam és telepíthettem egy minta REST API-t az AWS-en.

Ebben a cikkben áttekintem azokat a lépéseket, amelyek szükségesek egy olyan kiszolgáló nélküli alkalmazás létrehozásához és telepítéséhez, amely a legfrissebb híreket kapja a Google Hírekből a Chalice segítségével.

Előfeltételek

Az oktatóanyaghoz AWS-fiók szükséges. Ha még nincs, akkor hozzon létre egyet. Alkalmazásunk csak a szabad réteg erőforrásait fogja felhasználni, így a költségeknek nem lehet kérdés.

Be kell állítania a biztonságot, és felhasználókat és szerepeket kell létrehoznia a hozzáféréshez.

Az AWS hitelesítő adatok konfigurálása

Chalice az AWS parancssori interfészt (CLI) használja a kulisszák mögött a projekt telepítéséhez. Ha korábban nem használta az AWS CLI-t az AWS-erőforrásokkal való munkavégzéshez, telepítheti az itt található útmutatásokat követve.

A telepítés után be kell állítania az AWS CLI-t az AWS-fiók hitelesítő adatainak használatához.

A Chalice telepítése

Ezután telepítenie kell a Chalice-t. Ebben az oktatóanyagban a Python 3-at fogjuk használni, de a Python bármelyik verzióját használhatja, amelyet az AWS Lambda támogat.

Ellenőrizze a Python telepítését

Telepítse a Chalice-t

Ellenőrizze a kehely telepítését

Hogyan hozzunk létre egy projektet

Ezután futtassa a chalice new-projectparancsot egy új projekt létrehozásához.

Ez létrehoz egy daily-newsmappát az aktuális könyvtárban. Láthatja, hogy Chalice több fájlt hozott létre ebben a mappában. Csak a cikkben dolgozunk a app.pyés requirements.txtfájlokkal.

Vessünk egy pillantást a app.pyfájl tartalmára :

A new-projectparancs létrehozott egy minta alkalmazást daily-news. Egyetlen nézetet határoz meg /, amely visszahozza a JSON-testet, {"hello": "world"}amikor meghívják . Most módosíthatja ezt a sablont, és további kódot adhat hozzá a Google-tól származó hírek olvasásához.

A Google RSS-hírcsatornáját fogjuk használni hírünk megszerzéséhez. Mivel az RSS-hírcsatornák XML formátumú adatokból állnak, az XML adatok elemzéséhez szükségünk lesz egy Gyönyörű Soup nevű Python könyvtárra.

A Beautiful Soup és annak XML-elemző könyvtárát a következőképpen telepítheti pip:

Következő hozzá a következő import app.py. Ez lényegében hozzáadja az importálást a urllibHTTP hívások kezdeményezéséhez és bs4az XML elemzéséhez.

Ezután hozzá kell adnia egy módszert az RSS-hírcsatorna letöltéséhez a Google-tól. urllibHTTP-hívást fogunk használni a Google RSS-végpontjához, és megkapjuk a választ. Ezután elemezheti a választ, hogy kivonja a hír címét és a közzététel dátumát, és létrehozhassa a hírek listáját.

Ehhez adja hozzá a következő kódot a következőhöz app.py:

Frissítse az index metódust a metódus app.pymeghívására, és ennek eredményeként adja vissza a hírek listáját.

Vegye figyelembe, hogy a kód működéséhez néhány függőséget telepített. Ezeket a függőségeket helyben telepítették, és futás közben nem lesznek elérhetőek az AWS Lambda tároló számára.

Ahhoz, hogy elérhetővé tegye őket az AWS Lambda számára, be kell csomagolnia őket a kódjával együtt.

Ehhez adja hozzá a következőket a requirements.txtfájlhoz. A Chalice ezeket a függőségeket a kód részeként csomagolja az összeállítás során, és a Lambda funkció részeként tölti fel.

A projekt telepítése

Telepítsük ezt az alkalmazást. A daily-newsmappából futtassa a chalice deployparancsot.

Ez telepíti az API-t az Amazon API Gateway-en, és új funkciót hoz létre az AWS Lambda-n.

Próbáljuk meg most elérni az API-t. Ezzel curlmeghívhatja az API-átjáró URL-jét, amelyet közben kapott chalice deploy. Az API hívás válasza a hírek listáját adja vissza, az alábbiak szerint.

Hogyan takarítsuk meg az erőforrásokat

A chalice deleteparanccsal törölheti a parancs futtatásakor létrehozott összes erőforrást is chalice deploy.

Következtetés

Gratulálunk! Most telepített egy kiszolgáló nélküli alkalmazást az AWS-re a Chalice segítségével. Nem volt túl nehéz, igaz?

Most folytathatja a app.pyfájl bármilyen módosítását, és újra chalice deployfuttathatja a módosítások áttelepítését.

A Chalice segítségével integrálhatja a szerver nélküli alkalmazást az Amazon S3, Amazon SNS, Amazon SQS és más AWS szolgáltatásokkal. Vessen egy pillantást az oktatóanyagokra, és folytassa a felfedezést. Az oktatóanyag teljes forráskódja itt található.

Köszönöm, hogy eddig velem maradtál. Remélem tetszett a cikk. Kapcsolatba léphet velem a LinkedIn-en, ahol rendszeresen megvitatom a technológiát és az életet. Vessen egy pillantást a Medium néhány egyéb cikkére is. Jó olvasást ?