Azure Functions runtime 1.x legacy reference

本文保留了關鍵的歷史資訊,並連結到仍使用 runtime 1.x 的函式應用程式詳細參考資料。 不要用 Runtime 1.x 來做新功能應用程式。

Runtime 1.x 範圍

Azure Functions 執行時 1.x 於 2026 年 9 月 14 日結束支援,且不支援新舊函式應用程式。 執行環境 1.x 具備以下特性:

  • 它只在 Windows 上運行。
  • 它支援針對 .NET Framework 和 JavaScript 應用程式的 C# 應用程式。
  • C# 應用程式在處理中執行。 執行時 1.x 不支援孤立工作者模型。
  • 它使用 Azure Functions Core Tools 1.x 版本進行本地開發。 Core Tools 1.x 僅能在 Windows 上運行。
  • 執行時包含了支援的綁定。 後續執行版本則使用獨立版本的綁定擴充包或擴充套件。

執行時、擴充功能與程式設計模型版本

Azure Functions 的執行時版本與綁定擴充包、擴充套件或語言程式設計模型所使用的版本不同。 另一個元件的版本標籤並不代表該應用程式使用 Azure Functions runtime 1.x。 例如:

  • Python v1 和 v2 的程式設計模型運行於執行時 4.x。
  • Node.js v3 和 v4 程式設計模型運行於執行時 4.x。
  • 擴充套件與綁定擴充套件版本獨立於執行版本。

遷移到執行環境 4.x

要讓應用程式恢復完整支援,請將 它從執行環境 1.x 遷移到 runtime 4.x。 遷移指南涵蓋以下任務:

  • 找出針對執行時 1.x 的應用程式。
  • 選擇支援的 C# 或 JavaScript 目標。
  • 更新專案、綁定、應用程式設定和 host.json 檔案。
  • 在本地測試應用程式,並在 Azure 更新函式應用程式。

不要只 FUNCTIONS_EXTENSION_VERSION 更改應用程式設定。 執行時升級可能需要專案、程式碼、綁定及組態變更。

針對執行環境 1.x 的應用程式設定

已棄用 AzureWebJobsDashboard 的設定僅支援執行時 1.x。 它包含一個可選的通用儲存帳戶 連接字串,用於儲存日誌並在 Azure 入口網站的監控標籤中顯示。

Key 樣本值
AzureWebJobsDashboard DefaultEndpointsProtocol=https;AccountName=...

執行時 1.x 不支援這個 AZURE_FUNCTIONS_ENVIRONMENT 應用程式設定。

這個 FUNCTIONS_EXTENSION_VERSION 值 ~1 會將函式應用程式釘釘到執行時 1.x。 檔案系統金鑰儲存AzureWebJobsSecretStorageType=files()為預設。

網站 functionsRuntimeAdminIsolationEnabled 屬性在執行時 1.x 版本中沒有。 這個 FUNCTIONS_V2_COMPATIBILITY_MODE 設定不適用於執行時 1.x 的應用程式。

Project 與語言差異

執行時 1.x 的 C# 類別函式庫專案針對 .NET Framework 並使用該套件的 Microsoft.NET.Sdk.Functions 1.x 版本。 它們可以用 TraceWriter 來伐木。 關於目前的 C# 專案模型與遷移考量,請參閱 .NET 類別函式庫開發指南及執行時 1.x 遷移指南。

C# 類別函式庫專案

以下範例展示了執行時 1.x 專案檔案的相關部分:

<PropertyGroup>
  <TargetFramework>net48</TargetFramework>
</PropertyGroup>
<ItemGroup>
  <PackageReference Include="Microsoft.NET.Sdk.Functions" Version="1.0.24" />
</ItemGroup>

Microsoft.NET.Sdk.Functions套件相依性包含觸發器與綁定。 1.x 專案指的是 1.x 觸發器與綁定,因為它們針對 .NET 框架。 該封包也依賴於且間接依賴 Newtonsoft.Json 於 WindowsAzure.Storage。 這些相依關係確保專案使用與目標 Functions 執行環境相容的版本。 例如,針對 .NET Framework 4.6.1 的 Functions 執行環境相容Newtonsoft.Json於 9.0.1,而非版本 11。

