使用 Java 和 Gradle 建立函數並將其發佈至 Azure
本文說明如何使用 Gradle 命令列工具建置 Java 函數專案,並將其發佈至 Azure Functions。 完成時,您的函式程式碼會在 Azure 的無伺服器主控方案中執行,並由 HTTP 要求所觸發。
注意
若 Gradle 不是您慣用的開發工具,請參閱供 Java 開發人員參考的類似教學課程,內容分別使用 Maven、IntelliJ IDEA 和 VS Code 等開發工具。
必要條件
若要使用 Java 開發函式,您必須安裝下列項目:
- Java Developer Kit 第 8 版、第 11 版、第 17 版或第 21 版。 (目前僅 Linux 上的預覽版支援 Java 21)
- Azure CLI
- Azure Functions Core Tools 2.6.666 版或更新版本
- Gradle 6.8 以上版本
您也需要作用中的 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 設為 FUNCTION
或 ADMIN
,在本機執行時便不需要存取金鑰。
在終端機中使用 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 (如 FUNCTION
或 ADMIN
),則須取得函數金鑰,才能透過 HTTP 呼叫函數端點。 Azure 入口網站是取得函式金鑰的最簡單方式。
取得 HTTP 觸發程序 URL
您可以從 Azure 入口網站取得觸發函式所需的 URL 和函式金鑰。
瀏覽至 Azure 入口網站 、登入,在頁面頂端的 [搜尋] 中輸入您函式應用程式的 appName,然後按 Enter。
在函數應用程式中,選取 [函數],選擇您的函數,接著按一下右上方的 [取得函數 URL]。
選擇 [預設值 (函式金鑰)],然後選取 [複製]。
您現在可以使用所複製的 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。 現在,請藉由下列作業擴充您的函式...