共用方式為


使用 Azure Functions 開發無伺服器 Node.js 應用程式

Azure Functions 提供功能強大的無伺服器基礎結構,可讓您輕鬆開發可調整且隨選的 HTTP 端點。 藉由使用 JavaScript 或 TypeScript,您可以建立回應各種事件的無伺服器應用程式,讓您專注於撰寫程式代碼,而不必擔心管理伺服器。 本指南可協助您開始使用 Azure Functions 開發無伺服器 Node.js 應用程式,順暢地與其他 Azure 服務整合。

什麼是函式資源?

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

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

持久、具狀態的函式

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

靜態 Web 應用程式包含函式

當您開發靜態前端用戶端應用程式(例如 Angular、React 或 Vue),且它也需要無伺服器 API 時,可以使用 靜態 Web 應用程式 和函式將兩者組合在一起。

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

如果您想要使用靜態 Web 應用程式部署 API,則不需要 Proxy 用戶端應用程式的 API 呼叫。 當您將 Azure Functions 應用程式部署為受控應用程式時,會為您建立 Proxy。

當您使用靜態網站應用程式和 Azure Functions 在本機開發時,Azure Static Web App CLI 會提供本機代理。

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

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

  • 組態設定
    • 組態設定 - 針對不會影響安全性的設定建立應用程式設定。
    • 秘密和密鑰 - 對於任何影響安全性的設定,請建立 Azure 金鑰保存庫,並從您的 金鑰保存庫 提取這些設定。
    • 平台設定上的 FTP 狀態 - 根據預設,允許所有設定。 您必須只選取 FTPS,或完全停用 FTP 以改善安全性。
  • 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 服務整合

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