Runtime 1.x 用於 TraceWriter Application Insights 日誌記錄。 TraceWriter 不支援結構化日誌。

以下範例建立 , TelemetryClient 並使用 TrackEvent、 TrackMetric、 TrackDependency 來記錄自訂遙測。 它也會利用函式執行上下文,將自訂遙測資料與當前調用關聯起來。

自訂遙測範例

using System;
using System.Linq;
using System.Net.Http;
using System.Threading.Tasks;
using Microsoft.ApplicationInsights;
using Microsoft.ApplicationInsights.DataContracts;
using Microsoft.ApplicationInsights.Extensibility;
using Microsoft.Azure.WebJobs;
using Microsoft.Azure.WebJobs.Extensions.Http;
using Microsoft.Extensions.Logging;

namespace functionapp0915
{
	public static class HttpTrigger2
	{
		private static string key = TelemetryConfiguration.Active.InstrumentationKey =
			Environment.GetEnvironmentVariable(
				"APPINSIGHTS_INSTRUMENTATIONKEY", EnvironmentVariableTarget.Process);

		private static TelemetryClient telemetryClient =
			new TelemetryClient() { InstrumentationKey = key };

		[FunctionName("HttpTrigger2")]
		public static async Task<HttpResponseMessage> Run(
			[HttpTrigger(AuthorizationLevel.Anonymous, "get", "post", Route = null)]
			HttpRequestMessage req, ExecutionContext context, ILogger log)
		{
			log.LogInformation("C# HTTP trigger function processed a request.");
			DateTime start = DateTime.UtcNow;
			string name = req.GetQueryNameValuePairs()
				.FirstOrDefault(q => string.Compare(q.Key, "name", true) == 0)
				.Value;
			dynamic data = await req.Content.ReadAsAsync<object>();
			name = name ?? data?.name;

			var evt = new EventTelemetry("Function called");
			UpdateTelemetryContext(evt.Context, context, name);
			telemetryClient.TrackEvent(evt);

			var metric = new MetricTelemetry("Test Metric", DateTime.Now.Millisecond);
			UpdateTelemetryContext(metric.Context, context, name);
			telemetryClient.TrackMetric(metric);

			var dependency = new DependencyTelemetry
			{
				Name = "GET api/planets/1/",
				Target = "swapi.co",
				Data = "https://swapi.co/api/planets/1/",
				Timestamp = start,
				Duration = DateTime.UtcNow - start,
				Success = true
			};
			UpdateTelemetryContext(dependency.Context, context, name);
			telemetryClient.TrackDependency(dependency);
		}

		private static void UpdateTelemetryContext(
			TelemetryContext context,
			ExecutionContext functionContext,
			string userName)
		{
			context.Operation.Id = functionContext.InvocationId.ToString();
			context.Operation.ParentId = functionContext.InvocationId.ToString();
			context.Operation.Name = functionContext.FunctionName;
			context.User.Id = userName;
		}
	}
}

執行時 1.x 也支援 C# 腳本(.csx)和 JavaScript 函式。 C# 腳本並非專屬於執行時 1.x,所以一般腳本指導建議參考 C# 腳本 開發者參考。 針對執行時特定的變更,請使用遷移指南。

關於早期 C# 語法的範例,請參見 執行時 1.x 函式範本。

C# 腳本組合與套件

在執行時 1.x C# 腳本函式中,你可以以簡單名稱參考以下組件:

  • Newtonsoft.Json
  • Microsoft.WindowsAzure.Storage
  • Microsoft.ServiceBus
  • Microsoft.AspNet.WebHooks.Receivers
  • Microsoft.AspNet.WebHooks.Common

執行時 1.x 使用 project.json 檔案來定義相依關係。 以下範例新增了 Microsoft.ProjectOxford.Face NuGet 套件:

{
	"frameworks": {
		"net46": {
			"dependencies": {
				"Microsoft.ProjectOxford.Face": "1.1.0"
			}
		}
	}
}

