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 Temel Araçlar, işlevlerinizi yerel bilgisayarınızda geliştirmenize ve test etmenizi sağlar. Hazır olduğunuzda, kod projenizi Azure dağıtmak ve uygulama ayarlarıyla çalışmak için Çekirdek 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 İşlevleri Core Araçları'nı yükleme
Çekirdek Araçları'nı yüklemenin önerilen yolu, yerel geliştirme bilgisayarınızın işletim sistemine bağlıdır.
- Windows
- macOS
- Linux
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. Core Tools readme.
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ıklama 64 bit gerektirir.)
- v4.x - Windows 32 bit
Daha önce Windows'a Temel Araçları yüklemek için Windows yükleyiciyi (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.
Tavsiye
Core Tools'u Linux için Windows Alt Sistemi (WSL) yüklemek için Linux sekmesindeki yönergeleri izleyin.
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, Sanal ortamda Temel Araçlar komutlarını çalıştırmanız gerekir. Daha fazla bilgi için bkz. Quickstart: 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 oluşturun:
- Yalıtılmış çalışan modeli
- İşlem içi model
func init MyProjFolder --worker-runtime dotnet-isolated
Varsayılan olarak bu komut, geçerli .NET Core Uzun Vadeli Destek (LTS) sürümünde Functions ana bilgisayarıyla aynı işlemde çalışan bir proje oluşturur.
--target-framework seçeneğini kullanarak .NET Framework de dahil olmak üzere .NET'nin desteklenen belirli bir sürümünü hedefleyebilirsiniz. Daha fazla bilgi için başvuruya bakın.
İki .NET işlem modeli arasında karşılaştırma için process 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 kullanmak yerine Komut satırı hızlı başlangıç adımlarını izlemeniz gerekir.
- v4
- v3
func init MyProjFolder --worker-runtime javascript --model V4
Bu komut, istenen programlama modeli sürümünü kullanan bir JavaScript projesi oluşturur.
- v4
- v3
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
- v2
- v1
func init MyProjFolder --worker-runtime python --model V2
Bu komut istenen programming model sürümünü kullanan bir Python projesi oluşturur.
seçeneği olmadan çalıştırdığınızda, proje dilinizi seçmeniz istenir. komutunun kullanılabilir seçenekleri hakkında daha fazla bilgi edinmek için referansına bakın.
İşlev oluşturma
Projenize işlev eklemek için tetikleyici şablonunuzu seçme seçeneğini kullanarak komutunu çalıştırın. Aşağıdaki örnek adlı bir HTTP tetikleyicisi oluşturur:
func new --template "Http Trigger" --name MyHttpTrigger
Bu örnek adlı 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 , bir şablon seçmeniz istenir.
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: Uygulama ayarlarıyla yerel olarak çalışma.
- Çekirdek Araçlar ayrıca C# projenize belirli bir bağlama uzantısına bir referans ekler.
komutunun kullanılabilir seçenekleri hakkında daha fazla bilgi edinmek için referansına bakın.
İşlevinize bir bağlayıcı ekleyin
İş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 hizmetlere bağlanmasını kolaylaştırır. Daha fazla bilgi için bkz. Azure İşlevleri tetikleyicileri ve bağlamaları 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 örnek, bir HTTP ile tetiklenen işleve Kuyruk Depolama çıkış bağlaması eklendikten sonra işlev tanımını göstermektedir.
- Yalıtılmış işlem
- İşlemde
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 nesne döndürür.
[Function("HttpExample")]
public MultiResponse Run([HttpTrigger(AuthorizationLevel.Function, "get", "post")] HttpRequest req)
{
Bu örnek, çıkış bağlamasını 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 örnekte ASP.NET Core integration kullanılır. ASP.NET Core tümleştirme kullanmıyorsanız, HttpRequestHttpRequestData ve IActionResultHttpResponseData olarak değiştirmeniz gerekir.
İşlev tamamlandığında iletiler kuyruğa gönderilir. Çıkış bağlamasını tanımlama şekliniz işlem modelinize bağlıdır. Daha fazla bilgi ve başvurabileceğiniz örnek bağlama kodlarının bağlantıları için İşleve bağlama ekleme konusuna bakın.
@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) {
Daha fazla bilgi ve başvurabileceğiniz örnek bağlama kodlarının bağlantıları için İşleve bağlama ekleme konusuna bakın.
- v4
- v3
const { app, output } = require('@azure/functions');
const sendToQueue = output.storageQueue({
queueName: 'outqueue',
connection: 'AzureWebJobsStorage',
});
app.http('HttpExample', {
methods: ['GET', 'POST'],
authLevel: 'anonymous',
extraOutputs: [sendToQueue],
handler: async (request, context) => {
try {
context.log(`Http function processed request for url "${request.url}"`);
const name = request.query.get('name') || (await request.text());
context.log(`Name: ${name}`);
if (name) {
const msg = `Name passed to the function ${name}`;
context.extraOutputs.set(sendToQueue, [msg]);
return { body: msg };
} else {
context.log('Missing required data');
return { status: 404, body: 'Missing required data' };
}
} catch (error) {
context.log(`Error: ${error}`);
return { status: 500, body: 'Internal Server Error' };
}
},
});
Çıkış bağlamasını tanımlama şekliniz, Node.js modelinizin sürümüne bağlıdır. Daha fazla bilgi ve başvurabileceğiniz örnek bağlama kodlarının bağlantıları için İşleve bağlama ekleme konusuna bakın.
$outputMsg = $name
Push-OutputBinding -name msg -Value $outputMsg
Daha fazla bilgi ve başvurabileceğiniz örnek bağlama kodlarının bağlantıları için İşleve bağlama ekleme konusuna bakın.
- v2
- v1
@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. Daha fazla bilgi ve başvurabileceğiniz örnek bağlama kodlarının bağlantıları için İşleve bağlama ekleme konusuna bakın.
- v4
- v3
import {
app,
output,
HttpRequest,
HttpResponseInit,
InvocationContext,
StorageQueueOutput,
} from '@azure/functions';
const sendToQueue: StorageQueueOutput = output.storageQueue({
queueName: 'outqueue',
connection: 'AzureWebJobsStorage',
});
export async function HttpExample(
request: HttpRequest,
context: InvocationContext,
): Promise<HttpResponseInit> {
try {
context.log(`Http function processed request for url "${request.url}"`);
const name = request.query.get('name') || (await request.text());
context.log(`Name: ${name}`);
if (name) {
const msg = `Name passed to the function ${name}`;
context.extraOutputs.set(sendToQueue, [msg]);
return { body: msg };
} else {
context.log('Missing required data');
return { status: 404, body: 'Missing required data' };
}
} catch (error) {
context.log(`Error: ${error}`);
return { status: 500, body: 'Internal Server Error' };
}
}
app.http('HttpExample', {
methods: ['GET', 'POST'],
authLevel: 'anonymous',
handler: HttpExample,
});
Çıkış bağlamasını tanımlama şekliniz, Node.js modelinizin sürümüne bağlıdır. Daha fazla bilgi ve başvurabileceğiniz örnek bağlama kodlarının bağlantıları için İşleve bağlama ekleme konusuna bakın.
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ğlantılar kullanarak işlevleri Azure hizmetlerine bağlama.
- Bir hizmete bağlanan bağlamalar eklediğinizde, local.settings.json dosyasına bir bağlantı dizesi veya yönetilen kimliğe başvuran bir uygulama ayarı da eklemeniz gerekir. Daha fazla bilgi için bkz: Uygulama ayarlarıyla yerel olarak ç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.
Daha fazla bilgi ve başvurabileceğiniz örnek bağlama kodlarının bağlantıları için İşleve bağlama ekleme konusuna bakın.
Daha fazla bilgi ve başvurabileceğiniz örnek bağlama kodlarının bağlantıları için İşleve bağlama ekleme konusuna bakın.
Daha fazla bilgi ve başvurabileceğiniz örnek bağlama kodlarının bağlantıları için İşleve bağlama ekleme konusuna bakın.
Daha fazla bilgi ve başvurabileceğiniz örnek bağlama kodlarının bağlantıları için İşleve bağlama ekleme konusuna bakın.
Daha fazla bilgi ve başvurabileceğiniz örnek bağlama kodlarının bağlantıları için İşleve bağlama ekleme konusuna bakın.
Daha fazla bilgi ve başvurabileceğiniz örnek bağlama kodlarının bağlantıları için İşleve bağlama ekleme konusuna bakın.
İş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. Sunucu, projedeki tüm fonksiyonlar 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
- Yalıtılmış çalışan modeli
- İşlem içi model
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
İşlevlerinizin nasıl yüklendiği proje yapılandırmanıza bağlıdır. Daha fazla bilgi edinmek için bkz. İşlev kaydetme.
İşlevlerinizi yerel olarak çalıştırırken aşağıdaki noktaları göz önünde bulundurun:
Varsayılan olarak, HRTP uç noktaları için yetkilendirme yerel düzeyde uygulanmaz. Bu, tüm yerel HTTP isteklerinin olarak 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 . Daha fazla bilgi için bkz. .
Azure'da bu hizmetlere bağlanmak zorunda kalmadan Azure Depolama hizmetlere (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 Yerel depolama öykünmesi bölümüne bakın.
- 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 bir işlev çalıştır.
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 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ırıp hata 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 önce cURL aracını indirip yüklemeniz gerekir.
- HTTP tetikleyicisi
- HTTP olmayan tetikleyici
- Event Grid tetikleyicisi
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 veya yolun adıdır ve func.exe dinlediği yerel bağlantı noktasıdır.
Örneğin, bu cURL komutu, GET isteğinde sorgu dizesi içinde geçirilen name parametresiyle hızlı başlangıç işlevini tetikler.
curl --get http://localhost:7071/api/MyHttpTrigger?name=Azure%20Rocks
Bu örnek, istek gövdesinde isim geçiren POST isteğinden çağrılan aynı işlevi, hem Bash kabuğu hem de Windows komut satırı için gösterilenleri içermektedir.
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'da yayımla
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 yayımlayabilmeniz için Azure CLI veya Azure PowerShell yerel olarak yüklenmiş olması gerekir. 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 erişim belirteci sunabilirsiniz.
Proje dosyalarını dağıtma
Yerel kodunuzu Azure bir işlev uygulamasında yayımlamak için aşağıdaki örnekte olduğu gibi func azure functionapp publish komutunu kullanın:
func azure functionapp publish <FunctionAppName>
Bu komut, geçerli dizindeki 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 Çekirdek Araçlar yerine Azure yayımlamak için Maven kullanır. Projenizi Azure yayımlamak için aşağıdaki Maven komutunu kullanın:
mvn azure-functions:deploy
Bu komutu çalıştırdığınızda, pom.xml dosyanızdaki ayarlara göre ilk dağıtım sırasında Azure kaynaklar oluşturulur. Daha fazla bilgi için bkz. İşlev projesini Azure olarak dağıtın.
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. Azure CLI Samples. Ayrıca bu kaynakları Azure portalında oluşturabilirsiniz. Aboneliğinizde mevcut olmayan bir öğ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.
Derlenmiş projelerde uzak derleme gerçekleştirilir. Bu seçenek kullanılarak denetlenebilir.
İş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.
Kapsayıcıları dağıtma
Çekirdek Araçlar, containerized 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ı
- Kubernetes kümesi
Kapsayıcı Uygulamaları ortamına mevcut bir kapsayıcı görüntüsünü dağıtmak için aşağıdaki 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 bir ortama 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 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'in Azure Container Apps üzerinde barındırılması.
Uygulama ayarlarıyla yerel olarak çalışma
İşlev uygulamanız Azure'da çalıştırıldığında, işlevlerinizin gerektirdiği ayarlar uygulama ayarlarında şifreli olarak saklanır. Yerel geliştirme sırasında, bu ayarlar dosyasındaki koleksiyona eklenir. local.settings.json dosyası, yerel geliştirme araçları tarafından kullanılan ayarları da depolar.
Projenizin Values dosyasındaki koleksiyonundaki öğeler, işlev uygulamanızın uygulama ayarları Azure öğ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 yayımlandığında yerel ayarlar otomatik olarak geçirilmez. Bu ayarların Azure'daki işlev uygulamasına eklendiğinden emin olmak için proje dosyalarınızı yayımlarken
--publish-local-settingsseçeneğini kullanın. bölümündeki değerler hiçbir zaman yayımlanmaz. İstediğiniz zaman local.settings.json dosyasından da ayarları karşıya yükleyebilirsiniz.local.settings.json dosyanızdaki ayarları, Azure işlev uygulamanızdan ayarlarla 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.
-
AzureWebJobsStorageiçin 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 belirli bir bağlantı dizesini indirmek için Core Tools'u kullanabilirsiniz.
Uygulama ayarlarını indirme
Proje kökünden aşağıdaki komutu kullanarak Azure'daki myfunctionapp12345 uygulamasından tüm uygulama ayarlarını indirin:
func azure functionapp fetch-app-settings myfunctionapp12345
Bu komut, Azure'dan alınan değerlerle 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 bakın.
Bir depolama bağlantı dizesi indir
Temel Araçlar, erişiminiz olan herhangi bir depolama hesabının bağlantı dizesini elde etmenizi de kolaylaştırır. Proje kök dizininden, mystorage12345 adlı depolama hesabından bağlantı dizesini indirmek için aşağıdaki komutu kullanın.
func azure storage fetch-connection-string mystorage12345
Bu komut, local.settings.json dosyasına mystorage12345_STORAGE hesabının bağlantı dizesi içeren mystorage12345 adlı bir ayar ekler. Daha fazla bilgi için komutuna 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
proje dosyalarınızı --publish-local-settings seçeneğini kullanmadan Azure 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üklemek için seçeneğiyle öğesini istediğiniz zaman yeniden çalıştırabilirsiniz.
Aşağıdaki örnek yalnızca local.settings.json dosyasındaki Values koleksiyonundaki ayarları myfunctionapp12345 adlı Azure 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 ayarı da güncelleştirilir.
Bağlama uzantılarını yapılandırma
Functions 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 çalışmayı kolaylaştırmak 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 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 sürüm 4.5.0 veya sonraki sürümlerineMicrosoft.NET.Sdk.Functions başvurması gerekir. Önceki bir sürüm kullanılırsa, 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 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 yeniden çalıştırın.
Core Tools'un 2.x ve 3.x sürümleri, desteğin sonuna ulaşmış olan İşlev çalışma zamanı 2.x ve 3.x sürümleriyle birlikte 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 Core tools'u kullanarak Azure işlevlerini geliştirmeyi, test etmeyi ve yayımlamayı öğrenin. Azure İşlevleri Core Tools açık kaynak olup GitHub üzerinde barındırılır. Hata veya özellik isteğinde bulunmak için > GitHub sorunu açın.