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。您可以在帮助文档和我们的隐私声明中了解有关数据收集和使用的更多信息。您使用该软件即表示您同意这些做法。
麻省理工学院