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:

  1. Gerekli python whl dosyalarını PyPi’den indir
    1. Pandas
    2. Pytz
    3. Numpy
  2. İndirilen whl dosyalarından yeni bir paket (zip dosyası) oluştur
  3. Lambda Function yarat
  4. Lambda layer yarat
  5. Lambda layer ekle
  6. 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

Şekil-1: Pandas paket seçimi

1.2. Pytz

14_download_pytz_whl
Şekil-2: Pytz seçimi

1.3. Numpy

Şekil-3: Numpy paket seçimi

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.

Şekil-4: Whl dosyalarını açmak

Şimdi bir üst dizinden python klasörünü zipleyin.

Şekil-5: Ziplenmiş python klasörü

İş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.

Şekil-6: Lambda Function yaratma

Code kısmına import pandas ekleyin ve test butonuna basın. Bu yeni bir pencere açacaktır.

Şekil-7: Import pandas ve Test

Configure test event

Şekil-8: 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.

Şekil-9: Import hatası

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.

Şekil-10: Create Layer

Layer ismini verdikten sonra python.zip dosyasını yükleyin, ilgili python sürümünü seçmeyi unutmayın.

Şekil-11: Layer konfigürasyonu

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.

Şekil-12: Fonksiyona layer ekleme

Layer seçimi

Şekil-13: 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.

Şekil-14: Başarılı test

Artık Lambda içinda pandas kullanmaya hazırsınız.

Başka bir yazıda görüşene dek hoşça kalın!

Kapak görseli: Photo by Phil on Unsplash

Yazar Hakkında
Toplam 177 yazı
Erkan ŞİRİN
Erkan ŞİRİN
10 yılı aşkın süredir yurtiçi ve yurtdışında sektörde büyük veri mühendisliği, platform yönetimi ve makine öğrenmesi ile ilgili çalışmalar yürütmekte ve aynı zamanda birçok kurum ve şirkete danışmanlık ve eğitimler vermektedir. Çalışma alanları: Data ve MLOps platformları, gerçek zamanlı veri işleme, değişen veriyi yakalama (CDC) ve Lakehouse.
Yorumlar (Yorum yapılmamış)

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

×

Bir Şeyler Ara