练习 - 从 GitHub 工作流部署 Bicep 文件
GitHub Actions 本质上类似于 Azure Pipelines。 它们提供了自动化软件开发和部署的方法。 在本练习中,你将了解如何使用 GitHub Actions 来部署 Bicep 文件。
先决条件
- 你将需要一个可以在此处免费创建的 GitHub 帐户。
- 还需要 GitHub 存储库来存储之前在练习 - 创建 Bicep 模板中创建的 Bicep 文件和工作流。 创建 GitHub 存储库后,向其推送 Bicep 文件。
- 若要部署到 Azure,需要访问 Azure 订阅,可以在此处免费创建。
在 Azure 中创建服务主体
若要将资源部署到 Azure,需要创建 GitHub 可以使用的服务主体。 因此,请在 Azure 门户打开终端或使用 Cloud Shell,然后键入以下命令:
az login
az ad sp create-for-rbac --name myApp --role contributor --scopes /subscriptions/{subscription-id}/resourceGroups/Bicep --sdk-auth
注意
不要忘记将订阅 ID 替换为你的订阅 ID。
操作成功后,它应输出包含 tenantId
、subscriptionId
、clientId
、和 clientSecret
等更多如下属性的 JSON 对象。
{
"clientId": "<GUID>",
"clientSecret": "<GUID>",
"subscriptionId": "<GUID>",
"tenantId": "<GUID>",
(...)
}
记下此对象,因为需要将其添加到 GitHub 机密。
创建 GitHub 机密
在 GitHub 存储库中,导航到“设置”>“机密”>“操作”。 创建一个名为 AZURE_CREDENTIALS
的新机密,并粘贴从上一步获取的整个 JSON 对象。
为具有名称(例如 AZURE_RG
)的资源组名称创建另一个机密,再创建一个订阅机密。
创建 GitHub 操作
首先,导航到存储库并选择“操作”菜单。 然后,设置工作流以在存储库中创建空工作流。 如果需要,可以将文件重命名为其他名称。
将文件的内容替换为以下代码片段:
on: [push] name: Azure ARM jobs: build-and-deploy: runs-on: ubuntu-latest steps: # Checkout code - uses: actions/checkout@main # Log into Azure - uses: azure/login@v1 with: creds: ${{ secrets.AZURE_CREDENTIALS }} # Deploy Bicep file - name: deploy uses: azure/arm-deploy@v1 with: subscriptionId: ${{ secrets.AZURE_SUBSCRIPTION }} resourceGroupName: ${{ secrets.AZURE_RG }} template: ./main.bicep parameters: storagePrefix=stg failOnStdErr: false
可以随意将存储帐户前缀替换为自己的前缀。
注意
工作流的第一部分定义触发器及其名称。 其余部分定义作业,并使用一些任务签出代码、登录到 Azure 并部署 Bicep 文件。
选择“开始提交”,并在弹出对话框中输入标题和说明。 然后依次选择“直接提交到主分支”、“提交新文件”。
导航到“操作”选项卡,并选择应运行的新建操作。
监视状态,并在作业完成时间检查 Azure 门户,以查看是否正在创建存储帐户。