Temel Araçları kullanarak yerel olarak Azure İşlevleri geliştirme

Azure İşlevleri Temel Araçlar, işlevlerinizi yerel bilgisayarınızda geliştirmenize ve test etmenizi sağlar. Hazır olduğunuzda, kod projenizi Azure'a dağıtmak ve uygulama ayarlarıyla çalışmak için Temel Araçlar'ı da kullanabilirsiniz.

Bu makalenin C# sürümünü görüntülüyorsunuz. Makalenin üst kısmında tercih ettiğiniz İşlevler programlama dilini seçtiğinizden emin olun.

Hemen başlamak istiyorsanız Core Tools hızlı başlangıç makalesini tamamlayın.

Bu makalenin Java sürümünü görüntülüyorsunuz. Makalenin üst kısmında tercih ettiğiniz İşlevler programlama dilini seçtiğinizden emin olun.

Hemen başlamak istiyorsanız Core Tools hızlı başlangıç makalesini tamamlayın.

Bu makalenin JavaScript sürümünü görüntülüyorsunuz. Makalenin üst kısmında tercih ettiğiniz İşlevler programlama dilini seçtiğinizden emin olun.

Hemen başlamak istiyorsanız Core Tools hızlı başlangıç makalesini tamamlayın.

Bu makalenin PowerShell sürümünü görüntülüyorsunuz. Makalenin üst kısmında tercih ettiğiniz İşlevler programlama dilini seçtiğinizden emin olun.

Hemen başlamak istiyorsanız Core Tools hızlı başlangıç makalesini tamamlayın.

Bu makalenin Python sürümünü görüntülüyorsunuz. Makalenin üst kısmında tercih ettiğiniz İşlevler programlama dilini seçtiğinizden emin olun.

Hemen başlamak istiyorsanız Core Tools hızlı başlangıç makalesini tamamlayın.

Bu makalenin TypeScript sürümünü görüntülüyorsunuz. Makalenin üst kısmında tercih ettiğiniz İşlevler programlama dilini seçtiğinizden emin olun.

Hemen başlamak istiyorsanız Core Tools hızlı başlangıç makalesini tamamlayın.

Azure Functions Core Tools’u Yükleme

Ç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 Core Tools v4.x'i yüklemek için bir Windows yükleyicisi (MSI) kullanılır. Diğer paket tabanlı yükleyiciler hakkında daha fazla bilgi için bkz . Çekirdek Araçları benioku.

Windows sürümünüz temelinde Core Tools yükleyicisini indirin ve çalıştırın:

Daha önce Windows'a Core Tools yüklemek için Windows installer (MSI) kullandıysanız, en son sürümü yüklemeden önce Program Ekle Kaldır'dan eski sürümü kaldırmanız gerekir.

Sürümle ilgili sorunlarla ilgili yardım için bkz . Temel Araçlar sürümleri.

Yerel projenizi oluşturma

Önemli

Python için Core Tools komutlarını bir sanal ortamda çalıştırmanız gerekir. Daha fazla bilgi için bkz . Hızlı Başlangıç: Komut satırından Azure'da Python işlevi oluşturma.

Terminal penceresinde veya komut isteminden aşağıdaki komutu çalıştırarak klasörde bir proje MyProjFolder oluşturun:

func init MyProjFolder --worker-runtime dotnet-isolated 

Varsayılan olarak bu komut, .NET Core'un geçerli Uzun Süreli Destek (LTS) sürümünde İşlevler konağı ile işlem halinde çalışan bir proje oluşturur. .NET Framework dahil olmak üzere desteklenen belirli bir .NET sürümünü hedeflemek için seçeneğini kullanabilirsiniz --target-framework . Daha fazla bilgi için başvuruya func init bakın.

İki .NET işlem modeli arasında bir karşılaştırma için işlem modu karşılaştırma makalesine bakın.

Java, yerel projeyi oluşturmak için maven arketipini ve http ile tetiklenen ilk işlevinizi kullanır. ve func newkullanmak func init yerine Komut satırı hızlı başlangıcındaki adımları izlemeniz gerekir.

func init MyProjFolder --worker-runtime javascript --model V4

Bu komut, istenen programlama modeli sürümünü kullanan bir JavaScript projesi oluşturur.

func init MyProjFolder --worker-runtime typescript --model V4

Bu komut, istenen programlama modeli sürümünü kullanan bir TypeScript projesi oluşturur.

func init MyProjFolder --worker-runtime powershell
func init MyProjFolder --worker-runtime python --model V2

Bu komut, istenen programlama modeli sürümünü kullanan bir Python projesi oluşturur.

seçeneği olmadan çalıştırdığınızda func init --worker-runtime proje dilinizi seçmeniz istenir. Komutun kullanılabilir seçenekleri hakkında daha fazla bilgi edinmek için func init başvuruya func init bakın.

İşlev oluşturma

Projenize işlev eklemek için tetikleyici şablonunuzu seçme seçeneğini kullanarak --template komutunu çalıştırınfunc new. Aşağıdaki örnek adlı MyHttpTriggerbir HTTP tetikleyicisi oluşturur:

func new --template "Http Trigger" --name MyHttpTrigger

Bu örnek adlı MyQueueTriggerbir Kuyruk Depolama tetikleyicisi oluşturur:

func new --template "Azure Queue Storage Trigger" --name MyQueueTrigger

İşlevler eklenirken aşağıdaki noktalar geçerlidir:

  • seçeneği olmadan çalıştırdığınızda func new --template , bir şablon seçmeniz istenir.

  • func templates list Dilinize yönelik kullanılabilir şablonların tam listesini görmek için komutunu kullanın.

  • Bir hizmete bağlanan bir tetikleyici eklediğinizde, local.settings.json dosyasına bir bağlantı dizesi veya yönetilen kimliğe başvuran bir uygulama ayarı da eklemeniz gerekir. Uygulama ayarlarını bu şekilde kullanmak, kodunuzda kimlik bilgilerini eklemenizi önler. Daha fazla bilgi için bkz . Yerel olarak uygulama ayarlarıyla çalışma.

  • Çekirdek Araçlar ayrıca C# projenize özel bağlama uzantısına bir başvuru ekler.

Komutun kullanılabilir seçenekleri hakkında daha fazla bilgi edinmek için func new başvuruya func new bakın.

İşlevinize bağlama ekleme

İşlevler hizmete özgü giriş ve çıkış bağlamaları kümesi sağlar ve bu da işlevinizin hizmete özgü istemci SDK'larını kullanmak zorunda kalmadan diğer Azure hizmetlerine bağlanmasını kolaylaştırır. Daha fazla bilgi için bkz. Azure İşlevleri tetikleyicileri ve bağlama kavramları.

Var olan bir işleve giriş veya çıkış bağlaması eklemek için işlev tanımını el ile güncelleştirmeniz gerekir.

Aşağıdaki örnekte, HTTP ile tetiklenen bir işleve Kuyruk Depolama çıkış bağlaması eklendikten sonra işlev tanımı gösterilmektedir:

HTTP ile tetiklenen bir işlev bir HTTP yanıtı da döndürdüğünden, işlev hem HTTP hem de kuyruk çıkışını temsil eden bir MultiResponse nesne döndürür.

