分享方式:


使用 Java 和 Gradle 建立函數並將其發佈至 Azure

本文說明如何使用 Gradle 命令列工具建置 Java 函數專案,並將其發佈至 Azure Functions。 完成時,您的函式程式碼會在 Azure 的無伺服器主控方案中執行,並由 HTTP 要求所觸發。

注意

若 Gradle 不是您慣用的開發工具,請參閱供 Java 開發人員參考的類似教學課程,內容分別使用 MavenIntelliJ IDEAVS Code 等開發工具。

必要條件

若要使用 Java 開發函式,您必須安裝下列項目:

您也需要作用中的 Azure 訂用帳戶。 如果您沒有 Azure 訂用帳戶,請在開始之前先建立 Azure 免費帳戶

重要

JAVA_HOME 環境變數必須設定為 JDK 的安裝位置,才能完成本快速入門。

準備 Functions 專案

使用下列命令複製範例專案:

git clone https://github.com/Azure-Samples/azure-functions-samples-java.git
cd azure-functions-samples-java/

開啟 build.gradle,並將下節中的 appName 變更為唯一名稱,以避免在部署至 Azure 時發生網域名稱衝突。

azurefunctions {
    resourceGroup = 'java-functions-group'
    appName = 'azure-functions-sample-demo'
    pricingTier = 'Consumption'
    region = 'westus'
    runtime {
      os = 'windows'
    }
    localDebug = "transport=dt_socket,server=y,suspend=n,address=5005"
}

在文字編輯器中,從 src/main/java 路徑開啟新的 Function.java 檔案,並檢閱所產生的程式碼。 此程式碼是一個 HTTP 觸發函式,可回應要求的本文。

在本機執行函式

執行下列命令,以建置並執行函式專案:

gradle jar --info
gradle azureFunctionsRun

當您在本機執行專案時,您會在 Azure Functions Core Tools 中看到如下所示的輸出:

...

Now listening on: http://0.0.0.0:7071
Application started. Press Ctrl+C to shut down.

Http Functions:

    HttpExample: [GET,POST] http://localhost:7071/api/HttpExample
...

在新的終端視窗中,從命令列使用 cURL 命令觸發函數:

curl -w "\n" http://localhost:7071/api/HttpExample --data AzureFunctions

預期輸出如下:

Hello, AzureFunctions

注意

若將 authLevel 設為 FUNCTIONADMIN,在本機執行時便不需要存取金鑰

在終端機中使用 Ctrl+C 可停止函式程式碼。

將函式部署到 Azure

當您第一次部署函式應用程式時,會在 Azure 中建立函式應用程式和相關資源。 請先使用 az login Azure CLI 命令登入您的 Azure 訂用帳戶,才可部署。

az login

提示

如果您的帳戶可以存取多個訂用帳戶,請使用 az account set 來設定此工作階段的預設訂用帳戶。

使用下列命令,將您的專案部署至新的函式應用程式。

gradle azureFunctionsDeploy

此作業會根據 build.gradle 檔案中的值,在 Azure 中建立下列資源:

  • 資源群組。 以您提供的 resourceGroup 命名。
  • 。 Functions 所需。 此名稱會根據儲存體帳戶名稱需求隨機產生。
  • Service 方案的資源。 無伺服器使用量方案,可在指定區域主控您的函數應用程式。 此名稱是隨機產生的。
  • 函式應用程式。 函式應用程式是您函式的部署和執行單位。 此名稱是您的 appName ,其附加隨機產生的數字。

部署也會封裝專案檔案,並使用 zip deployment 將其部署至新的函式應用程式,並已啟用從套件執行模式。

範例專案中的 HTTP 觸發程序 authLevel 為 ANONYMOUS,如此將跳過驗證。 但若使用其他 authLevel (如 FUNCTIONADMIN),則須取得函數金鑰,才能透過 HTTP 呼叫函數端點。 Azure 入口網站是取得函式金鑰的最簡單方式。

取得 HTTP 觸發程序 URL

您可以從 Azure 入口網站取得觸發函式所需的 URL 和函式金鑰。

  1. 瀏覽至 Azure 入口網站 、登入,在頁面頂端的 [搜尋] 中輸入您函式應用程式的 appName,然後按 Enter。

  2. 在函數應用程式中,選取 [函數],選擇您的函數,接著按一下右上方的 [取得函數 URL]

    從 Azure 入口網站複製函式 URL

  3. 選擇 [預設值 (函式金鑰)],然後選取 [複製]

您現在可以使用所複製的 URL 來存取您的函式。

在 Azure 中驗證函式

若要使用 cURL 驗證在 Azure 上執行的函式應用程式,請將下列範例中的 URL 取代為您從入口網站複製的 URL。

curl -w "\n" http://azure-functions-sample-demo.azurewebsites.net/api/HttpExample --data AzureFunctions

這會在要求本文中使用 AzureFunctions,將 POST 要求傳送至函式端點。 您會看見下列回應。

Hello, AzureFunctions

下一步

您已使用 HTTP 觸發的函式建立 Java 函式專案,並在本機電腦上執行,然後部署到 Azure。 現在,請藉由下列作業擴充您的函式...