Ekinlikler
17 Mar 21 - 21 Mar 10
Diğer geliştiriciler ve uzmanlarla gerçek dünyadaki kullanım örneklerini temel alan ölçeklenebilir yapay zeka çözümleri oluşturmak için toplantı serisine katılın.
Hemen kaydolunBu tarayıcı artık desteklenmiyor.
En son özelliklerden, güvenlik güncelleştirmelerinden ve teknik destekten faydalanmak için Microsoft Edge’e yükseltin.
Bu makalede komut satırı araçlarını kullanarak HTTP isteklerine yanıt veren bir C# işlevi oluşturacaksınız. Kodu yerel olarak test ettikten sonra bunu Azure İşlevleri’nin sunucusuz ortamına dağıtacaksınız.
Bu makale, yalıtılmış bir çalışan işleminde .NET 8 üzerinde çalışan HTTP ile tetiklenen bir işlev oluşturur. C# işlevleri için desteklenen .NET sürümleri hakkında bilgi için bkz . Desteklenen sürümler. Bu makalenin Visual Studio Code tabanlı bir sürümü de vardır.
Bu hızlı başlangıcı tamamladığınızda Azure hesabınıza birkaç sentlik (ABD doları cinsinden) veya daha düşük bir ücret yansıtılır.
Başlamadan önce aşağıdakilere sahip olmanız gerekir:
Azure kaynakları oluşturmak için aşağıdaki araçlardan biri:
Azure Az PowerShell modülü sürüm 5.9.0 veya üzeri.
Etkin aboneliği olan bir Azure hesabına da ihtiyacınız vardır. Ücretsiz hesap oluşturun.
Çekirdek Araçları'nı yüklemenin önerilen yolu, yerel geliştirme bilgisayarınızın işletim sistemine bağlıdır.
Aşağıdaki adımlarda, Ubuntu/Debian Linux dağıtımınıza Core Tools yüklemek için APT kullanılır. Diğer Linux dağıtımları için bkz . Temel Araçlar benioku.
Paket bütünlüğünü doğrulamak için Microsoft paket deposu GPG anahtarını yükleyin:
curl https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > microsoft.gpg
sudo mv microsoft.gpg /etc/apt/trusted.gpg.d/microsoft.gpg
APT güncelleştirmesini yapmadan önce APT kaynak listesini ayarlayın.
sudo sh -c 'echo "deb [arch=amd64] https://packages.microsoft.com/repos/microsoft-ubuntu-$(lsb_release -cs 2>/dev/null)-prod $(lsb_release -cs 2>/dev/null) main" > /etc/apt/sources.list.d/dotnetdev.list'
sudo sh -c 'echo "deb [arch=amd64] https://packages.microsoft.com/debian/$(lsb_release -rs 2>/dev/null | cut -d'.' -f 1)/prod $(lsb_release -cs 2>/dev/null) main" > /etc/apt/sources.list.d/dotnetdev.list'
Aşağıdaki tabloda dosyada /etc/apt/sources.list.d/dotnetdev.list
uygun Linux sürüm dizelerinden biri olup olmadığını denetleyin:
Linux dağıtımı | Sürüm |
---|---|
Debian 12 | bookworm |
Debian 11 | bullseye |
Debian 10 | buster |
Debian 9 | stretch |
Ubuntu 22.04 | jammy |
Ubuntu 20.04 | focal |
Ubuntu 19.04 | disco |
Ubuntu 18.10 | cosmic |
Ubuntu 18.04 | bionic |
Ubuntu 17.04 | zesty |
Ubuntu 16.04/Linux Mint 18 | xenial |
APT kaynak güncelleştirmesini başlatın:
sudo apt-get update
Core Tools paketini yükleyin:
sudo apt-get install azure-functions-core-tools-4
Azure İşlevleri işlev projesi, her birinin belirli bir tetikleyiciye yanıt verdiği bir veya daha fazla tek tek işlev için bir kapsayıcıdır. Projedeki tüm işlevler aynı yerel ve barındırma yapılandırmalarını paylaşır. Bu bölümde, tek bir işlev içeren bir işlev projesi oluşturacaksınız.
Belirtilen çalışma zamanına func init
sahip LocalFunctionProj adlı bir klasörde işlev projesi oluşturmak için komutunu aşağıdaki gibi çalıştırın:
func init LocalFunctionProj --worker-runtime dotnet-isolated --target-framework net8.0
Proje klasörüne gidin:
cd LocalFunctionProj
Bu klasör, local.settings.json ve host.json adlı yapılandırma dosyaları da dahil olmak üzere proje için çeşitli dosyalar içerir. local.settings.json Azure'dan indirilen gizli dizileri içerebileceğinden, dosya .gitignore dosyasında varsayılan olarak kaynak denetimin dışında tutulur.
Aşağıdaki komutu kullanarak projenize bir işlev ekleyin; burada --name
bağımsız değişken işlevinizin benzersiz adıdır (HttpExample) ve --template
bağımsız değişken işlevin tetikleyicisini (HTTP) belirtir.
func new --name HttpExample --template "HTTP trigger" --authlevel "anonymous"
func new
bir HttpExample.cs kod dosyası oluşturur.
İsterseniz, İşlevi yerel olarak çalıştır'a atlayabilir ve dosya içeriğini daha sonra inceleyebilirsiniz.
HttpExample.cs, değişkendeki req
istek verilerini HttpRequest nesnesi olarak alan bir yöntem içerirRun
. Bu parametre, tetikleyici davranışını tanımlamak için HttpTriggerAttribute ile dekore edilmiştir.
using System.Net;
using Microsoft.Azure.Functions.Worker;
using Microsoft.Extensions.Logging;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
namespace Company.Function
{
public class HttpExample
{
private readonly ILogger<HttpExample> _logger;
public HttpExample(ILogger<HttpExample> logger)
{
_logger = logger;
}
[Function("HttpExample")]
public IActionResult Run([HttpTrigger(AuthorizationLevel.AuthLevelValue, "get", "post")] HttpRequest req)
{
_logger.LogInformation("C# HTTP trigger function processed a request.");
return new OkObjectResult("Welcome to Azure Functions!");
}
}
}
Dönüş nesnesi, HTTP yanıtına geri verilen verileri içeren bir IActionResult nesnesidir.
Daha fazla bilgi edinmek için bkz. HTTP tetikleyicileri ve bağlamaları Azure İşlevleri.
LocalFunctionProj klasöründen yerel Azure İşlevleri çalışma zamanı ana bilgisayarını başlatarak işlevinizi çalıştırın:
func start
Çıktının sonuna doğru aşağıdaki satırlar görünmelidir:
... Now listening on: http://0.0.0.0:7071 Application started. Press Ctrl+C to shut down. Http Functions: HttpExample: [GET,POST] http://localhost:7071/api/HttpExample ...
Not
HttpExample yukarıda gösterildiği gibi görünmüyorsa, konağı büyük olasılıkla projenin kök klasörünün dışından başlatmış olursunuz. Bu durumda, konağı durdurmak için Ctrl+C tuşunu kullanın, projenin kök klasörüne gidin ve önceki komutu yeniden çalıştırın.
Bu çıkıştan işlevinizin HttpExample
URL'sini bir tarayıcıya kopyalayın ve işlev URL'sine göz atın; Azure İşlevleri hoş geldiniz iletisi almalısınız.
İşiniz bittiğinde Ctrl+C tuşunu kullanın ve işlevler konasını durdurmayı seçin.y
İşlev kodunuzu Azure'a dağıtabilmeniz için önce üç kaynak oluşturmanız gerekir:
Bu öğeleri oluşturmak için aşağıdaki komutları kullanın. Hem Azure CLI hem de PowerShell desteklenir.
Henüz yapmadıysanız Azure'da oturum açın:
az login
az login komutu sizi Azure hesabınızda oturum açar.
Seçtiğiniz bölgede adlı AzureFunctionsQuickstart-rg
bir kaynak grubu oluşturun:
az group create --name AzureFunctionsQuickstart-rg --location <REGION>
az group create komutu bir kaynak grubu oluşturur. Yukarıdaki komutta, az account list-locations komutundan döndürülen kullanılabilir bir bölge kodunu kullanarak değerini yakınınızdaki bir bölgeyle değiştirin<REGION>
.
Kaynak grubunuz ve bölgenizde genel amaçlı bir depolama hesabı oluşturun:
az storage account create --name <STORAGE_NAME> --location <REGION> --resource-group AzureFunctionsQuickstart-rg --sku Standard_LRS --allow-blob-public-access false
az storage account create komutu depolama hesabını oluşturur.
Önceki örnekte değerini size uygun ve Azure Depolama'da benzersiz bir adla değiştirin <STORAGE_NAME>
. Adlar yalnızca üç ile 24 karakter arasında sayı ve küçük harf içermelidir. Standard_LRS
İşlevler tarafından desteklenen genel amaçlı bir hesap belirtir.
Önemli
Depolama hesabı, bazen uygulama kodunun kendisi de dahil olmak üzere önemli uygulama verilerini depolamak için kullanılır. Diğer uygulama ve kullanıcılardan depolama hesabına erişimi sınırlamanız gerekir.
Azure'da işlev uygulamasını oluşturun:
az functionapp create --resource-group AzureFunctionsQuickstart-rg --consumption-plan-location <REGION> --runtime dotnet-isolated --functions-version 4 --name <APP_NAME> --storage-account <STORAGE_NAME>
az functionapp create komutu, Azure'da işlev uygulamasını oluşturur.
Önceki örnekte değerini önceki <STORAGE_NAME>
adımda kullandığınız hesabın adıyla değiştirin ve değerini size uygun genel olarak benzersiz bir adla değiştirin <APP_NAME>
. <APP_NAME>
aynı zamanda işlev uygulamasının varsayılan DNS etki alanıdır.
Bu komut, Azure İşlevleri Tüketim Planı'nın altında belirtilen dil çalışma zamanınızda çalışan bir işlev uygulaması oluşturur ve bu uygulama burada tahakkuk ettiğiniz kullanım miktarı için ücretsizdir. Komut aynı kaynak grubunda, işlev uygulamanızı izleyip günlükleri görüntüleyebileceğiniz ilişkili bir Azure Uygulaması lication Insights örneği de oluşturur. Daha fazla bilgi için bkz. İzleme Azure İşlevleri. Örnek, siz etkinleştirene kadar ücret ödemez.
İşlev uygulamanızı Azure'da başarıyla oluşturduktan sonra, komutunu kullanarak yerel işlevler projenizi dağıtmaya func azure functionapp publish
hazır olursunuz.
Kök proje klasörünüzde şu func azure functionapp publish
komutu çalıştırın:
func azure functionapp publish <APP_NAME>
Bu örnekte değerini uygulamanızın adıyla değiştirin <APP_NAME>
. Başarılı bir dağıtım, aşağıdaki çıkışa benzer sonuçlar gösterir (basitlik için kesilmiş):
... Getting site publishing info... Creating archive for current directory... Performing remote build for functions project. ... Deployment successful. Remote build succeeded! Syncing triggers... Functions in msdocs-azurefunctions-qs: HttpExample - [httpTrigger] Invoke url: https://msdocs-azurefunctions-qs.azurewebsites.net/api/httpexample
İşleviniz bir HTTP tetikleyicisi kullandığından ve GET isteklerini desteklediğinden, URL'sine bir HTTP isteği yaparak bu tetikleyiciyi çağırırsınız. Bunu tarayıcıda yapmak en kolayıdır.
Yayımla komutunun çıkışında gösterilen tam Çağırma URL'sini tarayıcı adres çubuğuna kopyalayın. Bu URL'ye gittiğinizde, tarayıcı işlevi yerel olarak çalıştırdığınızda olduğu gibi benzer bir çıkış görüntülemelidir.
Gerçek zamanlıya yakın akış günlüklerini görüntülemek için aşağıdaki komutu çalıştırın:
func azure functionapp logstream <APP_NAME>
Ayrı bir terminal penceresinde veya tarayıcıda uzak işlevi yeniden çağırın. Terminalde Azure'da işlev yürütme işleminin ayrıntılı bir günlüğü gösterilir.
Bir sonraki adıma devam edip bir Azure Depolama kuyruğu çıkış bağlaması eklerseniz, daha önce yaptıklarınızı derleyeceğiniz gibi tüm kaynaklarınızı yerinde tutun.
Aksi takdirde, daha fazla maliyet oluşmasını önlemek için kaynak grubunu ve içerdiği tüm kaynakları silmek için aşağıdaki komutu kullanın.
az group delete --name AzureFunctionsQuickstart-rg
Ekinlikler
17 Mar 21 - 21 Mar 10
Diğer geliştiriciler ve uzmanlarla gerçek dünyadaki kullanım örneklerini temel alan ölçeklenebilir yapay zeka çözümleri oluşturmak için toplantı serisine katılın.
Hemen kaydolunEğitim
Öğrenme yolu
Sunucusuz uygulamalar oluşturma öğrenme yolu - Training
Bu öğrenme yolunda, sunucu tarafı mantığından faydalanıp sunucusuz mimariler oluşturarak olay temelli ve isteğe bağlı olarak işlem yapabilen sistemler oluşturan Azure İşlevleri’ni keşfedin.
Sertifikasyon
Microsoft Sertifikalı: Azure Geliştirici İş Ortağı - Certifications
Azure İşlevleri oluşturmak, web uygulamalarını uygulamak ve yönetmek, Azure depolamayı kullanan çözümler geliştirmek ve daha fazlasını yapmak için Microsoft Azure'da uçtan uca çözümler oluşturun.
Belgeler
Visual Studio Code kullanarak C# işlevi oluşturma - Azure İşlevleri
C# işlevi oluşturmayı ve ardından Visual Studio Code'daki Azure İşlevleri uzantısını kullanarak yerel projeyi Azure İşlevleri'da sunucusuz barındırmaya yayımlamayı öğrenin.
Temel Araçları kullanarak yerel olarak Azure İşlevleri geliştirme
Azure İşlevleri üzerinde çalıştırmak üzere dağıtmadan önce yerel bilgisayarınızdaki komut isteminden veya terminalden Azure İşlevleri nasıl kodlayıp test etmeyi öğrenin.
Azure İşlevleri yerel olarak geliştirme ve çalıştırma
Azure İşlevleri'da çalıştırmadan önce yerel bilgisayarınızda Azure İşlevleri nasıl kodlayıp test etmeyi öğrenin.