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.
Bu hızlı başlangıçta, Bir Blob Depolama kapsayıcısında olaylara yanıt veren bir uygulama oluşturmak için Visual Studio Code kullanacaksınız. Öykünücü kullanarak kodu yerel olarak test ettikten sonra, Azure İşlevleri'nde Flex Consumption planında çalışan yeni bir sunucusuz işlev uygulamasına dağıtırsınız.
Proje, proje kodunuzu yerel olarak başlatmayı ve doğrulamayı ve kodunuzu Azure'a dağıtmayı kolaylaştırmak için Visual Studio Code ile Azure Geliştirici CLI (azd) uzantısını kullanır. Bu dağıtım, güvenli ve ölçeklenebilir Azure İşlevleri dağıtımları için geçerli en iyi yöntemleri izler.
Bu makale, Azure İşlevleri için Node.js programlama modelinin 4. sürümünü destekler.
Bu makale, Azure İşlevleri için Python programlama modelinin 2. sürümünü destekler.
Önkoşullar
Aktif bir aboneliğe sahip bir Azure hesabı. Ücretsiz bir hesap oluşturun.
Visual Studio Code, desteklenen platformlardan birinde.
Visual Studio Code için Azure İşlevleri uzantısı. Bu uzantı için Azure İşlevleri Temel Araçları gerekir. Bu araç yerel olarak kullanılamadığında uzantı, paket tabanlı bir yükleyici kullanarak yüklemeyi dener. Ayrıca, komut paletinden çalıştırarak
Azure Functions: Install or Update Azure Functions Core ToolsCore Tools paketini yükleyebilir veya güncelleştirebilirsiniz. Yerel bilgisayarınızda npm veya Homebrew yüklü değilse, bunun yerine Core Tools'u el ile yüklemeniz veya güncelleştirmeniz gerekir.
Java Geliştirme Seti, sürüm 8, 11, 17 veya 21 (Linux).
Apache Maven, sürüm 3.0 veya üzeri.
-
18.x veya üzerini Node.js.
node --versionkomutunu kullanarak sürümünüzü kontrol edin.
Visual Studio Code için PowerShell uzantısı.
Azure İşlevleri tarafından desteklenen Python sürümleri. Daha fazla bilgi için bkz . Python'ı yükleme.
- Visual Studio Code için Azure Geliştirici CLI uzantısı .
REST İstemcisi uzantısı veya HTTP isteklerini güvenli bir şekilde yürütmek için kullandığınız eşdeğer bir REST aracı.
Projeyi başlatma
azd init Şablondan yerel bir Azure İşlevleri kod projesi oluşturmak için komut paletinden komutunu kullanın.
Visual Studio Code'da, projenizi oluşturmak istediğiniz klasörü veya çalışma alanını açın.
Komut paletini açmak için F1 tuşuna basın, komutunu
Azure Developer CLI (azd): Initialize App (init)arayın ve çalıştırın, ardından Şablon seçin'i seçin.Geçerli klasörü veya çalışma alanını başlatırken
azdbiraz gecikme olabilir.
İstendiğinde Şablon seçin seçeneğini tercih edin, ardından
Azure Functions C# Event Grid Blob Trigger using Azure Developer CLIöğesini arayın ve seçin.Terminalden istendiğinde,
blobevents-dotnetgibi benzersiz bir ortam adı girin.Bu komut , proje dosyalarını şablon deposundan çeker ve projeyi geçerli klasör veya çalışma alanında başlatır.
İstendiğinde Şablon seçin seçeneğini tercih edin, ardından
Azure Functions Python Event Grid Blob Trigger using Azure Developer CLIöğesini arayın ve seçin.Terminalden istendiğinde,
blobevents-pythongibi benzersiz bir ortam adı girin.Bu komut , proje dosyalarını şablon deposundan çeker ve projeyi geçerli klasör veya çalışma alanında başlatır.
İstendiğinde Şablon seçin seçeneğini tercih edin, ardından
Azure Functions TypeScript Event Grid Blob Trigger using Azure Developer CLIöğesini arayın ve seçin.İstendiğinde, örneğin
blobevents-typescriptgibi benzersiz bir ortam adı girin.Bu komut , proje dosyalarını şablon deposundan çeker ve projeyi geçerli klasör veya çalışma alanında başlatır.
İstendiğinde Şablon seçin seçeneğini tercih edin, ardından
Azure Functions Java Event Grid Blob Trigger using Azure Developer CLIöğesini arayın ve seçin.İstendiğinde, örneğin
blobevents-javagibi benzersiz bir ortam adı girin.Bu komut , proje dosyalarını şablon deposundan çeker ve projeyi geçerli klasör veya çalışma alanında başlatır.
İstendiğinde Şablon seçin seçeneğini tercih edin, ardından
Azure Functions PowerShell Event Grid Blob Trigger using Azure Developer CLIöğesini arayın ve seçin.İstendiğinde, örneğin
blobevents-powershellgibi benzersiz bir ortam adı girin.Bu komut , proje dosyalarını şablon deposundan çeker ve projeyi geçerli klasör veya çalışma alanında başlatır.
ortamında azd, ortamınız uygulamanız için benzersiz bir dağıtım bağlamı tutar ve birden fazla dağıtım bağlamı tanımlayabilirsiniz. Ayrıca Azure'da oluşturduğunuz kaynak grubunun adının bir parçasıdır.
local.settings.json dosyasını ekleme
İşlevler, yerel olarak çalışırken konağı yapılandırmak için local.settings.json dosyasına ihtiyaç duyar.
Uygulama klasörüne gitmek için
srcşu komutu çalıştırın:cd src
Bu JSON verilerini içeren klasörde local.settings.json
srcadlı bir dosya oluşturun:{ "IsEncrypted": false, "Values": { "AzureWebJobsStorage": "UseDevelopmentStorage=true", "FUNCTIONS_WORKER_RUNTIME": "dotnet-isolated", "PDFProcessorSTORAGE": "UseDevelopmentStorage=true" } }
Bu JSON verilerini içeren klasörde local.settings.json
srcadlı bir dosya oluşturun:{ "IsEncrypted": false, "Values": { "AzureWebJobsStorage": "UseDevelopmentStorage=true", "FUNCTIONS_WORKER_RUNTIME": "java", "PDFProcessorSTORAGE": "UseDevelopmentStorage=true" } }
Bu JSON verilerini içeren klasörde local.settings.json
srcadlı bir dosya oluşturun:{ "IsEncrypted": false, "Values": { "AzureWebJobsStorage": "UseDevelopmentStorage=true", "FUNCTIONS_WORKER_RUNTIME": "node", "PDFProcessorSTORAGE": "UseDevelopmentStorage=true" } }
Bu JSON verilerini içeren klasörde local.settings.json
srcadlı bir dosya oluşturun:{ "IsEncrypted": false, "Values": { "AzureWebJobsStorage": "UseDevelopmentStorage=true", "FUNCTIONS_WORKER_RUNTIME": "powershell", "FUNCTIONS_WORKER_RUNTIME_VERSION": "7.2", "PDFProcessorSTORAGE": "UseDevelopmentStorage=true" } }
Bu JSON verilerini içeren klasörde local.settings.json
srcadlı bir dosya oluşturun:{ "IsEncrypted": false, "Values": { "AzureWebJobsStorage": "UseDevelopmentStorage=true", "FUNCTIONS_WORKER_RUNTIME": "python", "PDFProcessorSTORAGE": "UseDevelopmentStorage=true" } }
Sanal ortam oluşturma ve etkinleştirme
src klasöründe şu komutları çalıştırarak adlı .venvbir sanal ortam oluşturun ve etkinleştirin:
python3 -m venv .venv
source .venv/bin/activate
Python Venv paketini Linux dağıtımınıza yüklemezse aşağıdaki komutu çalıştırın:
sudo apt-get install python3-venv
Yerel depolama öykünücüsü ayarlama
Azure kaynaklarını oluşturmadan ve kullanmadan önce kod projenizi yerel olarak çalıştırmak için Azurite öykünücüsünüzü kullanın.
F1 tuşuna basın. Komut paletinde, yerel depolama öykünücüsü başlatmak için komutunu
Azurite: Startarayın ve çalıştırın.Azure alanında Çalışma Alanı>Ekli Depolama Hesapları>Yerel Öykünücüsü'ni genişletin, Blob Kapsayıcıları'na sağ tıklayın (Mac'e Ctrl tuşunu basılı tutarak tıklayın), Blob Kapsayıcısı Oluştur... öğesini seçin ve yerel öykünücüde şu iki blob depolama kapsayıcısını oluşturun:
-
unprocessed-pdf: tetikleyicinin depolama olaylarını izlediği kapsayıcı. -
processed-pdf: işlevin işlenen blobları çıkış olarak gönderdiği kapsayıcı.
-
Blob Kapsayıcıları'nı genişletin, işlenmemiş pdf'ye sağ tıklayın (Mac'e Ctrl tuşunu basılı tutarak tıklayın), Dosyaları Karşıya Yükle...'yi seçin, kök dizini kabul etmek için Enter tuşuna basın ve proje klasöründen
dataPDF dosyalarını karşıya yükleyin.
Yerel olarak çalışırken, REST kullanarak olay aboneliğinden bir ileti alan işlevi simüle edip işlevi tetikleyebilirsiniz.
İşlevi yerel olarak çalıştırma
Visual Studio Code, Azurite öykünücüsü kullanarak bu projeyi yerel geliştirme bilgisayarınızda çalıştırmanıza olanak sağlamak için Azure functions core araçlarıyla tümleştirilir. Ortam değişkeni PDFProcessorSTORAGE, depolama hesabı bağlantısını tanımlar ve bu, yerel olarak çalıştırılırken local.settings.json dosyasında "UseDevelopmentStorage=true" olarak ayarlanmıştır.
Bu komutu proje klasöründen
srcbir terminal veya komut isteminde çalıştırın:func startmvn clean package mvn azure-functions:runnpm install func startnpm install npm startİşlevler ana bilgisayarı başlatıldığında, tetikleyicinin adını ve tetikleyici türünü terminal çıkışına yazar. İşlevler'de proje kök klasörü host.json dosyasını içerir.
Temel Araçlar hala Terminal'de çalışırken, projenizdeki
test.httpdosyasını açın ve blob olayı webhook'una bir test blob olayı göndererek İstek Gönder'i seçin, böylece işlevi tetikleyin.Bu adım, yerel ortamda çalışırken bir olay aboneliğinden bir olayın alımını simüle eder ve bu süreçte istek ve işlenen dosya bilgilerini günlüklerde görmeniz beklenir. REST İstemcisi kullanmıyorsanız, yükü içinde
test.httpolan uç noktayı çağırmak için başka bir güvenli REST aracı kullanmanız gerekir.Blob kapsayıcısının Çalışma Alanı alanında processed-pdf dosyasını genişletin ve işlevin PDF dosyasını işlediğini ve bir
processed-ön ek ile kopyalandığını doğrulayın.İşiniz bittiğinde, ana bilgisayar işlemini durdurmak
func.exeiçin terminal penceresinde Ctrl+C tuşlarına basın.
Kodu gözden geçirme (isteğe bağlı)
ProcessBlobUpload.cs proje dosyasında Event Grid blob tetikleyicisini tanımlayan kodu gözden geçirebilirsiniz. işlevi aşağıdakilerin nasıl yapılacağını gösterir:
- Gerçek zamanlıya yakın işleme için
BlobTriggerileSource = BlobTriggerSource.EventGridkullanın -
BlobClientkaynağa veBlobContainerClienthedefe bağlanın - Akışlar kullanarak blob içeriğini işleme ve başka bir kapsayıcıya kopyalama
Event Grid blob tetikleyicisini tanımlayan kodu function_app.py proje dosyasında gözden geçirebilirsiniz. işlevi aşağıdakilerin nasıl yapılacağını gösterir:
- Gerçek zamanlıya yakın işleme için
@app.blob_triggerilesource="EventGrid"kullanın - parametresini kullanarak blob içeriğine
InputStreamerişme - Azure Depolama SDK'sını kullanarak işlenen dosyaları hedef kapsayıcıya kopyalama
Event Grid blob tetikleyicisini tanımlayan kodu processBlobUpload.ts proje dosyasında gözden geçirebilirsiniz. işlevi aşağıdakilerin nasıl yapılacağını gösterir:
- Gerçek zamanlıya yakın işleme için
app.storageBlob()ilesource: 'EventGrid'kullanın - Node.js Azure Depolama SDK'sını kullanarak blob içeriğine erişme
- Dosyaları zaman uyumsuz olarak işleme ve hedef kapsayıcıya kopyalama
ProcessBlobUpload.java proje dosyasında Event Grid blob tetikleyicisini tanımlayan kodu gözden geçirebilirsiniz. işlevi aşağıdakilerin nasıl yapılacağını gösterir:
- Gerçek zamanlıya yakın işleme için
@BlobTriggerilesource = "EventGrid"kullanın - Parametresini kullanarak
BlobInputStreamblob içeriğine erişme - Java için Azure Depolama SDK'sını kullanarak işlenen dosyaları hedef kapsayıcıya kopyalama
Event Grid blob tetikleyicisini tanımlayan kodu ProcessBlobUpload/run.ps1 proje dosyasında ve ilgili function.jsongözden geçirebilirsiniz. işlevi aşağıdakilerin nasıl yapılacağını gösterir:
- Neredeyse gerçek zamanlı işleme için function.json dosyasında
"source": "EventGrid"ile blob tetikleyicisini yapılandırın. - PowerShell Azure Depolama cmdlet'lerini kullanarak blob içeriğine erişme
- Azure PowerShell modüllerini kullanarak dosyaları işleme ve hedef kapsayıcıya kopyalama
İşlev kodunuzu yerel olarak gözden geçirip doğruladıktan sonra, projeyi Azure'da yayımlamanın zamanı geldi.
Azure kaynakları oluşturma ve dağıtma
azd up İşlev uygulamasını bir Flex Consumption planında ve olay aboneliği de dahil olmak üzere diğer gerekli Azure kaynaklarıyla birlikte oluşturmak için komutunu kullanın. Altyapı hazır olduktan sonra proje azd kodunuzu Azure'daki yeni işlev uygulamasına da dağıtır.
Visual Studio Code'da F1 tuşuna basarak komut paletini açın. komutunu
Azure Developer CLI (azd): Sign In with Azure Developer CLIarayın ve çalıştırın, ardından Azure hesabınızı kullanarak oturum açın.Proje kökünde F1 tuşuna basarak komut paletini açın. Gerekli Azure kaynaklarını oluşturmak ve kodunuzu dağıtmak için komutunu
Azure Developer CLI (azd): Provision and Deploy (up)arayın ve çalıştırın.Terminal penceresinde istendiğinde şu gerekli dağıtım parametrelerini sağlayın:
Uyarı Description Kullanılacak Azure Aboneliğini seçin Kaynaklarınızı oluşturmak istediğiniz aboneliği seçin. Çevre adı Uygulamanız için benzersiz bir dağıtım bağlamını korumak için kullanılan bir ortam. Azure veri merkezi konumu Yeni Azure kaynaklarını içeren kaynak grubunun oluşturulacağı Azure bölgesi. Yalnızca şu anda Esnek Tüketim planını destekleyen bölgeler gösterilir. Komut,
azd upen son en iyi yöntemleri izleyerek bu gerekli Azure kaynaklarını oluşturmak ve yapılandırmak için Bicep yapılandırma dosyalarıyla bu istemlere yanıtlarınızı kullanır:- Esnek Tüketim planı ve işlev uygulaması
- Blob kapsayıcıları ile Azure Depolama hesabı
- Application Insights (önerilen)
- Hesabınız için ilkelere ve rollere erişme
- Blob olayları için Event Grid aboneliği
- Hizmetten hizmete bağlantılar için depolanan bağlantı dizeleri yerine yönetilen kimlikleri kullanma
Komut başarıyla tamamlandıktan sonra uygulamanız Azure'da bloblar kapsayıcıya
unprocessed-pdfeklendiğinde işlevinizi tetikleme amacıyla yapılandırılmış bir olay aboneliğiyle çalışır.çıkıştaki
AZURE_STORAGE_ACCOUNT_NAMEveAZURE_FUNCTION_APP_NAMEdeğerlerini not edin. Bu adlar sırasıyla Azure'daki depolama hesabınız ve işlev uygulamanız için benzersizdir.
Dağıtılan işlevi doğrulama
Visual Studio Code'da F1 tuşuna basın. Komut paletinde komutunu
Azure Storage: Upload Files...arayın ve çalıştırın. Kök dizini kabul edin ve daha önce olduğu gibi proje klasöründendatabir veya daha fazla PDF dosyası yükleyin.İstendiği anda, yeni depolama hesabınızın adını (listeden
AZURE_STORAGE_ACCOUNT_NAME) seçin. Blob Kapsayıcıları>işlenmemiş-pdf'yi seçin.F1 tuşuna basın. Komut paletinde komutunu
Azure Storage: Open in Explorerarayın ve çalıştırın. > Blob Kapsayıcıları>işlenen-pdf olarak seçin, ardından Yeni pencerede aç seçeneğine tıklayın.Dosya Gezgini'nde, yüklediğiniz PDF dosyalarının fonksiyonunuz tarafından işlendiğini doğrulayın. Çıkış,
processed-pdfkapsayıcısına,processed-ön ekiyle yazılır.
Event Grid blob tetikleyicisi, dosyaları karşıya yüklemekten hemen sonra saniyeler içinde işlem yapar. Bu hız, geleneksel yoklama tabanlı blob tetikleyicilerine kıyasla bu yaklaşımın neredeyse gerçek zamanlı özelliklerini gösterir.
Kodunuzu yeniden dağıtma
azd up Komutunu hem Azure kaynaklarınızı sağlamak hem de işlev uygulamanıza kod güncelleştirmeleri dağıtmak için gerektiği kadar çalıştırın.
Uyarı
Dağıtılan kod dosyalarının üzerine her zaman en son dağıtım paketi yazılır.
İstemlere ve tarafından azd oluşturulan tüm ortam değişkenlerine azd yönelik ilk yanıtlarınız adlandırılmış ortamınızda yerel olarak depolanır.
azd env get-values Azure kaynakları oluşturulurken kullanılan ortamınızdaki tüm değişkenleri gözden geçirmek için komutunu kullanın.
Kaynakları temizle
İşlev uygulamanız ve ilgili kaynaklarınızla çalışmayı bitirdiğinizde, işlev uygulamasını ve ilgili kaynaklarını Azure'dan silmek için bu komutu kullanın. Bu eylem, başka maliyetlerle karşılaşmaktan kaçınmanıza yardımcı olur:
azd down --no-prompt
Uyarı
seçeneği, --no-prompt sizden onay almadan kaynak grubunuzu silmenizi belirtir azd .
Bu komut yerel kod projenizi etkilemez.