擴充套件在執行時 1.x 版本中不支援。 要使用自訂的 NuGet 訂閱源,請在函式應用程式根目錄中的 NuGet.Config 檔案中指定訂閱源。 如需詳細資訊,請參閱設定 NuGet 行為。

使用 Core Tools 1.x 進行本地開發

Azure Functions Core Tools 1.x 版本與執行時 1.x 搭配使用,且僅能在 Windows 上執行。 要開始執行時,你 func host start執行了 。 有關目前的本地開發指引,請參閱使用 Core Tools 在本地開發 Azure Functions。

Visual Studio 將執行時 1.x 的核心工具版本儲存在%USERPROFILE%\AppData\Local\Azure.Functions.Cli執行環境中,並使用其中的最新版本。 你可以在執行專案時,在主控台輸出中看到所選版本:

[3/1/2018 9:59:53 AM] Starting Host (HostId=contoso2-1518597420, Version=2.0.11353.0, ProcessId=22020, Debug=False, Attempt=0, FunctionsExtensionVersion=)

Runtime 1.x host.json 參考

host.json 結構和設定在執行 1.x 之後就改變了。 檢視現有配置時請參考 執行時 1.x host.json 參考 ,並在遷移時與 目前的 host.json 參考 比較。

使用 Application Insights 監控執行時 1.x 應用程式

執行環境 1.x 使用以下 Application Insights 日誌類別:

類別 Table Description
Function 痕跡 使用者產生的記錄,可能屬於任何記錄層級。
Host.Aggregator customMetrics 在可配置期間內,函式調用次數的計數與平均值。 預設時間為30秒或1,000個結果,以先到者為準。 這些記錄都會在 Information 層級寫入。
Host.Executor 痕跡 功能啟動並完成日誌。 成功執行使用 Information、例外使用 Error、 等條件(如毒隊列訊息)使用 Warning。
Host.Results 請求 函式執行的成功或失敗。 這些記錄都會在 Information 層級寫入。

設定記錄層級

執行時 1.x 在 host.json中配置日誌logger.categoryFilter層級:

{
	"logger": {
		"categoryFilter": {
			"defaultLevel": "Warning",
			"categoryLevels": {
				"Host.Results": "Information",
				"Host.Aggregator": "Trace",
				"Function": "Information"
			}
		}
	}
}

當多個類別名稱以相同字串開頭時,會先匹配較具體的類別。 以下範例記錄除層級外Error的所有內容Host.Aggregator:

{
	"logger": {
		"categoryFilter": {
			"defaultLevel": "Information",
			"categoryLevels": {
				"Host": "Error",
				"Function": "Error",
				"Host.Aggregator": "Information"
			}
		}
	}
}

設定取樣

預設的最大遙測速率為每秒五項。 Runtime 1.x 在以下 applicationInsights.sampling條件下配置取樣:

{
	"applicationInsights": {
		"sampling": {
			"isEnabled": true,
			"maxTelemetryItemsPerSecond": 5
		}
	}
}

以下範例結合了類別過濾與抽樣:

{
	"logger": {
		"categoryFilter": {
			"defaultLevel": "Warning",
			"categoryLevels": {
				"Function": "Error",
				"Host.Aggregator": "Error",
				"Host.Results": "Information",
				"Host.Executor": "Warning"
			}
		}
	},
	"applicationInsights": {
		"sampling": {
			"isEnabled": true,
			"maxTelemetryItemsPerSecond": 5
		}
	}
}

執行時 1.x 不支援每個函式設定。

Application Insights 功能

執行時 1.x 會自動收集請求、例外和效能計數器。 它不會自動收集 HTTP、服務匯流排、Event Hubs 或 SQL 相依。 它支援 QuickPulse/Live 指標,無需安全控制通道,並支援取樣,但不支援心跳、服務匯流排 或 Event Hubs 相關性,或完全可設定的遙測收集。

執行時 1.x 中不支援的功能與行為

  • 不支援重試政策。
  • 不支援虛擬網路觸發器的動態規模監控。
  • 在高級和專用方案中,預設的函式執行逾時是無限制的。 在消費型方案中,預設逾時為五分鐘,最多為十分鐘。
  • 使用遠端部署套件的函式應用程式,沒有 Azure 檔案儲存體 共享是無法執行的。

執行時 1.x 內建的綁定

Azure Functions runtime 1.x is retired. 當你遷移到 Runtime 4.x 時,使用目前的綁定擴充套件或擴充套件,並檢查每個綁定是否有設定和類型的變更。

以下綁定隨執行時間 1.x 包含。 C# 屬性欄位顯示程式碼中使用的短名稱。 對應的類別名稱有 Attribute 後綴,例如 BlobTriggerAttribute。 C# 腳本函式則會在 function.json 檔案中定義綁定。

類型 Trigger 輸入 Output C# 屬性
Blob 儲存體 Yes Yes Yes [BlobTrigger] (觸發器)
[Blob] (輸入/輸出)
Azure Cosmos DB Yes Yes Yes [CosmosDBTrigger] (觸發器)
[DocumentDB] (輸入/輸出)
事件方格 Yes 否 否 [EventGridTrigger]
活動中心 Yes 否 Yes [EventHubTrigger] (觸發器)
[EventHub] (輸出)
HTTP 和 Webhook Yes 否 Yes [HttpTrigger]
物聯網樞紐 Yes 否 否 [EventHubTrigger]
行動裝置應用程式 否 Yes Yes [MobileTable]
通知中樞 否 否 Yes [NotificationHub]
佇列儲存體 Yes 否 Yes [QueueTrigger] (觸發器)
[Queue] (輸出)
SendGrid 否 否 Yes [SendGrid]
服務巴士 Yes 否 Yes [ServiceBusTrigger] (觸發器)
[ServiceBus] (輸出)
表格儲存 否 Yes Yes [Table]
計時器 Yes 否 否 [TimerTrigger]
Twilio 否 否 Yes [TwilioSms]

使用 runtime 1.x 的功能應用會自動參考 Microsoft.Azure。WebJobs NuGet 套件(版本 2.x)。

Blob 儲存體、Queue Storage 和 Table Storage 的觸發與綁定使用 WindowsAzure.Storage NuGet 套件的 7.2.1 版本。 如果你參考不同版本的 Storage SDK,並在函式簽名中綁定到 Storage SDK 型別,Functions 執行環境可能會顯示無法綁定到該型別。 請確保您的專案參考 WindowsAzure.Storage 7.2.1。

執行時 1.x 中的 Blob 儲存體 綁定

Runtime 1.x 暴露了已棄用的 Microsoft.WindowsAzure.Storage 命名空間的類型。 Azure 的新型態。Storage.Blobs 需要後續擴充功能和執行時 4.x。

執行時 1.x 中的佇列儲存綁定

Runtime 1.x 暴露了已棄用的 Microsoft.WindowsAzure.Storage 命名空間的類型。 Azure 的更新型別。Storage.Queues 需要後續擴充功能,執行時 4.x。

關於佇列儲存綁定設定,請參閱 執行時 1.x host.json 參考中的佇列部分。 在執行時間 1.x 中,設定 maxPollingInterval 以毫秒表示。 在後續執行版本中,其資料型態為 TimeSpan。

執行時 1.x 中的表格儲存綁定

Runtime 1.x 公開了已棄用的 Microsoft.WindowsAzure.Storage.Table 命名空間的類型。 Azure 的新型態。Data.Tables 需要 Azure Tables 擴充功能和 runtime 4.x。

輸入範例

以下的 C# 函式讀取單一資料表列。 每發送一則訊息到佇列,該函式都會被觸發。 數據列索引鍵值 {queueTrigger} 會將數據列索引鍵系結至訊息元數據,也就是訊息字串。

public class TableStorage
{
	public class MyPoco
	{
		public string PartitionKey { get; set; }
		public string RowKey { get; set; }
		public string Text { get; set; }
	}

	[FunctionName("TableInput")]
	public static void TableInput(
		[QueueTrigger("table-items")] string input,
		[Table("MyTable", "MyPartition", "{queueTrigger}")] MyPoco poco,
		ILogger log)
	{
		log.LogInformation($"PK={poco.PartitionKey}, RK={poco.RowKey}, Text={poco.Text}");
	}
}

以下 C# 函式讀取多個表列, MyPoco 類別源自 TableEntity。

public class TableStorage
{
	public class MyPoco : TableEntity
	{
		public string Text { get; set; }
	}

	[FunctionName("TableInput")]
	public static void TableInput(
		[QueueTrigger("table-items")] string input,
		[Table("MyTable", "MyPartition")] IQueryable<MyPoco> pocos,
		ILogger log)
	{
		foreach (MyPoco poco in pocos)
		{
			log.LogInformation($"PK={poco.PartitionKey}, RK={poco.RowKey}, Text={poco.Text}");
		}
	}
}

輸入使用情況

若要依索引鍵傳回特定實體,請使用衍生自 TableEntity 的係結參數。 具體 TableName的 、 PartitionKey和 RowKey 是用來嘗試從表格中取得特定實體的。

若要執行傳回多個實體的查詢,請繫結至 IQueryable<T> 繼承自 TableEntity 之類型的 。

輸出使用情況

參數和傳回型別支援 out 下列類型:

  • 包含和 PartitionKey 屬性的純舊 CLR 物件 (POCORowKey)。 您可以藉由實作 ITableEntity 或繼承 TableEntity來伴隨這些屬性。
  • ICollector<T> 或 IAsyncCollector<T> ,其中 T 包含 PartitionKey 和 RowKey 屬性。 您可以藉由實作 ITableEntity 或繼承 TableEntity來伴隨這些屬性。

您也可以從記憶體 SDK 系結至 CloudTable作為方法參數。 然後,您可以使用該物件來寫入數據表。

Event Hubs bindings in runtime 1.x

執行時 1.x 包含了 Event Hubs 綁定,且不需要獨立擴充功能。 它暴露了已棄用的 Microsoft.Azure。EventHubs.EventData 類型。 事件中心的觸發器支援 EventData、可序列化的類型、 string,byte[]針對單一事件,以及EventData[]string[]批次。 支援 EventData的輸出綁定、可序列化的 JSON 類型、 string和 byte[]。

對於事件樞紐的觸發器或輸出綁定, function.json中的執行時 1.x 使用事件 path 集線器的屬性作為事件樞紐名稱。 後續執行版本則使用 eventHubName. 當事件集線器名稱同時出現在 連接字串 中時,該值在執行時會覆蓋該屬性。

執行時 1.x host.json 檔案使用頂層 eventHub 物件:

{
	"eventHub": {
		"maxBatchSize": 64,
		"prefetchCount": 256,
		"batchCheckpointFrequency": 1
	}
}
Property Default Description
maxBatchSize 64 每個接收迴圈收到的事件計數上限。
prefetchCount 300 基礎 EventProcessorHost所使用的預設預先擷取計數。
batchCheckpointFrequency 1 建立事件中樞數據指標檢查點之前要處理的事件批次數目。

完整組態參考,請參閱 eventHub 執行時 1.x host.json 參考文獻的章節。

執行時 1.x 中的事件網格綁定

3.x 之前的 Event Grid 擴充版本不支援 CloudEvents 架構。 要使用此結構,請使用 HTTP 觸發器或遷移至 runtime 4.x 及 Event Grid 擴充 3.x。

事件網格的輸出綁定僅適用於執行時 2.x 及以後版本。

繫結型別

執行時 1.x 擴充支援以下參數類型。 它不支援 CloudEvents 架構,而 CloudEvents 架構需要 Event Grid 擴充 3.x。

Binding 參數型別
事件方格觸發程序 Newtonsoft.Json.Linq.JObject
string

觸發程序使用方式

進行中的 C# 類別函式函式支援以下事件網格觸發器類型:

  • Newtonsoft.Json.Linq.JObject
  • System.String

Webhook 端點與系統金鑰

執行時 1.x 事件網格觸發器的託管 webhook 端點使用以下 URL 模式:

https://{functionappname}.azurewebsites.net/admin/extensions/EventGridExtensionConfig?functionName={functionname}&code={systemkey}

要從管理員 API 取得事件網格系統金鑰,請在以下請求中使用函式應用程式主金鑰:

https://{functionappname}.azurewebsites.net/admin/host/systemkeys/eventgridextensionconfig_extension?code={masterkey}

在本地測試中,事件網格觸發端點使用以下 URL 模式:

http://localhost:7071/admin/extensions/EventGridExtensionConfig?functionName={FUNCTION_NAME}

執行時 1.x 中的 服務匯流排 綁定

執行時 1.x 公開了已棄用的 Microsoft.ServiceBus.訊息命名空間的型別。 較新的 Azure 類型。Messaging.ServiceBus 需要 服務匯流排 擴充 5.x 或更新版本,以及 runtime 4.x。

2026 年 9 月 30 日,Azure 服務匯流排 SDK 函式庫 WindowsAzure.ServiceBus、Microsoft.Azure.ServiceBus,以及 com.microsoft.azure.Servicebus 將正式退休。 這些函式庫不符合 Azure SDK 的指引。 服務匯流排 Messaging Protocol(SBMP)的支援也將結束。 雖然你可以在退休後繼續使用舊函式庫,但它們將不再獲得 Microsoft 的官方支援與更新。 如需詳細資訊,請參閱支援服務終止公告。

觸發程序使用方式

佇列或主題訊息觸發器支援以下參數類型:

在 C# 類別函式庫中,屬性的建構子會取隊列名稱或主題名稱,並以訂閱方式命名。 你也可以指定連線的存取權限。 如果您未指定存取權限,預設值為 Manage。

服務匯流排 帳戶選擇

請使用 ServiceBusAccountAttribute 來指定 服務匯流排 帳號。 建構子取用包含服務匯流排 連接字串的應用程式設定名稱。 在參數、方法或類別層級套用該屬性。 以下範例展示了類別層級與方法層級的屬性:

[ServiceBusAccount("ClassLevelServiceBusAppSetting")]
public static class AzureFunctions
{
	[ServiceBusAccount("MethodLevelServiceBusAppSetting")]
	[FunctionName("ServiceBusQueueTriggerCSharp")]
	public static void Run(
		[ServiceBusTrigger("myqueue", AccessRights.Manage)]
		string myQueueItem, ILogger log)
	{
		// ...
	}
}

以下順序決定使用哪個 服務匯流排 帳號:

  1. 屬性 ServiceBusTrigger 的 Connection 屬性。
  2. 套 ServiceBusAccount 用至與 屬性相同的參數 ServiceBusTrigger 的屬性。
  3. 套 ServiceBusAccount 用至函式的屬性。
  4. 套 ServiceBusAccount 用至 類別的屬性。
  5. 應用程式 AzureWebJobsServiceBus 設定。

訊息元數據

以下屬性屬於 BrokeredMessage 與 MessageReceiver 類別。

Property 類型 Description
ContentType string 發送者與接收者用於特定應用邏輯的內容類型識別碼。
CorrelationId string 相互關聯識別碼。
DeadLetterSource string 死信來源。
DeliveryCount Int32 交付次數。
EnqueuedTimeUtc DateTime 排隊時間為協調世界時(UTC)。
ExpiresAtUtc DateTime UTC 的到期時間。
Label string 應用程式特定的標籤。
MessageId string 一個使用者定義的值,服務匯流排 可用來識別重複訊息(若啟用)。
MessageReceiver MessageReceiver 服務匯流排訊息接收器。 可用來放棄、完成或寫死字母訊息。
MessageSession MessageSession 特別適用於已啟用會話的佇列和主題的訊息接收者。
ReplyTo string 回覆排隊的位址。
SequenceNumber long 服務總線指派給訊息的唯一號碼。
To string 寄件地址。
UserProperties IDictionary<string, object> 傳送者所設定的屬性。

輸出使用情況

傳送具有元數據的訊息時, 請使用 BrokeredMessage 類型。 將參數定義為 return 型別屬性。 如果函式退出時參數值為空,函式系統不會產生訊息。

對於 function.json 綁定, accessRights 接受 manage 或 listen ,且預設為 manage。 如果 連接字串 沒有 Manage 權限,請設accessRights為 以防止listen執行時嘗試管理操作。

執行時會建立該佇列,如果不存在,而你設 accessRights 為 manage。

主機設定

