在 Azure Functions 中啟用適用於 .NET 和 .NET Core 應用程式的快照偵錯工具
快照偵錯工具目前適用於在 Windows 服務方案上 Azure Functions 上執行的 ASP.NET 和 ASP.NET Core 應用程式。
建議您在使用快照偵錯工具時,於基本層或更高服務層執行您的應用程式。 對於大部分的應用程式:
- 免費和共用服務層級沒有足夠的記憶體或磁碟空間來儲存快照集。
- 使用量層目前不適用於快照偵錯工具。
快照偵錯工具已預先安裝為 Azure Functions 執行階段的一部分,因此您不需要新增額外的 NuGet 套件或應用程式設定。
先決條件
在您的函數應用程式中啟用 Application Insights 監視。
啟用快照偵錯工具
若要在函式應用程式中啟用快照偵錯工具,請將 snapshotConfiguration
屬性新增至 host.json 檔案,並重新部署函式。 例如:
{
"version": "2.0",
"logging": {
"applicationInsights": {
"snapshotConfiguration": {
"isEnabled": true
}
}
}
}
針對應用程式產生可觸發例外狀況的流量。 然後等待 10 到 15 分鐘,讓快照集傳送到 Application Insights 執行個體。
您可以檢查 .NET 函數應用程式檔案,確認快照偵錯工具已啟用。 例如,在下列簡單的 .NET 函數應用程式中,.NET 應用程式的 .csproj
、{Your}Function.cs
和 host.json
會顯示已啟用快照偵錯工具:
Project.csproj
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netcoreapp2.1</TargetFramework>
<AzureFunctionsVersion>v2</AzureFunctionsVersion>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.NET.Sdk.Functions" Version="1.0.31" />
</ItemGroup>
<ItemGroup>
<None Update="host.json">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Update="local.settings.json">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
<CopyToPublishDirectory>Never</CopyToPublishDirectory>
</None>
</ItemGroup>
</Project>
{Your}Function.cs
using System;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Azure.WebJobs;
using Microsoft.Azure.WebJobs.Extensions.Http;
using Microsoft.AspNetCore.Http;
using Microsoft.Extensions.Logging;
namespace SnapshotCollectorAzureFunction
{
public static class ExceptionFunction
{
[FunctionName("ExceptionFunction")]
public static Task<IActionResult> Run(
[HttpTrigger(AuthorizationLevel.Function, "get", Route = null)] HttpRequest req,
ILogger log)
{
log.LogInformation("C# HTTP trigger function processed a request.");
throw new NotImplementedException("Dummy");
}
}
}
Host.json
{
"version": "2.0",
"logging": {
"applicationInsights": {
"samplingExcludedTypes": "Request",
"samplingSettings": {
"isEnabled": true
},
"snapshotConfiguration": {
"isEnabled": true
}
}
}
}
啟用其他雲端的快照偵錯工具
目前,唯一需要端點修改的區域是 Azure Government 和由 21Vianet 營運的 Microsoft Azure。
下列是使用美國政府雲端代理程式端點更新顯示的 host.json
範例:
{
"version": "2.0",
"logging": {
"applicationInsights": {
"samplingExcludedTypes": "Request",
"samplingSettings": {
"isEnabled": true
},
"snapshotConfiguration": {
"isEnabled": true,
"agentEndpoint": "https://snapshot.monitor.azure.us"
}
}
}
}
這些是快照偵錯工具代理程式端點支援的覆寫:
屬性 | 美國政府雲端 | 中國雲端 |
---|---|---|
AgentEndpoint | https://snapshot.monitor.azure.us |
https://snapshot.monitor.azure.cn |
停用快照偵錯工具
若要停用函數應用程式中的快照偵錯工具,請藉由將 snapshotConfiguration.isEnabled
屬性設定為 false
來更新 host.json
檔案。
{
"version": "2.0",
"logging": {
"applicationInsights": {
"snapshotConfiguration": {
"isEnabled": false
}
}
}
}
下一步
- 在 Azure 入口網站檢視快照集。
- 根據您的函數應用程式使用案例來自訂快照偵錯工具組態。 如需詳細資訊,請參閱 host.json 中的快照集組態。
- 針對快照偵錯工具問題進行疑難排解。