使用系結將函式 連線 至 Azure 服務
當您建立函式時,您的專案中會從一組觸發程式範本新增語言特定的觸發程式代碼。 如果您想要使用輸入或輸出系結將函式連線到其他服務,則必須在函式中新增特定的系結定義。 若要深入了解系結,請參閱 Azure Functions 觸發程式和系結概念。
本機開發
當您在本機開發函式時,您必須更新函式程式代碼以新增系結。 針對使用function.json的語言, Visual Studio Code 提供工具將系結新增至函式。
根據範例手動新增系結
將系結新增至現有函式時,您必須在程式碼中將系結特定屬性新增至函式定義。
將系結新增至現有函式時,您必須在程式碼中將系結特定的批註新增至函式定義。
將系結新增至現有的函式時,您需要更新函式程序代碼,並將定義新增至function.json組態檔。
下列範例顯示將佇列 儲存體 輸出系結新增至 HTTP 觸發函式之後的函式定義:
因為 HTTP 觸發的函式也會傳回 HTTP 回應,因此函式會傳回 MultiResponse
物件,此物件同時代表 HTTP 和佇列輸出。
[Function("HttpExample")]
public static MultiResponse Run([HttpTrigger(AuthorizationLevel.Function, "get", "post")] HttpRequest req,
FunctionContext executionContext)
{
這個範例是包含輸出系結之 MultiResponse
物件的定義:
public class MultiResponse
{
[QueueOutput("outqueue",Connection = "AzureWebJobsStorage")]
public string[] Messages { get; set; }
public IActionResult HttpResponse { get; set; }
}
將該範例套用至您自己的專案時,您可能需要變更 HttpRequest
為 HttpRequestData
和 IActionResult
, HttpResponseData
視您是否使用 ASP.NET Core 整合 而定。
當函式完成時,訊息會傳送至佇列。 定義輸出系結的方式取決於您的進程模型。 如需詳細資訊,包括您可以參考的範例系結程式代碼連結,請參閱 將系結新增至函式。
@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) {
如需詳細資訊,包括您可以參考的範例系結程式代碼連結,請參閱 將系結新增至函式。
$outputMsg = $name
Push-OutputBinding -name msg -Value $outputMsg
如需詳細資訊,包括您可以參考的範例系結程式代碼連結,請參閱 將系結新增至函式。
@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.')
您定義輸出系結的方式取決於 Python 模型的版本。 如需詳細資訊,包括您可以參考的範例系結程式代碼連結,請參閱 將系結新增至函式。
使用下表來尋找可用來引導您更新現有函式的特定系結類型範例。 首先,選擇對應至您項目的語言索引標籤。
C# 的系結程式代碼取決於 特定進程模型。
服務 | 範例 | 範例 |
---|---|---|
Blob 儲存體 | 觸發程序 輸入 輸出 |
連結 |
Azure Cosmos DB | 觸發程序 輸入 輸出 |
連結 |
Azure 資料總管 | 輸入 輸出 |
連結 |
Azure SQL | 觸發程序 輸入 輸出 |
|
事件方格 | 觸發程序 輸出 |
連結 |
事件中樞 | 觸發程序 輸出 |
|
IoT 中樞 | 觸發程序 輸出 |
|
HTTP | 觸發程序 | 連結 |
佇列儲存體 | 觸發程序 輸出 |
連結 |
RabbitMQ | 觸發程序 輸出 |
|
SendGrid | 輸出 | |
服務匯流排 | 觸發程序 輸出 |
連結 |
SignalR | 觸發程序 輸入 輸出 |
|
表格儲存體 | 輸入 輸出 |
|
計時器 | 觸發程序 | 連結 |
Twilio | 輸出 | 連結 |
服務 | 範例 | 範例 |
---|---|---|
Blob 儲存體 | 觸發程序 輸入 輸出 |
連結 |
Azure Cosmos DB | 觸發程序 輸入 輸出 |
連結 |
Azure 資料總管 | 輸入 輸出 |
|
Azure SQL | 觸發程序 輸入 輸出 |
連結 |
事件方格 | 觸發程序 輸出 |
連結 |
事件中樞 | 觸發程序 輸出 |
|
IoT 中樞 | 觸發程序 輸出 |
|
HTTP | 觸發程序 | 連結 |
佇列儲存體 | 觸發程序 輸出 |
連結 |
RabbitMQ | 觸發程序 輸出 |
|
SendGrid | 輸出 | |
服務匯流排 | 觸發程序 輸出 |
連結 |
SignalR | 觸發程序 輸入 輸出 |
|
表格儲存體 | 輸入 輸出 |
|
計時器 | 觸發程序 | 連結 |
Twilio | 輸出 | 連結 |
服務 | 範例 | 範例 |
---|---|---|
Blob 儲存體 | 觸發程序 輸入 輸出 |
連結 |
Azure Cosmos DB | 觸發程序 輸入 輸出 |
連結 |
Azure SQL | 觸發程序 輸入 輸出 |
|
事件方格 | 觸發程序 輸出 |
連結 |
事件中樞 | 觸發程序 輸出 |
|
IoT 中樞 | 觸發程序 輸出 |
|
HTTP | 觸發程序 | 連結 |
佇列儲存體 | 觸發程序 輸出 |
連結 |
RabbitMQ | 觸發程序 輸出 |
|
SendGrid | 輸出 | |
服務匯流排 | 觸發程序 輸出 |
連結 |
SignalR | 觸發程序 輸入 輸出 |
|
表格儲存體 | 輸入 輸出 |
|
計時器 | 觸發程序 | 連結 |
Twilio | 輸出 | 連結 |
Python 的系結程式代碼取決於 Python 模型版本。
Visual Studio Code
當您使用 Visual Studio Code 開發函式,而您的函式使用function.json檔案時,Azure Functions 擴充功能可以自動將系結新增至現有的function.json檔案。 若要深入瞭解,請參閱 新增輸入和輸出系結。
Azure 入口網站
當您在 Azure 入口網站 中開發函式時,您可以在指定函式的 [整合] 索引標籤中新增輸入和輸出系結。 新的系結會根據您的語言,新增至function.json檔案或方法屬性。 下列文章示範如何在入口網站中將系結新增至現有函式的範例: