Bu konu, Node.js kodunuz için üçüncü taraf bağımlılıklarını nasıl kuracağınızı, kodu nasıl paketleyeceğinizi ve kodu Function Compute hizmetine nasıl dağıtacağınızı açıklar. Bu konuda örnek olarak üçüncü taraf bir emoji bağımlılık kitaplığı kullanılmıştır.
Hazırlıklar
-
Testler için bir kod dizini oluşturun ve bu dizin için bir ad belirtin. Bu örnekte
mycodeadı kullanılmaktadır.-
Linux ve macOS
Dizini oluşturmak için
mkdir -p /tmp/mycodekomutunu çalıştırın. -
Windows
Bir klasör oluşturun ve adını
mycodeolarak belirleyin.
-
-
mycode dizininde
index.mjsveyaindex.jsdosyasını oluşturun.Aşağıdaki kod bir örneği göstermektedir:
ECMAScript modules
NotBu örnek yalnızca Node.js 18 veya sonraki sürümleri destekler.
// index.mjs 'use strict'; import * as emoji from 'node-emoji' export const handler = async (event, context) => { console.log('hello world'); return emoji.get(':unicorn:'); }CommonJS modules
// index.js 'use strict'; var emoji = require('node-emoji') exports.handler = (event, context, callback) => { console.log('hello world'); callback(null, emoji.get(':unicorn:')); }
npm kullanarak bağımlılıkları yükleme ve kodu dağıtma
Prerequisites
Yerel makinenizde npm yüklüdür ve npm komutlarını çalıştırma izinlerine sahipsiniz.
Function Compute konsolu içinde bir Node.js işlevi oluşturulmuştur. Daha fazla bilgi için bkz. Olay tetiklemeli bir işlev oluşturma.
Procedure
Emoji bağımlılık kitaplığını geçerli dizine yüklemek için
npm install node-emojikomutunumycodedizininde çalıştırın.-
mycodedizinindeki tüm dosyaları paketleyin.-
Linux ve macOS
mycodedizinine gidin vezip code.zip -r ./*komutunu çalıştırın.NotDizin üzerinde okuma ve yazma izinleriniz olduğundan emin olun.
-
Windows
mycodedizinine gidin, tüm dosyaları seçin, dosyalara sağ tıklayın ve ardından bunları bir .zip dosyası olarak sıkıştırın.
NotOluşturduğunuz
index.jsdosyasının paketin kök dizininde bulunduğundan emin olun. -
-
Function Compute konsolunda yönetmek istediğiniz işlevi bulun. İşlev ayrıntıları sayfasının sağ üst köşesinde Upload Code seçeneğine tıklayın ve hazırladığınız ZIP paketini yükleyin.
Kod yüklendikten sonra, kodun doğru olup olmadığını kontrol etmek için Code sekmesindeki Test Function seçeneğine tıklayabilirsiniz.
Function Compute bir Linux ortamında çalışır. Emoji bağımlılık kitaplığını bir Windows veya macOS cihazda kurarken ikili bir dosya dahil edilirse, kod paketi çalıştırılamaz. Bu nedenle, üçüncü taraf bağımlılıkları paketlemek için WebIDE'yi kullanmanızı veya bağımlılıkları yükleyip projeyi dağıtmak için Serverless Devs'i kullanmanızı öneririz. Daha fazla bilgi için bkz. İşlevin üçüncü taraf bağımlılıklarını paketlemek için WebIDE kullanma ve Bağımlılıkları yüklemek ve projeyi dağıtmak için Serverless Devs kullanma.
Serverless Devs kullanarak bağımlılıkları yükleme ve kodu dağıtma
Prerequisites
Serverless Devs ve bağımlılıklar yüklenmiştir. Daha fazla bilgi için bkz. Serverless Devs kullanarak Function Compute ile başlayın.
Serverless Devs yapılandırılmıştır. Daha fazla bilgi için bkz. Serverless Devs'i yapılandırma.
Procedure
cd /tmp/mycodekomutunu çalıştırarakmycodedizinine gidin.-
s.yamldosyasını oluşturun.Aşağıdaki örnek kod, dosyanın nasıl düzenleneceğine ilişkin bir örnek sunar:
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: "emoji" description: 'this is emoji' runtime: "nodejs18" code: ./ handler: index.handler memorySize: 128 timeout: 30 -
package.jsondosyasını ekleyin.Aşağıdaki örnek kod, dosyanın nasıl düzenleneceğine ilişkin bir örnek sunar:
{ "dependencies": { "node-emoji": "^1.11.0" } } -
Bağımlılıkları yüklemek için
sudo s build --use-dockerkomutunu çalıştırın.Çalıştırma tamamlandıktan sonra
mycodedizininde.sdizini oluşturulur ve bağımlılıklar.s/build/artifacts/{functionName}dizinine yüklenir. -
Projeyi dağıtmak için
sudo s deploykomutunu çalıştırın.Çalıştırmadan sonra işlevinizi Function Compute hizmetine dağıtabilirsiniz.
Önemli not
Node.js için özel bir çalışma zamanı kullanırken ve başlangıç komutu olarak derlenmiş bir yürütülebilir dosya belirtirken, WebIDE'de kaynak kodu doğrudan değiştirmek etkili olmaz; çünkü işlev daha önce derlenmiş yürütülebilir dosyayı çalıştırmaya devam eder. Kod değişikliklerini uygulamak için kaynak kodu yerel olarak güncellemeniz, yürütülebilir dosyayı yeniden derleyip paketlemeniz, güncellenen paketi WebIDE'ye yüklemeniz ve ardından işlevi yeniden çalıştırmanız gerekir.
Daha fazla bilgi
Kod paketiniz çok büyükse bağımlılıkları ayırabilir, bir katman oluşturabilir ve yalnızca iş kodunu yükleyebilirsiniz. Daha fazla bilgi için aşağıdaki konulara bakın: