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:
- v4.x - Windows 64 bit (Önerilir. Visual Studio Code hata ayıklaması 64 bit gerektirir.)
- v4.x - Windows 32 bit
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 new
kullanmak func init
yerine Komut satırı hızlı başlangıcındaki adımları izlemeniz gerekir.
Bu komut, istenen programlama modeli sürümünü kullanan bir JavaScript projesi oluşturur.
Bu komut, istenen programlama modeli sürümünü kullanan bir TypeScript projesi oluşturur.
func init MyProjFolder --worker-runtime powershell
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ı MyHttpTrigger
bir HTTP tetikleyicisi oluşturur:
func new --template "Http Trigger" --name MyHttpTrigger
Bu örnek adlı MyQueueTrigger
bir 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 HttpResponseData
bağ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.
Çı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.
Çı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-build
denetlenebilir.--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ğerlerConnectionStrings
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ı mystorage12345
bir 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 myfunctionapp12345
iş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.Functions
gerekir. Ö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 command
yeniden ç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.