Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Azure İşlevleri, TypeScript uygulamalarınızı Azure'a yayımlamak için birden fazla derleme seçeneğini destekler. Yerel ortamınıza, uygulama bağımlılıklarınıza, TypeScript derleme gereksinimlerine ve çalışma zamanı ihtiyaçlarınıza göre oluşturma yönteminizi seçin.
Bir yapı yöntemi seçmek
| Faktör | Yerel yapım (önerilir) | Uzaktan kurulum |
|---|---|---|
| En iyi kullanım alanları | Karmaşık yapılar, monorepolar, özel araçlar | Basit projeler, hızlı dağıtımlar |
| Paket boyutu | Daha büyük (içerir node_modules) |
Daha küçük (bağımlılıklar Azure'da yüklenir) |
| TypeScript derlemesi | Yerel olarak derlersiniz | Azure otomatik derliyor |
| Yerel ikili uyumluluk | Hedef mimariyi eşleştirmeniz gerekir | Otomatik olarak yönetilir (Linux x64) |
| Build zaman aşımı riski | Yok (bilgisayarınızda çalışır) | Büyük bağımlılık kümeleri için mümkün |
| Control | Tam (herhangi bir derleme aracı, paketleyici, iyileştirici) | Platform varsayılanlarıyla sınırlı |
Özel npm paketleri veya özel kayıtlar için bkz. Özel bağımlılıklar.
Uygulamanızı dağıtım için paketleyin
TypeScript fonksiyon uygulamanızı Azure'a dağıtırken, dağıtım paketiniz şu gereksinimleri karşılamalıdır:
JavaScript çıktısı gerekli: Azure İşlevleri JavaScript çalıştırır, bu yüzden TypeScript dağıtımdan önce veya dağıtım sırasında derlenmiş olmalıdır.
Kök düzeyi
host.json: Birhost.jsondosyanın dağıtım paketinin kökünde ve bir alt klasörde iç içe olmadığından emin olun.package.jsonmainalan: Functions çalışma zamanı, bu alanı başlatıldığında okur ve fonksiyonlarınızı tespit eder. Derlenmiş JavaScript giriş noktanıza işaret etmeli (örneğin,dist/src/index.js).Geliştirme dosyalarını dışla: Gereksiz dosyaları dağıtımdan dışlamak için bir
.funcignoredosya kullanın, bu örnekte olduğu gibi:.git/ .vscode/ local.settings.json test/ .env tsconfig.json src/ node_modules/
Ayrıca konuşlandırmanızı planlarken şu takasları da aklınızda bulundurun:
- Yapı ortamı, üretimle uyumlu olmalıdır: Linux x64 mimarisi için yerel ikili bağımlılıklar oluşturulmalıdır. Uzaktan derleme bunu otomatik olarak çözer; yerel derleme için Docker veya konteynerli bir yapım ortamı kullanmayı düşünün.
- Dağıtım paketi boyutu soğuk başlatmayı etkiler: Büyük bağımlılık kümeleri soğuk başlatma gecikmesini artırır çünkü çalışma zamanı her dosyayı ayrı ayrı yüklemek zorundadır. Uygulamanızı esbuild veya webpack gibi araçlarla daha az dosyaya paketlemek, başlangıç süresini önemli ölçüde azaltabilir.
- Uzaktan derlemenin zaman aşımına bağlı sınırları vardır: Bağımlılık kurulumu veya TypeScript derlemesi platform sınırlarını aşarsa, derleme başarısız olur. Büyük projeler için önceden oluşturulmuş bağımlılıklara sahip yerel bir yapı kullanın.
- Modül başlatmanın zaman sınırları vardır: Node.js modül yüklemesi ve başlatma sırasında fonksiyon indeksleme zamana bağlıdır. Mümkün olduğunda üst düzey ithalatları azaltın veya dinamik ithalatlar kullanın.
Yerel derleme
Eğer açıkça uzaktan derleme talep etmezseniz, makineniz bağımlılıkları yükler ve TypeScript'i derler. Sonra tüm derlenmiş proje ve bağımlılıkları yerel olarak fonksiyon uygulamanıza paketleyip dağıtırsınız.
Yerel derleme, daha büyük bir paket yüklemesi sağlar ancak size derleme süreci üzerinde tam kontrol sağlar ve geliştirme ortamınızla uyumluluğu sağlar.
Yerel derleme kullanan TypeScript projeleri için:
- Ön Derleme TypeScript: Dağıtımdan önce TypeScript kodunuzu yerel derleyin.
-
Bağımlılıkları kur: Bağımlılıkları yerel olarak çalıştırın
npm installveyayarn installkurun. - Yapı doğrulama: Yapı çıktılarınızın yerel ortamınızda doğru çalıştığından emin olun.
- Derlenmiş çıktıyı dağıt: Derlenmiş JavaScript'i bağımlılıklarla birlikte dağıtın.
Yerel derleme için örnek komutlar:
# Install dependencies
npm install
# Compile TypeScript
npm run build
# or
tsc
# Deploy with local build (no remote compilation)
func azure functionapp publish <APP_NAME> --no-build
Aşağıdaki araçları yerel derleme kullanacak şekilde yapılandırabilirsiniz:
-
Azure İşlevleri Temel Araçları:
func azure functionapp publishbayrak--no-buildile kullanın. -
AZ CLI:
az functionapp deployment source config-zip -
GitHub Actions kullanarak sürekli teslim: Esnek Tüketim planı için parametreyi
remote-buildvefalseolarak ayarlayın veya Ayrılmış planlar içinscm-do-build-during-deploymentveenable-oryx-buildparametrelerinifalseolarak ayarlayın.
Uzaktan derleme
Uzaktan derleme kullandığınızda, Functions platformu paket kurulumunu, TypeScript derlemesini yönetir ve uzak çalışma zamanı ortamıyla uyumluluğu sağlar.
Remote build kullanarak, JavaScript dosyalarını eklemenize node_modules veya derlemenize gerek olmadığı için daha küçük bir dağıtım paketi elde edersiniz.
TypeScript projelerini uzaktan derleme kullanarak dağıttığınızda:
-
Otomatik algılama: Platform, TypeScript projelerini varlığına
tsconfig.jsongöre tespit eder. - Derleme: Platform, projenizin TypeScript yapılandırmasını kullanarak TypeScript dosyalarını derler.
-
Bağımlılık kurulumu: Platform, derleme için
dependenciesgibi derleme zamanı paketleri gerektiğinden,devDependenciesiçinden hempackage.jsonhem detypescriptkurar. - Optimizasyon: Platform, nihai dağıtım paketinde yalnızca gerekli dosyaları içerir.
TypeScript uygulamanızı yayınlarken şu araçları kullanarak uzaktan derleme kullanabilirsiniz:
-
Azure İşlevleri Core Tools:
func azure functionapp publishkomutu, Node.js uygulamaları için uzaktan derlemeyi etkinleştirmek üzere--build-remote=truebayrağını gerektirir. -
AZ CLI:
az functionapp deployment source config-zipNode.js uygulamaları için uzaktan derleme etkinleştirilmesi için--build-remote=truebayrak gerekiyor. - Visual Studio Code: Azure İşlevleri: Azure'a Dağıt... komutu her zaman uzak bir derleme kullanır.
-
GitHub Actions kullanarak sürekli teslim: Azure/functions-action@v1 eylemi, Esnek Tüketim planı için
remote-buildparametresitrueolarak ayarlandığında veya Ayrılmış planlar içinscm-do-build-during-deploymentveenable-oryx-buildparametreleritrueolarak ayarlandığında uzak derleme yapar.
Azure Pipelines ile sürekli teslim gibi diğer senaryolarda uzaktan derlemeyi etkinleştirmek için bkz. Uzaktan Derlemeyi Etkinleştirme.
Özel bağımlılıklar
Azure İşlevleri, özel npm kayıtları, özel paketler veya yerel paketler kullanarak özel ve özel npm bağımlılıklarını destekler.
Özel npm kayıt defteriyle uzaktan yapım
Özel paketleriniz özel bir npm kayıt defterinde bulunduğunda, kayıt defterini yapılandırdıktan sonra uzaktan derleme talep edebilirsiniz.
Özel bir kayıt defteri kullanmak için, proje kökünüzde bir .npmrc dosya oluşturun:
registry=https://your-private-registry.com/
//your-private-registry.com/:_authToken=${NPM_TOKEN}
Yerel paketler ve özel modüller
TypeScript Azure Function uygulamaları oluşturulurken yerel paketler ve özel modüller desteklenir.
Uzaktan derleme kullanarak yerel paketleri eklemek için dosyanızda referans package.json verin:
{
"dependencies": {
"@azure/functions": "^4.0.0",
"my-private-package": "file:../my-private-package",
"another-local-package": "file:./packages/local-lib"
}
}
Yerel derleme kullanılarak yerel bağımlılıkları dahil etmek için, bağımlılıkları yerel olarak kurun ve uzaktan derleme devre dışı bırakın:
# Install all dependencies including local ones
npm install
# Build your TypeScript project
npm run build
# Publish with local build
func azure functionapp publish <APP_NAME> --no-build
Çalışma alanı paketlerini kullanın
Monorepo veya npm çalışma alanı kurulumları için, dosyanızdaki package.json npm çalışma alanlarını kullanarak paylaşılan paketlere referans verin:
{
"name": "functions-app",
"dependencies": {
"@azure/functions": "^4.0.0",
"@mycompany/shared-lib": "workspace:*"
},
"workspaces": [
"packages/*"
]
}
Dağıtımdan önce paketle
Dağıtımdan önce tek bir paket oluşturmak için webpack, esbuild veya rollup gibi paketleme araçlarını kullanın:
# Bundle your application
npm run bundle
# Deploy the bundled output
func azure functionapp publish <APP_NAME> --no-build