Kodunuzu ve vendor dizinini bir ZIP dosyasında paketleyerek üçüncü taraf bağımlılıklara sahip bir PHP işlevini Function Compute'a dağıtın. Bu kılavuzda örnek bağımlılık olarak Nette\Utils kullanılır; Function Compute konsolu ile Composer ve Serverless Devs olmak üzere iki dağıtım yöntemi ele alınır.
Kodunuzu hazırlayın
Dağıtımdan önce işlev işleyicinizle birlikte yerel bir kod dizini kurun.
-
İşlev kodunuz için
mycodeadlı bir dizin oluşturun.Linux ve macOS:
mkdir -p /tmp/mycodekomutunu çalıştırın.Windows:
mycodeadlı bir klasör oluşturun.
-
mycodedizininde aşağıdaki içeriğe sahipindex.phpdosyasını oluşturun:<?php require_once __DIR__ . '/vendor/autoload.php'; use Nette\Utils\Arrays; function handler($event, $context) { return Arrays::contains([1, 2, 3], 1); }
Yöntem 1: Composer kullanma
Bağımlılıkları Composer ile yerel olarak yükleyin, kodu bir ZIP dosyasında paketleyin ve Function Compute konsolu aracılığıyla yükleyin.
Ön koşullar
Başlamadan önce şunlara sahip olduğunuzdan emin olun:
PHP ve Composer yüklü olmalı ve Composer komutlarını çalıştırma iznine sahip olmalısınız. Kurulum talimatları için Composer sayfasına bakın.
(İsteğe bağlı) Function Compute konsolunda oluşturulmuş bir PHP işlevi. Bkz. Olay işlevi oluşturma.
Bağımlılıkları yükleme ve dağıtma
-
mycodedizinindecomposer.jsondosyasını oluşturun:{ "require": { "nette/utils": "v3.2.5" } } mycodedizininde bağımlılıkları yüklemek içincomposer installkomutunu çalıştırın. Komut tamamlandığında Composer,mycodeiçinde bircomposer.lockdosyası ve birvendordizini oluşturur. İndirdiğiniz bağımlılıklarvendoriçinde depolanır.-
mycodeiçindeki tüm dosyaları bir ZIP dosyasında paketleyin.-
Linux ve macOS:
mycodedizinine gidin ve aşağıdaki komutu çalıştırın:zip code.zip -r ./*Not: Dizin üzerinde okuma ve yazma izinlerinizin olduğundan emin olun.
Windows:
mycodedizinini açın, tüm dosyaları seçin, sağ tıklayın ve bunları bir ZIP dosyasında sıkıştırın.
Not:
index.phpdosyasının paketin kök dizininde bulunduğundan emin olun. -
Function Compute konsolunda güncellemek istediğiniz işlevi açın. İşlev ayrıntıları sayfasının sağ üst köşesinde Upload Code öğesine tıklayın ve ZIP dosyasını seçin. Alternatif olarak, bir işlev oluştururken de ZIP dosyası yükleyebilirsiniz. Bkz. Olay işlevi oluşturma.
İşlev ayrıntıları sayfasındaki Code sekmesinde dağıtımı doğrulamak için Test Function öğesine tıklayın.
Yöntem 2: Serverless Devs kullanma
ZIP dosyasını manuel olarak yönetmeden işlevinizi oluşturmak ve dağıtmak için Docker ile Serverless Devs'i kullanın.
Ön koşullar
Başlamadan önce aşağıdakileri tamamladığınızdan emin olun:
Bağımlılıkları yükleme ve dağıtma
-
mycodedizininde aşağıdaki içeriğe sahips.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} # For information about how to use variables, visit https://docs.serverless-devs.com/serverless-devs/yaml#%E5%8F%98%E9%87%8F%E8%B5%8B%E5%80%BC. functionName: "testphp" description: 'this is a test' runtime: "php7.2" code: ./ handler: index.handler memorySize: 128 timeout: 30 -
mycodedizinindecomposer.jsondosyasını oluşturun:{ "require": { "nette/utils": "^3.0" } } -
Function Compute çalışma zamanı ortamıyla eşleşen bir Docker kapsayıcısında bağımlılıkları yüklemek için aşağıdaki komutu çalıştırın:
sudo s build --use-dockerKomut tamamlandığında Serverless Devs, bağımlılıkları ve kodu
./vendordizinine yükler. -
İşlevi dağıtmak için aşağıdaki komutu çalıştırın:
sudo s deployKomut tamamlandığında işleviniz Function Compute'a dağıtılır.
Sonraki adımlar
Bağımlılıkları her dağıtıma paketlemek yerine yönetmek için Function Compute katmanlarını kullanın. Bkz. Özel katman oluşturma.