[Function("HttpExample")]
public static MultiResponse Run([HttpTrigger(AuthorizationLevel.Function, "get", "post")] HttpRequest req,
    FunctionContext executionContext)
{

Bu örnek, çıkış bağlamasını MultiResponse içeren nesnenin tanımıdır:

public class MultiResponse
{
    [QueueOutput("outqueue",Connection = "AzureWebJobsStorage")]
    public string[] Messages { get; set; }
    public IActionResult HttpResponse { get; set; }
}

Bu örneği kendi projenize uygularken, ASP.NET Core tümleştirmesi kullanıp kullanmadığınıza HttpResponseDatabağlı olarak ve olarak değiştirmeniz HttpRequestData HttpRequest IActionResult gerekebilir.

İşlev tamamlandığında iletiler kuyruğa gönderilir. Çıkış bağlamasını tanımlama şekliniz işlem modelinize bağlıdır. Başvurabileceğiniz örnek bağlama kodunun bağlantıları da dahil olmak üzere daha fazla bilgi için bkz . İşleve bağlama ekleme.

@FunctionName("HttpExample")
public HttpResponseMessage run(
        @HttpTrigger(name = "req", methods = {HttpMethod.GET, HttpMethod.POST}, authLevel = AuthorizationLevel.ANONYMOUS) 
        HttpRequestMessage<Optional<String>> request, 
        @QueueOutput(name = "msg", queueName = "outqueue", 
        connection = "AzureWebJobsStorage") OutputBinding<String> msg, 
        final ExecutionContext context) {

Başvurabileceğiniz örnek bağlama kodunun bağlantıları da dahil olmak üzere daha fazla bilgi için bkz . İşleve bağlama ekleme.

Node.js model v4 için örnek bağlama henüz kullanılamıyor.

Çıkış bağlamasını tanımlama şekliniz, Node.js modelinizin sürümüne bağlıdır. Başvurabileceğiniz örnek bağlama kodunun bağlantıları da dahil olmak üzere daha fazla bilgi için bkz . İşleve bağlama ekleme.

$outputMsg = $name
Push-OutputBinding -name msg -Value $outputMsg

Başvurabileceğiniz örnek bağlama kodunun bağlantıları da dahil olmak üzere daha fazla bilgi için bkz . İşleve bağlama ekleme.

@app.route(route="HttpExample")
@app.queue_output(arg_name="msg", queue_name="outqueue", connection="AzureWebJobsStorage")
def HttpExample(req: func.HttpRequest, msg: func.Out [func.QueueMessage]) -> func.HttpResponse:
    logging.info('Python HTTP trigger function processed a request.')

Çıkış bağlamasını tanımlama şekliniz Python modelinizin sürümüne bağlıdır. Başvurabileceğiniz örnek bağlama kodunun bağlantıları da dahil olmak üzere daha fazla bilgi için bkz . İşleve bağlama ekleme.

Node.js model v4 için örnek bağlama henüz kullanılamıyor.

Çıkış bağlamasını tanımlama şekliniz, Node.js modelinizin sürümüne bağlıdır. Başvurabileceğiniz örnek bağlama kodunun bağlantıları da dahil olmak üzere daha fazla bilgi için bkz . İşleve bağlama ekleme.

Bir işleve bağlama eklerken aşağıdaki noktalar geçerlidir:

  • function.json yapılandırma dosyasını kullanarak işlevleri tanımlayan diller için Visual Studio Code, var olan bir işlev tanımına bağlama ekleme işlemini basitleştirir. Daha fazla bilgi için bkz . Bağlamaları kullanarak işlevleri Azure hizmetlerine bağlama.
  • Bir hizmete bağlanan bağlamalar eklediğinizde, local.settings.json dosyasına bağlantı dizesi veya yönetilen kimliğe başvuran bir uygulama ayarı da eklemeniz gerekir. Daha fazla bilgi için bkz . Yerel olarak uygulama ayarlarıyla çalışma.
  • Desteklenen bir bağlama eklediğinizde, uygulamanız uzantı paketini kullandığında uzantı zaten yüklenmiş olmalıdır. Daha fazla bilgi için bkz . uzantı paketleri.
  • Yeni bağlama uzantısı gerektiren bir bağlama eklediğinizde, C# projenizde bu bağlama uzantısına da başvuru eklemeniz gerekir.

Başvurabileceğiniz örnek bağlama kodunun bağlantıları da dahil olmak üzere daha fazla bilgi için bkz . İşleve bağlama ekleme.

Başvurabileceğiniz örnek bağlama kodunun bağlantıları da dahil olmak üzere daha fazla bilgi için bkz . İşleve bağlama ekleme.

Başvurabileceğiniz örnek bağlama kodunun bağlantıları da dahil olmak üzere daha fazla bilgi için bkz . İşleve bağlama ekleme.

Başvurabileceğiniz örnek bağlama kodunun bağlantıları da dahil olmak üzere daha fazla bilgi için bkz . İşleve bağlama ekleme.

Başvurabileceğiniz örnek bağlama kodunun bağlantıları da dahil olmak üzere daha fazla bilgi için bkz . İşleve bağlama ekleme.

Başvurabileceğiniz örnek bağlama kodunun bağlantıları da dahil olmak üzere daha fazla bilgi için bkz . İşleve bağlama ekleme.

İşlevler çalışma zamanını başlatma

Projenizdeki işlevleri çalıştırabilmeniz veya hatalarını ayıklayabilmeniz için önce İşlevler ana bilgisayarını projenizin kök dizininden başlatmanız gerekir. Konak, projedeki tüm işlevler için tetikleyicileri etkinleştirir. Yerel çalışma zamanını başlatmak için şu komutu kullanın:

mvn clean package 
mvn azure-functions:run
func start
func start
npm install
npm start     

Bu komut bir sanal ortamda çalıştırılmalıdır.

İşlevler konağı başlatıldığında, aşağıdaki örnekte olduğu gibi HTTP ile tetiklenen işlevlerin URL'leri de dahil olmak üzere projedeki işlevlerin listesini oluşturur:

Found the following functions:
Host.Functions.MyHttpTrigger

Job host started
Http Function MyHttpTrigger: http://localhost:7071/api/MyHttpTrigger

İşlevlerinizi yerel olarak çalıştırırken aşağıdaki noktaları göz önünde bulundurun:

  • Varsayılan olarak, YETKILENDIRME HTTP uç noktaları için yerel olarak zorlanmaz. Bu, tüm yerel HTTP isteklerinin olarak authLevel = "anonymous"işlendiğini gösterir. Daha fazla bilgi için bkz . Yetkilendirme düzeyi. Yerel olarak çalışırken yetkilendirme istemek için seçeneğini kullanabilirsiniz --enableAuth . Daha fazla bilgi için bkz. func start.

  • Azure'da bu hizmetlere bağlanmak zorunda kalmadan Azure Depolama hizmetlerine (Kuyruk Depolama, Blob Depolama ve Tablo Depolama) erişim gerektiren işlevleri yerel olarak çalıştırırken yerel Azurite öykünücüsü kullanabilirsiniz. Yerel öykünme kullanırken yerel konağı (func.exe) başlatmadan önce Azurite'yi başlattığınızdan emin olun. Daha fazla bilgi için bkz . Yerel depolama öykünmesi.

  • Python v2 çalışanının depolama gereksinimini karşılamak için yerel Azurite öykünmesini kullanabilirsiniz.
  • Canlı bir hizmete bağlanmadan HTTP dışı işlevleri yerel olarak tetikleyebilirsiniz. Daha fazla bilgi için bkz . Yerel işlev çalıştırma.

  • Application Insights bağlantı bilgilerinizi local.settings.json dosyasına eklediğinizde, yerel günlük verileri belirli Application Insights örneğine yazılır. Yerel telemetri verilerini üretim verilerinden ayrı tutmak için geliştirme ve test için ayrı bir Application Insights örneği kullanmayı göz önünde bulundurun.

  • Core Tools'un 1.x sürümünü kullanırken bunun yerine komutunu kullanarak func host start yerel çalışma zamanını başlatın.

Yerel işlev çalıştırma

Yerel İşlevler ana bilgisayarınız (func.exe) çalışırken işlev kodunuzu çalıştırmak ve hatalarını ayıklamak için tek tek işlevleri tetikleyebilirsiniz. Tek bir işlevi yürütme yönteminiz tetikleyici türüne bağlıdır.

Not

Bu konudaki örneklerde, terminalden veya komut isteminden HTTP istekleri göndermek için cURL aracı kullanılır. Http isteklerini yerel sunucuya göndermek için tercih ettiğiniz bir aracı kullanabilirsiniz. cURL aracı, Linux tabanlı sistemlerde ve Windows 10 derleme 17063 ve sonraki sürümlerde varsayılan olarak kullanılabilir. Eski Windows'ta, önce cURL aracını indirip yüklemeniz gerekir.

HTTP tetikleyicileri, şu genel biçime sahip func.exe çıkışında gösterildiği gibi yerel uç noktaya ve bağlantı noktasına bir HTTP isteği gönderilerek başlatılır:

http://localhost:<PORT>/api/<FUNCTION_NAME>

Bu URL şablonunda işlevin <FUNCTION_NAME> veya yolun adıdır ve <PORT> func.exe dinlediği yerel bağlantı noktasıdır.

Örneğin, bu cURL komutu sorgu dizesinde geçirilen ad parametresiyle bir GET isteğinden hızlı başlangıç işlevini tetiklerMyHttpTrigger:

curl --get http://localhost:7071/api/MyHttpTrigger?name=Azure%20Rocks

Bu örnek, hem Bash kabuğu hem de Windows komut satırı için gösterilen, istek gövdesinde post isteği geçirme adından çağrılan işlevle aynıdır:

curl --request POST http://localhost:7071/api/MyHttpTrigger --data '{"name":"Azure Rocks"}'
curl --request POST http://localhost:7071/api/MyHttpTrigger --data "{'name':'Azure Rocks'}"

HTTP uç noktalarını yerel olarak çağırırken aşağıdaki noktalar geçerlidir:

  • Sorgu dizesinde veri geçiren bir tarayıcıdan GET isteklerinde bulunabilirsiniz. Diğer tüm HTTP yöntemleri için verilerinizin güvenliğini de sağlayan bir HTTP test aracı kullanmanız gerekir. Daha fazla bilgi için bkz . HTTP test araçları.

  • İşlevler ana bilgisayarının dinlediği sunucu adını ve bağlantı noktasını kullandığınızdan emin olun. İşlev konağı başlatılırken oluşturulan çıktıda bunun gibi bir uç nokta görürsünüz. Tetikleyici tarafından desteklenen herhangi bir HTTP yöntemini kullanarak bu URL'yi çağırabilirsiniz.

Azure'a Yayımlama

Azure İşlevleri Temel Araçları üç dağıtım türünü destekler:

Dağıtım türü Komut Açıklama
Proje dosyaları func azure functionapp publish zip dağıtımını kullanarak işlev proje dosyalarını doğrudan işlev uygulamanıza dağıtır.
Azure Container Apps func azurecontainerapps deploy Kapsayıcılı işlev uygulamasını mevcut bir Container Apps ortamına dağıtır.
Kubernetes kümesi func kubernetes deploy Linux işlev uygulamanızı kubernetes kümesine özel bir Docker kapsayıcısı olarak dağıtır.

Core Tools'tan Azure'da yayımlama yapabilmek için yerel olarak Azure CLI veya Azure PowerShell yüklü olmalıdır. Varsayılan olarak Core Tools, Azure hesabınızla kimlik doğrulaması yapmak için bu araçları kullanır.

Bu araçlar yüklü değilse, bunun yerine dağıtım sırasında kullanmak üzere geçerli bir erişim belirteci almanız gerekir. Dağıtım komutlarındaki seçeneği kullanarak --access-token erişim belirteci sunabilirsiniz.

Proje dosyalarını dağıtma

Yerel kodunuzu Azure'daki bir işlev uygulamasında yayımlamak için aşağıdaki örnekte olduğu gibi komutunu kullanın func azure functionapp publish :

func azure functionapp publish <FunctionAppName>

Bu komut, geçerli dizindeki <FunctionAppName> proje dosyalarını .zip dağıtım paketi olarak yayımlar. Proje derleme gerektiriyorsa, dağıtım sırasında uzaktan yapılır.

Java, Yerel projenizi Core Tools yerine Azure'da yayımlamak için Maven kullanır. Projenizi Azure'da yayımlamak için aşağıdaki Maven komutunu kullanın:

mvn azure-functions:deploy

Bu komutu çalıştırdığınızda, azure kaynakları ilk dağıtım sırasında pom.xml dosyanızdaki ayarlara göre oluşturulur. Daha fazla bilgi için bkz . İşlev projesini Azure'a dağıtma.

Bu tür dağıtımlar için aşağıdaki önemli noktalar geçerlidir:

  • Yayımlama, uzak işlev uygulaması dağıtımındaki mevcut dosyaların üzerine yazar.

  • Azure aboneliğinizde zaten bir işlev uygulaması oluşturmuş olmanız gerekir. Çekirdek Araçlar, proje kodunuzu bu işlev uygulaması kaynağına dağıtır. Azure CLI veya Azure PowerShell kullanarak komut isteminden veya terminal penceresinden işlev uygulaması oluşturmayı öğrenmek için bkz . Sunucusuz yürütme için İşlev Uygulaması oluşturma. Bu kaynakları Azure portalında da oluşturabilirsiniz. Aboneliğinizde mevcut olmayan bir <FunctionAppName> öğeyi yayımlamaya çalıştığınızda hata alırsınız.

  • Proje klasörü, yayımlanmaması gereken dile özgü dosyalar ve dizinler içerebilir. Dışlanan öğeler kök proje klasöründeki bir .funcignore dosyasında listelenir.

  • Varsayılan olarak, projeniz dağıtım paketinden çalışacak şekilde dağıtılır. Bu önerilen dağıtım modunu devre dışı bırakmak için seçeneğini kullanın--nozip.

  • Derlenmiş projelerde uzak derleme gerçekleştirilir. Bu seçenek kullanılarak --no-builddenetlenebilir.

  • --publish-local-settings İşlev uygulamanızda local.settings.json dosyasındaki değerlere göre uygulama ayarlarını otomatik olarak oluşturmak için seçeneğini kullanın.

  • İşlev uygulamanızda belirli bir adlandırılmış yuvada yayımlamak için seçeneğini kullanın--slot.

Kapsayıcıları dağıtma

Temel Araçlar, kapsayıcılı işlev uygulamanızı hem yönetilen Azure Container Apps ortamlarına hem de yönettiğiniz Kubernetes kümelerine dağıtmanıza olanak tanır.

Kapsayıcı Uygulamaları ortamına mevcut bir kapsayıcı görüntüsünü dağıtmak için aşağıdaki func azurecontainerapps deploy komutu kullanın:

func azurecontainerapps deploy --name <APP_NAME> --environment <ENVIRONMENT_NAME> --storage-account <STORAGE_CONNECTION> --resource-group <RESOURCE_GROUP> --image-name <IMAGE_NAME> [--registry-password] [--registry-server] [--registry-username]

Azure Container Apps ortamına dağıttığınızda aşağıdaki noktalar geçerlidir:

  • Ortam ve depolama hesabı zaten mevcut olmalıdır. Sağladığınız depolama hesabı bağlantı dizesi dağıtılan işlev uygulaması tarafından kullanılır.

  • Container Apps'e dağıtım yaparken ayrı bir işlev uygulaması kaynağı oluşturmanız gerekmez.

  • Depolama bağlantı dizesi ve diğer hizmet kimlik bilgileri önemli gizli dizilerdir. kullanarak func azurecontainerapps deploy betik dosyalarını güvenli bir şekilde depoladığından emin olun ve bunları genel olarak erişilebilen kaynak denetim sistemlerinde depolamayın. Ek güvenlik için local.settings.json dosyasını şifreleyebilirsiniz.

Daha fazla bilgi için bkz. Azure İşlevleri barındıran Azure Container Apps.

Uygulama ayarlarıyla yerel olarak çalışma

Azure'da bir işlev uygulamasında çalışırken, işlevlerinizin gerektirdiği ayarlar uygulama ayarlarında güvenli bir şekilde depolanır. Yerel geliştirme sırasında, bu ayarlar bunun yerine local.settings.json dosyasındaki koleksiyona Values eklenir. local.settings.json dosyası, yerel geliştirme araçları tarafından kullanılan ayarları da depolar.

Projenizin local.settings.json dosyasındaki koleksiyondaki Values öğeler, işlev uygulamanızın Azure'daki uygulama ayarlarındaki öğeleri yansıtmaya yöneliktir.

Yerel ayarlar dosyasıyla çalışırken aşağıdaki noktalar geçerlidir:

  • local.settings.json bağlantı dizesi gibi gizli diziler içerebileceğinden, bunu hiçbir zaman uzak bir depoda depolamamalısınız. Çekirdek Araçlar, gelişmiş güvenlik için bu yerel ayarlar dosyasını şifrelemenize yardımcı olur. Daha fazla bilgi için bkz . Yerel ayarlar dosyası. Ek güvenlik için local.settings.json dosyasını da şifreleyebilirsiniz.

  • Varsayılan olarak, proje Azure'da yayımlandığında yerel ayarlar otomatik olarak geçirilmez. Bu ayarların Azure'daki --publish-local-settings işlev uygulamasına eklendiğinden emin olmak için proje dosyalarınızı yayımlarken seçeneğini kullanın. bölümündeki değerler ConnectionStrings hiçbir zaman yayımlanmaz. İstediğiniz zaman local.settings.json dosyasından da ayarları karşıya yükleyebilirsiniz.

  • Azure'daki işlev uygulamanızdan ayarları local.settings.json dosyanızdaki ayarları indirebilir ve üzerine yazabilirsiniz. Daha fazla bilgi için bkz . Uygulama ayarlarını indirme.

  • İşlev uygulaması ayarları değerleri, kodunuz içinde ortam değişkenleri olarak da okunabilir. Daha fazla bilgi için bkz . Ortam değişkenleri.
  • İşlev uygulaması ayarları değerleri, kodunuz içinde ortam değişkenleri olarak da okunabilir. Daha fazla bilgi için bkz . Ortam değişkenleri.
  • İşlev uygulaması ayarları değerleri, kodunuz içinde ortam değişkenleri olarak da okunabilir. Daha fazla bilgi için bkz . Ortam değişkenleri.
  • İşlev uygulaması ayarları değerleri, kodunuz içinde ortam değişkenleri olarak da okunabilir. Daha fazla bilgi için bkz . Ortam değişkenleri.
  • İşlev uygulaması ayarları değerleri, kodunuz içinde ortam değişkenleri olarak da okunabilir. Daha fazla bilgi için bkz . Ortam değişkenleri.
  • için AzureWebJobsStorage geçerli bir depolama bağlantı dizesi ayarlanmadığında ve yerel depolama öykünücüsü kullanılmadığında bir hata gösterilir. Azure Depolama hesaplarınızdan herhangi birinden belirli bir bağlantı dizesi indirmek için Temel Araçlar'ı kullanabilirsiniz.

Uygulama ayarlarını indirme

Proje kökünden aşağıdaki komutu kullanarak Azure'daki uygulamadan myfunctionapp12345 tüm uygulama ayarlarını indirin:

func azure functionapp fetch-app-settings myfunctionapp12345

Bu komut, azure değerleriyle local.settings.json dosyasındaki mevcut ayarların üzerine yazar. Henüz mevcut olmadığında, koleksiyona yeni öğeler eklenir. Daha fazla bilgi için komutuna func azure functionapp fetch-app-settings bakın.

Depolama bağlantı dizesi indirme

Temel Araçlar, erişiminiz olan herhangi bir depolama hesabının bağlantı dizesi almayı da kolaylaştırır. Proje kökünden, adlı mystorage12345bir depolama hesabından bağlantı dizesi indirmek için aşağıdaki komutu kullanın.

func azure storage fetch-connection-string mystorage12345

Bu komut, hesabın bağlantı dizesi içeren mystorage12345 local.settings.json dosyasına adlı mystorage12345_STORAGE bir ayar ekler. Daha fazla bilgi için komutuna func azure storage fetch-connection-string bakın.

Geliştirme sırasında gelişmiş güvenlik için local.settings.json dosyasını şifrelemeyi göz önünde bulundurun.

Yerel ayarları Azure'a yükleme

Seçeneğini kullanmadan --publish-local-settings proje dosyalarınızı Azure'da yayımladığınızda, local.settings.json dosyasındaki ayarlar işlev uygulamanızda ayarlanmamıştır. proje dosyalarını yeniden yayımlamadan yalnızca ayarları karşıya yükleme seçeneğiyle --publish-settings-only öğesini istediğiniz zaman yeniden çalıştırabilirsinizfunc azure functionapp publish.

Aşağıdaki örnek yalnızca local.settings.json dosyasındaki Values koleksiyondaki ayarları Adlı Azure'daki myfunctionapp12345işlev uygulamasına yükler:

func azure functionapp publish myfunctionapp12345 --publish-settings-only

Yerel ayarlar dosyasını şifreleme

Yerel ayarlarınızdaki bağlantı dizesi ve diğer değerli verilerin güvenliğini artırmak için Core Tools, local.settings.json dosyasını şifrelemenize olanak tanır. Bu dosya şifrelendiğinde çalışma zamanı, Azure'daki uygulama ayarında olduğu gibi gerektiğinde ayarların şifresini otomatik olarak çözer. Ayarlarla çalışmak için yerel olarak şifrelenmiş bir dosyanın şifresini de çözebilirsiniz.

Projenin yerel ayarlar dosyasını şifrelemek için aşağıdaki komutu kullanın:

func settings encrypt

Şifrelenmiş bir yerel ayarın şifresini çözmek için aşağıdaki komutu kullanın; böylece bu ayarla çalışabilirsiniz:

func settings decrypt

Ayarlar dosyası şifrelendiğinde ve şifresi çözildiğinde, dosyanın IsEncrypted ayarı da güncelleştirilir.

Bağlama uzantılarını yapılandırma

İşlev tetikleyicileri ve bağlamaları .NET uzantısı (NuGet) paketleri olarak uygulanır. Belirli bir bağlama uzantısını kullanabilmek için bu uzantının projeye yüklenmesi gerekir.

Bu bölüm İşlevler çalışma zamanının 1.x sürümü için geçerli değildir. Sürüm 1.x'te desteklenen bağlamalar çekirdek ürün uzantısına dahil edildi.

C# sınıf kitaplığı projeleri için, işlevlerinizin gerektirdiği bağlama uzantıları için belirli NuGet paketlerine başvurular ekleyin. C# betiği (.csx) projesi uzantı paketlerini kullanmalıdır.

İşlevler , projenizdeki bağlama uzantılarıyla kolayca çalışılması için uzantı paketleri sağlar. host.json dosyasında sürümlenen ve tanımlanan uzantı paketleri, uygulamanız için tam bir uyumlu bağlama uzantısı paketleri kümesi yükler. host.json uzantı paketleri zaten etkin olmalıdır. Bir nedenden dolayı host.json dosyasına uzantı paketini eklemeniz veya güncelleştirmeniz gerekiyorsa bkz . Uzantı paketleri.

Desteklenen bir pakette olmayan bir bağlama uzantısı veya uzantı sürümü kullanmanız gerekiyorsa, uzantıları el ile yüklemeniz gerekir. Bu tür nadir senaryolar için komutuna func extensions install bakın.

Core Tools sürümleri

Azure İşlevleri Core Tools'un ana sürümleri, Azure İşlevleri çalışma zamanının belirli ana sürümlerine bağlanır. Örneğin, Core Tools'un 4.x sürümü İşlevler çalışma zamanının 4.x sürümünü destekler. Bu sürüm, hem İşlevler çalışma zamanının hem de Çekirdek Araçları'nın önerilen ana sürümüdür. Core Tools'un en son sürümünü Azure İşlevleri Core Tools deposunda belirleyebilirsiniz.

Core Tools'un 4.0.6517 sürümünden başlayarak, işlem içi model projelerinin 4.5.0 veya sonraki bir sürümüne başvurması Microsoft.NET.Sdk.Functionsgerekir. Önceki bir sürüm kullanılırsa, func start komut hata döndürür.

Geçerli Core Tools yüklemenizin sürümünü belirlemek için aşağıdaki komutu çalıştırın:

func --version

Aksi belirtilmediği sürece, bu makaledeki örnekler 4.x sürümüne yöneliktir.

Temel Araçlar yüklemeleri için aşağıdaki önemli noktalar geçerlidir:

  • Belirli bir bilgisayara Core Tools'un yalnızca bir sürümünü yükleyebilirsiniz.

  • Core Tools'un en son sürümüne yükseltirken, yükseltmeyi gerçekleştirmek için özgün yükleme için kullandığınız yöntemi kullanmanız gerekir. Örneğin, Windows'ta bir MSI kullandıysanız, geçerli MSI'yi kaldırın ve en son MSI'yi yükleyin. Veya npm kullandıysanız, öğesini npm install commandyeniden çalıştırın.

  • Core Tools'un 2.x ve 3.x sürümleri, İşlevler çalışma zamanının destek sonuna ulaşmış olan 2.x ve 3.x sürümleriyle kullanıldı. Daha fazla bilgi için bkz. Azure İşlevleri çalışma zamanı sürümlerine genel bakış.

  • İşlevler Çalışma Zamanı'nın hala desteklenen 1.x sürümü kullanılırken Temel Araçlar'ın 1.x sürümü gereklidir. Core Tools'un bu sürümü yalnızca Windows bilgisayarlarda yerel olarak çalıştırılabilir. Şu anda 1.x sürümünde çalışıyorsanız uygulamanızı bugün sürüm 4.x'e geçirmeyi düşünmelisiniz.

Sonraki adımlar

Azure İşlevleri temel araçları kullanarak Azure işlevlerini geliştirmeyi, test etmeyi ve yayımlamayı öğrenin. Azure İşlevleri Temel Araçları açık kaynak ve GitHub'da barındırılır. Hata veya özellik isteği göndermek için bir GitHub sorunu açın.