關於服務匯流排綁定設定,請參閱執行時 1.x host.json 參考。

執行時 1.x 中的 HTTP 與 webhook 綁定

HTTP 觸發函式預設會回傳 HTTP 200 OK 為空的實體。 後續執行版本會返回 HTTP 204 No Content。

對於 function.json中的 HTTP 觸發器,使用 webHookType 屬性設定觸發器作為指定提供者的 webhook 接收器。 此特性專屬於執行時 1.x。

執行時 1.x 不支援存取已認證的客戶端資訊。

Webhook 模式

Webhook 範本為 webhook 有效載荷提供額外的驗證。 webHookType綁定屬性顯示 webhook 提供者並控制支援的有效載荷:

類型值 Description
genericJson 一般用途的 Webhook 端點,沒有特定提供者的邏輯。 此設定限制請求為 HTTP POST application/json ,內容類型為 。
github 函式會 回應 GitHub Webhook。 請勿搭配 authLevel GitHub Webhook 使用 屬性。
slack 函式會 回應 Slack Webhook。 請勿搭配 authLevel Slack Webhook 使用 屬性。

當你設定 webHookType時,不要設定屬性 methods 。

要回應 GitHub 的 webhooks,請建立帶有 HTTP 觸發器的函式,設webHookType為 github,並將其 URL 和 API 金鑰複製到 GitHub 倉庫的 Add webhook 頁面。

Slack 的 webhook 會產生一個 token,所以用這個 token 設定一個功能專屬的金鑰。

webhook 接收元件負責 webhook 授權。 其機制依 webhook 類型而異,但每個機制都依賴一把金鑰。 預設情況下,會使用所命名 default 的功能鍵。 若要使用另一個金鑰,請設定 webhook 提供者以以下其中一種方式傳送金鑰名稱:

  • 在 clientid 查詢字串參數中,例如 https://<APP_NAME>.azurewebsites.net/api/<FUNCTION_NAME>?clientid=<KEY_NAME>。
  • 在請求標頭裡 x-functions-clientid 。

關於 HTTP 綁定設定,請參閱 執行時 1.x host.json 參考中的 HTTP 部分。

執行時 1.x 的預熱觸發

執行時間 1.x 不支援預熱觸發。

SendGrid 綁定於 runtime 1.x

藉由安裝 NuGet 套件 2.x 版,將延伸模組新增至您的專案。

關於 SendGrid 綁定設定,請參閱 執行時 1.x host.json 參考中的 SendGrid 部分。

Twilio binding in runtime 1.x

藉由安裝 NuGet 套件 1.x 版,將延伸模組新增至您的專案。

對於執行時 1.x,請在 function.json 檔案中使用以下綁定設定屬性:

function.json 屬性 Description
type 設定為 twilioSms。
direction 設定為 out。
name Twilio SMS 簡訊函式程式代碼中使用的變數名稱。
accountSid 設定為儲存你 Twilio 帳號 Sid 的應用程式名稱 (TwilioAccountSid)。 未設定時,預設應用程式設定名稱為 AzureWebJobsTwilioAccountSid。
authToken 設定為一個保存你 Twilio 認證權杖的應用程式名稱(TwilioAccountAuthToken)。 未設定時,預設應用程式設定名稱為 AzureWebJobsTwilioAuthToken。
to 設定為簡訊發送的電話號碼。
from 設定成簡訊發送的電話號碼。
body 如果你不需要在程式碼中動態設定簡訊,可以用硬編碼簡訊。

本文保留的綁定資訊僅用於理解現有應用程式。 更新應用程式時,請遵循執行時遷移指南和目前的綁定文件。

常見問題

Azure Functions runtime 1.x 還被支援嗎?

No. Azure Functions runtime 1.x 的支援於 2026 年 9 月 14 日結束。 將受影響的應用程式遷移到執行環境 4.x 以獲得完整支援。

Python v1 或 Node.js v4 程式模型會使用 runtime 1.x 嗎?

No. 語言程式設計模型版本獨立於執行版本。 Python v1 和 v2 程式模型,以及 Node.js v3 和 v4 程式模型,皆運行於執行時 4.x。