azd
自動部署Azure API 中心是一項服務,可協助你開發和維護組織 API 的結構化清單。透過 API Center,您可以在集中位置追蹤所有 API,無論其類型、生命週期階段或部署位置為何。 API Center 支援 API 發現、重複使用和治理,從而增強 API 平台團隊的能力。
API 中心入口網站是一個網站,使開發人員和利害關係人能夠無縫地發現和使用 API。我們的 API 中心入口網站參考實作使 API 平台團隊能夠為 API 消費者提供基於 Web 的 API 發現和使用體驗。
API Center 入口網站參考實作提供:
對於免費 SKU API Center 實例,無論 API Center 中有多少個 API,API Center 入口網站中最多會顯示 5 個 API。
對於標準SKU,沒有限制,所有API都會顯示。
在開始之前,請確保您已滿足以下要求:
您有兩種選擇來部署此自架 API 中心入口網站:
azd
) 一步驟部署入口網站應用程式。建議使用此選項以簡化部署過程。azd
自動部署注意:您將需要此選項的其他先決條件
- ✅ Azure 開發人員 CLI (
azd
)- ✅ Azure CLI
- ✅ GitHub CLI
將此儲存庫分叉到您的 GitHub 帳戶並克隆它。
git clone https://github.com/ < YOUR_GITHUB_ALIAS > /APICenter-Portal-Starter.git
使用以下命令登入。然後,您將能夠使用azd
cli 快速設定和部署應用程式。
# Authenticate with Azure Developer CLI
azd auth login
# Authenticate with Azure CLI
az login
執行azd up
將所有資源預配到 Azure 並將程式碼部署到這些資源。
azd up
輸入環境名稱並選擇您所需的subscription
和location
。然後,系統會要求您輸入更多值:
apiCenterExisted
)。apiCenterExisted
值為true
),請傳遞apiCenterName
、 apiCenterRegion
和apiCenterResourceGroupName
的值。apiCenterExisted
值為false
),請將它們留空。staticAppLocation
值。稍等片刻,等待資源部署完成。有兩種情況:
- 具有新 API 中心的入口網站 - 您需要將
apiCenterExisted
指定為False
,並將apiCenterName
、apiCenterRegion
和apiCenterResourceGroupName
留空。- 具有現有 API 中心的入口網站 – 您需要為
apiCenterExisted
提供True
並將值傳遞給apiCenterName
、apiCenterRegion
和apiCenterResourceGroupName
。
如果您想將 CI/CD 管道與 GitHub Actions 集成,可以使用以下命令建立 GitHub 儲存庫並將程式碼推送到儲存庫。首先,登入GitHub。
# Authenticate with GitHub CLI
gh auth login
執行以下命令來更新 GitHub 儲存庫變數。
注意:在執行以下命令之前,請確保您已將此儲存庫分叉到您的 GitHub 帳戶。
# Bash
AZURE_CLIENT_ID= $( ./infra/scripts/get-azdvariable.sh --key AZURE_CLIENT_ID )
azd pipeline config --principal-id $AZURE_CLIENT_ID
# PowerShell
$AZURE_CLIENT_ID = $( ./infra/scripts/Get-AzdVariable.ps1 -Key AZURE_CLIENT_ID )
azd pipeline config --principal-id $AZURE_CLIENT_ID
現在,你可以走了!將程式碼推送到 GitHub 儲存庫或手動執行 GitHub Actions 工作流程以部署您的入口網站。
預設情況下,入口網站顯示 API Center 實例中的所有 API。您可以使用 OData 查詢語法在public/config.example
檔案中設定scopingFilter
屬性,將入口網站實例配置為過濾掉某些 API。例如:
{
"dataApiHostName": ".data..azure-apicenter.ms/workspaces/default",
"title": "API portal",
"authentication": {
"clientId": "",
"tenantId": "",
"scopes": ["https://azure-apicenter.net/user_impersonation"],
"authority": "https://login.microsoftonline.com/"
},
"scopingFilter": "customProperties/compliant eq true"
}
有關可過濾屬性的完整列表,請參閱資料平面 API 資源模型。
注意:您將需要此選項的其他先決條件
- ✅ 使用正確的 API 權限範圍和重定向 URI 在 Microsoft Entra ID 租用戶中設定應用程式註冊。
- ✅ 透過正確的角色分配啟用入口網站登入
請依照以下步驟設定您的開發環境:
克隆儲存庫
git clone https://github.com/Azure/APICenter-Portal-Starter.git
切換到主分支:
git checkout main
將public/config.example
檔案複製或重新命名為public/config.json
。
配置public/config.json
檔案以指向 Azure API 中心服務。這是一個設定範例:
{ "dataApiHostName" : ".data. , "title" : " API portal " , "authentication" : { "clientId" : ".azure-apicenter.ms/workspaces/default " " , "tenantId" : "" , "scopes" : [ " https://azure-apicenter.net/user_impersonation " ], "authority" : " https://login.microsoftonline.com/ " } }
安裝所需的軟體包。
npm install
啟動開發伺服器 - 此命令將以本機運行的開發模式啟動入口網站:
npm start
Azure 靜態 Web 應用程式是一項自動建置全端 Web 應用並將其從程式碼儲存庫部署到 Azure 的服務。本教學課程使用 GitHub Actions 部署到 Azure 靜態 Web 應用程式。
若要查看在靜態 Web 應用程式上執行的 API 中心門戶,請從在 Azure 入口網站中建立的靜態 Web 應用程式資源的「概述」標籤中按一下「在瀏覽器中檢視應用程式」 。
有關如何改進範本的想法和指導,請參閱貢獻指南。謝謝你!
☀️ 我們很高興收到您的來信! ☀️
您的回饋對我們非常寶貴,我們鼓勵您在儲存庫的問題部分分享您的想法和建議。您也可以在那裡報告錯誤或提交功能請求。請放心,我們將密切注意您的意見以不斷改進。雖然我們致力於監控這些問題,但請注意,此管道不屬於我們的 Microsoft Azure 服務支援的一部分。
Microsoft Azure 支援協助僅限於執行 linting 引擎的 Azure Function 應用程式的初始設定。對於環境因素造成的問題,例如(但不限於):託管平台、開發環境、網路配置,提供盡力支援。
如果您需要擴展 linting 引擎或改進現有規則的技術協助,請利用現有技術社區,例如 Stack Overflow。我們不透過 GitHub Issues 提供支援。
我們歡迎並感謝社區的貢獻。
該專案採用了微軟開源行為準則。有關詳細信息,請參閱行為準則常見問題解答或聯繫 [email protected] 提出任何其他問題或意見。
商標 本項目可能包含項目、產品或服務的商標或標誌。 Microsoft 商標或標誌的授權使用須遵守且必須遵循 Microsoft 的商標和品牌指南。在此項目的修改版本中使用 Microsoft 商標或標誌不得混淆或暗示 Microsoft 贊助。任何對第三方商標或標誌的使用均須遵守這些第三方的政策。
數據收集。該軟體可能會收集有關您以及您使用該軟體的資訊並將其發送給 Microsoft。 Microsoft 可能會使用此資訊來提供服務並改善我們的產品和服務。您可以按照儲存庫中的說明關閉遙測。該軟體中還有一些功能可能使您和 Microsoft 能夠從您的應用程式的使用者收集資料。如果您使用這些功能,則必須遵守適用的法律,包括向您的應用程式的使用者提供適當的通知以及 Microsoft 隱私權聲明的副本。我們的隱私權聲明位於 https://go.microsoft.com/fwlink/?LinkID=824704。您可以在說明文件和我們的隱私權聲明中了解有關資料收集和使用的更多資訊。您使用該軟體即表示您同意這些做法。
麻省理工學院