共用方式為


使用 Azure Functions 開發Node.js無伺服器解決方案

Azure Functions 提供無伺服器程式代碼基礎結構,可讓您建立回應式隨選 HTTP 端點。 無伺服器應用程式是由 JavaScript 或 TypeScript 程式代碼所組成,可回應各種事件。

函式提供您:

  • Web 服務的抽象概念 - 您專注於程式代碼,而不是基礎結構。

  • 與 Azure 服務整合 - 觸發程式使用事件進入或移出 Azure 服務

  • 與 JavaScript 套件整合 - 搭配無伺服器程式代碼使用您最愛的 npm 套件

  • 範例的 Azure 無伺服器社群連結庫

什麼是函式資源?

Azure 函式資源是單一 Azure 地理位置中所有相關函式的邏輯單元。 資源可以包含單一函式或許多函式,這些函式可以彼此獨立,或與輸入或輸出系結相關。 您可以從許多常見函式中選取,或建立自己的函式。

函式資源設定包含一般無伺服器設定,包括環境變數、驗證、記錄和 CORS。

持久、具狀態的函式

Durable Functions 會保留 狀態,或在 Azure 中管理長時間執行的函式。 在 JavaScript 中建立您的第一個耐久函式。

靜態 Web 應用程式包含函式

開發靜態前端用戶端應用程式(例如 Angular、React 或 Vue),其也需要無伺服器 API 時,請使用 靜態 Web 應用程式 搭配函式將兩者組合在一起。

從用戶端應用程式到 API 的 Proxy

如果您想要使用靜態 Web 應用程式部署 API,則不需要 Proxy 用戶端應用程式的 API 呼叫。 為您建立 Proxy,包括本機和遠端開發。

使用靜態 Web 應用程式和 Azure Functions 在本機開發時, Azure Static Web App CLI 會提供本機 Proxy。

您需要為 Azure 函式設定的一般安全性設定

下列常見設定應設定為保護您的 Azure 函式安全:

  • 組態設定
    • 組態設定 - 針對不會影響安全性的設定建立應用程式設定。
    • 秘密和密鑰 - 對於任何影響安全性的設定,請建立 Azure 金鑰保存庫,並從您的 金鑰保存庫 提取這些設定。
    • 平台設定上的 FTP 狀態 - 根據預設,允許所有設定。 您必須只選取 FTPS,或完全停用 FTP 以改善安全性。
  • API CORS - 設定您的用戶端網域。 請勿使用 *,表示所有網域。
  • HTTPS 的 TLS/SSL 設定 - 根據預設,您的 API 會接受 HTTP 和 HTTPS 要求。 只在 TLS/SSL 設定啟用 HTTPS。 由於函式應用程式裝載於安全子域上,因此您可以立即使用它, https並延遲購買功能變數名稱,並使用網域的憑證,直到您準備就緒為止。
  • 部署位置 - 建立部署位置,例如 stagepreflight ,並推送至該位置。 當您準備好時,將此階段位置交換至生產環境。 不要習慣手動推送到生產環境。 您的程式代碼基底應該能夠指出位置上的版本或認可。

開發 Azure Functions 的必要條件

HTTP 要求的簡單 JavaScript 函式

函式是具有要求和內容信息的導出異步函式。 下列 Azure 入口網站 的部分螢幕快照顯示函式程序代碼。

import { app, HttpRequest, HttpResponseInit, InvocationContext } from "@azure/functions";

export async function status(request: HttpRequest, context: InvocationContext): Promise<HttpResponseInit> {
    context.log(`Http function processed request for url "${request.url}"`);

    return {
        status: 200,
        jsonBody: {
            env: process.env
        }
    };
};

app.http('status', {
    route: "status",
    methods: ['GET'],
    authLevel: 'anonymous',
    handler: status
});

使用 Visual Studio Code 和擴充功能在本機開發函式

使用 Visual Studio Code 建立您的 第一個函式 。 Visual Studio Code 使用 Azure Functions 擴充功能簡化許多詳細數據。

此延伸模組可協助您使用通用範本建立 JavaScript 和 TypeScript 函式。

與其他 Azure 服務整合

無伺服器函式會移除大部分的伺服器組態和管理,因此您可以只專注於所需的程序代碼。

  • 低程式代碼函式:使用 Azure Functions,您可以建立由其他 Azure 服務觸發的函式,或使用觸發程式系結將輸出至其他 Azure 服務
  • 高程式代碼函式:如需更多控制,請使用 Azure SDK 來協調和控制其他 Azure 服務。

下一步

使用下表深入瞭解 Azure Functions 與 Node.js

要瞭解 範例
什麼是 Contoso 房地產 Contoso 房地產
使用 Azure Functions 建置無伺服器 API MicrosoftDocs/mslearn-build-api-azure-functions
Node.js 將 Express API 重構為無伺服器 Azure Functions API MicrosoftDocs/mslearn-module-shifting-nodejs-express-apis-to-serverless
使用 Azure Functions 和 Blob 儲存體 上傳和分析檔案 Azure-Samples/msdocs-storage-bind-function-service