使用 Azure CLI 自动执行任务

自动执行 Azure 任务是对托管环境进行持续部署的一个常见要求。 对于从任何位置管理任务并进行部署的 JavaScript 开发人员,建议使用 Azure CLI

了解适用于 JavaScript 开发人员的常见任务命令。

使用 Azure CLI 自动执行

若要自动执行 Azure CLI,必须在环境中安装 CLI。 一些常见的方法包括:

使用示例命令

  1. 将括号中的变量 <...> 替换为你自己的值。
  2. <MY_GITHUB_DEFAULT_BRANCH_NAME> 的 GitHub 存储库值特定于所使用的存储库。 目前,典型值为 maindefault。 旧存储库可使用 master

使用 Azure CLI 通过托管标识对自动化任务进行身份验证

对于自动化,使用 az login to the Azure CLI with managed identity 进行身份验证。

az login --identity

使用 Azure CLI 通过服务主体进行身份验证以执行自动化任务

创建服务主体后使用用户的服务主体登录。

read -sp "Azure password: " AZ_PASS && echo && \ 
    az login --service-principal \
    -u <MY-SP-APP-URL> \
    -p $AZ_PASS \
    --tenant <MY-TENANT>

使用 Azure CLI 通过用户凭据进行身份验证以执行自动化任务

使用以下命令通过用户凭据进行身份验证

az login -u <MY_AZURE_USERNAME> -p <MY_AZURE_PASSWORD>

为资源创建资源组

资源组是 Azure 资源的逻辑集合。 逻辑分组基于项目的特定区域中所需的服务。 了解命名约定。 在创建 Azure 服务资源之前, 请使用 az group create 命令创建资源组。

az group create \
    --name <MY-AZURE-RESOURCE_GROUP_NAME> \
    --location <AZURE_REGION_LOCATION>

创建 Azure 静态 Web 应用

使用 az staticwebapp create 命令创建新的静态 Web 应用

az staticwebapp create \
    --name <MY_AZURE_WEB_APP_NAME> \
    --resource-group <MY-AZURE-RESOURCE_GROUP_NAME> \
    --source https://github.com/<MY_GITHUB_ACCOUNT_NAME>/<MY_AZURE_WEB_APP_NAME> \
    --location <AZURE_REGION_LOCATION> \
    --branch <MY_GITHUB_DEFAULT_BRANCH_NAME> \
    --app-artifact-location "<MY_WEB_APP_BUILD_DIRECTORY_NAME>" \
    --token <MY_GITHUB_PERSONAL_ACCESS_TOKEN>

部署 Azure 静态 Web 应用

若要部署应用,请在上一集中创建资源期间推送到远程 GitHub 分支集。

git push <REMOTE_NAME> <MY_GITHUB_DEFAULT_BRANCH_NAME>

以下是此命令的示例:

git push origin main

删除静态 Web 应用

使用 az staticwebapp delete 命令删除静态 Web 应用。

az staticwebapp delete && \
    --name <MY_AZURE_WEB_APP_NAME> && \
    --resource-group <MY-AZURE-RESOURCE_GROUP_NAME>

创建 Azure 函数应用

基于消耗的函数应用需要函数应用和存储资源。

  1. 使用 az storage account create 创建存储资源:

    az storage account create \
      --name <MY-AZURE-STORAGE> \
      --location <AZURE_REGION_LOCATION> \
      --resource-group <MY-AZURE-RESOURCE_GROUP_NAME> \
      --sku Standard_LRS    
    
  2. 使用 az functionapp create 创建函数应用资源:

    az functionapp create \
      --name <MY-AZURE-FUNCTION> \
      --storage-account <MY-AZURE-STORAGE> \
      --consumption-plan-location <AZURE_REGION_LOCATION> \
      --resource-group <MY-AZURE-RESOURCE_GROUP_NAME> \
      --functions-version 2
    

创建 Azure 函数 API 终结点

没有用于为 本地 开发项目创建 Azure 函数 API 终结点的 Azure CLI 命令。 Visual Studio Code Azure 函数扩展是创建本地 Azure 函数项目并将 API 终结点添加到项目的建议方法。

创建 Azure 函数部署槽位

然后,创建部署槽位,以便快速还原部署。 使用 az functionapp deployment slot create 命令创建 部署速度缓慢。

az functionapp deployment slot create \
    --name <MY-AZURE-FUNCTION> \
    --resource-group <MY-AZURE-RESOURCE_GROUP_NAME> \
    --slot <MY-SLOT-NAME> \
    --configuration-source <MY-PRODUCTION-SLOT> 

从 git 部署 Azure 函数

使用 az functionapp 部署源配置从 git 或 Mercurial 存储库管理部署。从以下选项中选择设置的 --repository-type 存储库类型:externalgit、git、github、localgit、mercurial。

az functionapp deployment source config --repo-url \
    --branch <MY-REPO-BRANCH> \
    --git-token <MY-GIT-TOKEN> \
    --name <MY-AZURE-FUNCTION> \
    --repository-type <MY-REPO-TYPE> \
    --resource-group <MY-AZURE-RESOURCE_GROUP_NAME> \
    --slot <MY-SLOT-NAME> \

交换 Azure 函数槽

使用 az functionapp deployment slot swap 命令交换槽。 槽操作选项包括:预览、重置、交换

az functionapp deployment slot swap \
    --resource-group <MY-AZURE-RESOURCE_GROUP_NAME> \
    --name <MY-AZURE-FUNCTION> \
    --slot <MY-SLOT-NAME> \
    --action <YOUR-ACTION> \
    --target-slot <MY-OTHER-SLOT-NAME>

删除 Azure 函数

使用 [az functionapp delete] 命令删除函数应用。

az functionapp delete \
    --resource-group <MY-AZURE-RESOURCE_GROUP_NAME> \
    --name <MY-AZURE-FUNCTION> 

后续步骤