AWS Lambda Function içinde Pandas Kullanmak
Selamlar. Bu yazımızda AWS Lambda function içinde nasıl pandas kullanabiliriz onu öğreneceğiz.
Python pandas veri manipülasyonunda en yaygın kullanılan paketlerden birisi. Kendi bilgisayarımızda, notebook sunucusunda, Google Colab’da ve başka bir çok yerde kullanıyoruz. Kullanmak için de çok zahmet çekmiyoruz. Ya kullanacağımız ortamda çoktan yüklü oluyor ya da pip install pandas deyip kurup geçiyoruz.
AWS pazar payı en yüksek bulut servis sağlayıcısı. Lambda function ise AWS servisleri içinde en sık kullanılanlardan birisi. Serverless olması ve kullandığın kadar öde fiyatlandırma politikası onu cazip kılan yönlerden. Eğer Lambda içinde pandas paketini kullanmak isterseniz hiç öyle pip install pandas kurar geçerim diye düşünmeyin. Kazın ayağı hiç de öyle değil. Bunun bir yazı olacak kadar mesele olmasının da sebebi bu zaten. Hadi gelin Lamda’ya pandas kuralım. Adımlarımız şu şekilde olacak:
- Gerekli python whl dosyalarını PyPi’den indir
- İndirilen whl dosyalarından yeni bir paket (zip dosyası) oluştur
- Lambda Function yarat
- Lambda layer yarat
- Lambda layer ekle
- Test et
1. Gerekli python whl dosyalarını PyPi’den indir
Pandas ve onun temel gereksinimi olan iki paketi (pytz ve numpy) inidrelim. https://pypi.org/ adresine gidiniz -> arama kutusundan paket ismini yazınız -> paketi seçiniz (örn pandas 1.4.3) -> sol menüden Download files tıklayınız. Lambda için hangi python kullanacak iseniz (bu yazıda 3.8) ilgili sürümün linux x86_64 paketini indiriniz.
1.1. Pandas
1.2. Pytz
1.3. Numpy
2. İndirilen whl dosyalarından yeni bir paket (zip dosyası) oluştur
Windows Dosya Gezgini (File Explorer) ile önce boş bir python klasörü oluşturun sonra 7zip veya winrar yardımı whl dosyalarını python klasörü içine açın. İşlem sonrası python klasörü aşağıdaki gibi olmalıdır. Sakın bu klasöre farklı bir isim vermeyin, python olmalıdır.
Şimdi bir üst dizinden python klasörünü zipleyin.
İşte bu python.zip dosyasını birazdan Lambda’ya layer olarak ekleyeceğiz.
3. Lambda Function yarat
AWS hesabınıza web konsoldan giriniz, lambda servisini seçip yeni bir lambda function yaratınız.
Code kısmına import pandas ekleyin ve test butonuna basın. Bu yeni bir pencere açacaktır.
Configure test event
Değişiklikleri kaydetmek (kod içindeki) ve pandas import hatasını görmek için sırasıyla Deploy ve Test butonlarına basınız.
Beklediğimiz gibi Lambda pandas paketini tanımıyor.
4. Lambda layer yarat
Lambda sol menüsünden Layers seçtikten sonra Create Layer butonuna tıklayınız.
Layer ismini verdikten sonra python.zip dosyasını yükleyin, ilgili python sürümünü seçmeyi unutmayın.
Create butonuna tıklayarak layer oluşturunuz.
5. Lambda layer ekle
Az önce tanımladığımız layer’ı şimdi Lambda Function’a tanıtacağız. Tekrar function sayfasına dönelim. Aşağıda Add a layer göreceksiniz. Ona tıklayarak ekleme işlemini başlatalım.
Layer seçimi
Versiyon numarası denemelerinize göre farklılık gösterebilir. En son sürümü seçersiniz.
6. Test et
Layer ekledikten sonra testimizi tekrar yapabiliriz. Test butonuna tıkladığımızda import hatası almamalıyız. Sonuç aşağıdaki gibi olmalıdır.
Artık Lambda içinda pandas kullanmaya hazırsınız.
Başka bir yazıda görüşene dek hoşça kalın!