Python işleviniz için üçüncü taraf bağımlılıklarını yükleyin, kodu paketleyin ve Function Compute hizmetine dağıtın. Bu kılavuzda örnek uygulama olarak emoji kitaplığını kullanıyoruz.
Dağıtım yöntemi seçme
| Yöntem | En uygun olduğu durumlar | Gereksinimler |
|---|---|---|
| pip + konsol yükleme | Derlenmiş ikili dosya içermeyen, saf Python bağımlılıkları | Python 3, pip3 |
| Serverless Devs + Docker | İkili uzantılara sahip bağımlılıklar (C/C++, cryptography, numpy vb.) | Serverless Devs CLI, Docker |
Bağımlılıklarınız derlenmiş ikili dosyalar içeriyorsa Serverless Devs yöntemini kullanın. macOS veya Windows üzerinde derlenen ikili dosyalar, Function Compute çalışma ortamının kullandığı Linux ortamıyla uyumlu değildir.
Hazırlıklar
Herhangi bir yöntemi uygulamadan önce yerel bir kod dizini ve örnek bir işlev hazırlayın.
-
mycodeadında bir dizin oluşturun.Linux ve macOS:
mkdir -p /tmp/mycodeWindows:
mycodeadında bir klasör oluşturun
-
mycodedizininde aşağıdaki içeriğe sahipindex.pydosyasını oluşturun:from emoji import emojize def handler(event, context): return emojize(":thumbs_up:")
Yöntem 1: pip ve konsolu kullanma
Ön koşullar
Başlamadan önce şunlara sahip olduğunuzdan emin olun:
Yerel makinenizde Python 3 yüklü olmalı ve
pip3komutunu çalıştırma izniniz bulunmalıdırFunction Compute konsolunda bir Python işlevi oluşturmuş olmalısınız. Kurulum talimatları için bkz. Olay işlevi oluşturma
Bağımlılıkları yükleme ve karşıya yükleme
-
emojibağımlılığınımycodedizinine yükleyin:pip3 install emoji -t .Bu komutu
mycodedizini içinde çalıştırın.-t .bayrağı, paketi genel site-packages yerine geçerli dizine yükler. -
mycodeiçindeki tüm dosyaları bir ZIP dosyasında paketleyin.-
Linux ve macOS:
mycodedizinine gidin ve şu komutu çalıştırın:zip code.zip -r ./*NotNot: Dizinde okuma ve yazma izinlerinizin bulunduğundan emin olun.
Windows:
mycodedizinindeki tüm dosyaları seçin, sağ tıklayın ve bunları bir.zipdosyası olarak sıkıştırın.
-
-
ZIP dosyasını Function Compute konsolunda karşıya yükleyin:
Hedef işlevi bulun ve Function Details sayfasına gidin.
Code sekmesine tıklayın.
Upload Code > Upload ZIP Package öğelerine tıklayın, ardından
code.zipdosyasını seçin.Save and Deploy seçeneğine tıklayın.
Function Compute Linux ortamında çalışır. emoji kitaplığı (veya başka bir bağımlılık) derlenmiş ikili dosyalar içeriyorsa, macOS veya Windows'ta yüklendiğinde paket çalışmayabilir. Bu durumda, üçüncü taraf bağımlılıkları paketlemek için WebIDE kullanmanızı veya 2. Yöntemi (Serverless Devs + Docker) uygulamanızı öneririz.
Yöntem 2: Serverless Devs ve Docker kullanma
Serverless Devs, bağımlılıkları Function Compute Linux çalışma zamanıyla eşleşen bir Docker kapsayıcısı içinde derler; bu sayede ikili uyumluluk sağlanır.
Ön koşullar
Başlamadan önce şunlara sahip olduğunuzdan emin olun:
Derleme ve dağıtma
-
mycodedizinine gidin:cd /tmp/mycode -
Aşağıdaki içeriğe sahip
s.yamldosyasını oluşturun:edition: 3.0.0 name: fcDeployApp access: "default" vars: # The global variables. region: "cn-hangzhou" resources: hello_world: component: fc3 # The name of the component. props: region: ${vars.region} functionName: "emojipy" description: 'this is emoji' runtime: "python3" code: ./ handler: index.handler memorySize: 128 timeout: 30 environmentVariables: PYTHONUSERBASE: /code/python # Add environment variables to obtain dependencies.code.Aşağıdaki tabloda bu projedeki temel dosyalar açıklanmaktadır:
Dosya Amacı Gerekli mi? s.yamlServerless Devs proje yapılandırması Evet index.pyİşlev işleyici kodu Evet requirements.txtYüklenecek Python bağımlılıkları Evet -
Aşağıdaki içeriğe sahip
requirements.txtdosyasını oluşturun:emoji==2.0.0 -
Bağımlılıkları bir Docker kapsayıcısı içinde derleyin:
sudo s build --use-dockerDerleme tamamlandıktan sonra bağımlılıklar
./pythondizinine yüklenir. -
İşlevi dağıtın:
sudo s deployDağıtım tamamlandığında işlev Function Compute hizmetinde kullanılabilir hale gelir.
Sonraki adımlar
Bağımlılıkları her kod paketinde ayrı ayrı paketlemek yerine, birden çok işlev arasında paylaşmak için Function Compute katmanlarını kullanın: