练习 - 使用 CLI 创建 Azure 网站

下一步,使用 Azure CLI 创建资源组,然后将 Web 应用部署到此资源组。

使用资源组

当你使用自己的计算机和 Azure 订阅时,首先需要使用 az login 命令登录到 Azure。 但是,使用基于浏览器的 Cloud Shell 环境时,并非必须进行登录。

接下来,你通常会使用 az group create 命令为所有相关 Azure 资源创建资源组;在本练习中,已为你创建以下资源组:[沙盒资源组名称]

  1. 本练习中的第一步是创建几个要在稍后命令中使用的变量。

    export RESOURCE_GROUP=<rgn>[sandbox resource group name]</rgn>
    export AZURE_REGION=centralus
    export AZURE_APP_PLAN=popupappplan-$RANDOM
    export AZURE_WEB_APP=popupwebapp-$RANDOM
    
  2. 可以要求 Azure CLI 在表中列出所有资源组。 当你在免费 Azure 沙盒中时,应该只有一个资源组。

    az group list --output table
    

    提示

    可使用“复制”按钮将命令复制到剪贴板。 若要粘贴,请右键单击 Cloud Shell 窗口中的新行,然后选择“粘贴”或使用 Shift+Insert 键盘快捷方式(macOS 上为 ⌘+V)。

  3. 随着你完成更多 Azure 开发,可能会生成多个资源组。 如果组列表中有多个项,则可以通过添加 --query 选项来筛选返回值。 请尝试以下命令:

    az group list --query "[?name == '$RESOURCE_GROUP']"
    

    该查询的格式是使用 JMESPath 设置的,后者是 JSON 请求的标准查询语言。 可通过 http://jmespath.org/ 详细了解这种功能强大的筛选器语言。 我们还在“使用 Azure CLI 管理 VM”模块中更深入地介绍了查询。

创建服务计划的步骤

使用 Azure 应用服务运行 Web 应用时,需要为应用所用的 Azure 计算资源付费,资源费用取决于与 Web 应用关联的应用服务计划。 服务计划决定了用于应用数据中心的区域、所用 VM 数量和定价层。

  1. 创建应用服务计划以运行应用。 下述命令指定了免费定价层,但你可运行 az appservice plan create --help 来查看其他定价层。

    备注

    应用和计划的名称在所有 Azure 中必须唯一。 前面创建的变量将分配随机值作为前缀,以确保它们是唯一的。 但是,如果你在创建任何资源时收到错误,则应运行前述命令,以使用新的随机值重置所有变量。

    如果你收到有关资源组的错误,则使用不同的资源组值运行前述命令。

    az appservice plan create --name $AZURE_APP_PLAN --resource-group $RESOURCE_GROUP --location $AZURE_REGION --sku FREE
    

    此命令可能需要几分钟才能完成。

  2. 通过在表中列出所有计划来验证是否已成功创建该服务计划。

    az appservice plan list --output table
    

    将看到如下响应。

    Kind    Location    MaximumNumberOfWorkers    Name                NumberOfSites    ResourceGroup                               Status
    ------  ----------  ------------------------  ------------------  ---------------  ------------------------------------------  --------
    app     Central US  3                         popupappplan-54321  0                Learn-12345678-1234-1234-1234-123456789abc  Ready
    

创建 Web 应用的步骤

接下来,你将在服务计划中创建 Web 应用。 可同时部署代码,但在本例中,我们将在单独的步骤中分别创建 Web 应用和部署代码。

  1. 要创建 Web 应用,需提供 Web 应用名称以及在前面创建的应用计划的名称。 正如应用计划名称一样,Web 应用名称也必须唯一,并且你之前创建的变量将分配随机值 - 对本练习而言这已足够。

    az webapp create --name $AZURE_WEB_APP --resource-group $RESOURCE_GROUP --plan $AZURE_APP_PLAN
    
  2. 通过在表中列出所有应用来验证是否已成功创建该应用。

    az webapp list --output table
    

    将看到如下响应。

    Name               Location    State    ResourceGroup                               DefaultHostName                      AppServicePlan
    -----------------  ----------  -------  ------------------------------------------  -----------------------------------  ------------------
    popupwebapp-12345  Central US  Running  Learn-12345678-1234-1234-1234-123456789abc  popupwebapp-12345.azurewebsites.net  popupappplan-54321
    

    记下表中列出的 DefaultHostName;此地址是新网站的 URL。 Azure 将通过 azurewebsites.net 域中的唯一应用名称发布网站。 例如,如果我的应用名称为“popupwebapp-mslearn123”,则我的网站 URL 将是:http://popupwebapp-mslearn123.azurewebsites.net

  3. 你的站点有一个由 Azure 创建的“快速入门”页,你可以在浏览器中或使用 CURL(只需使用 DefaultHostName 即可)查看它:

    curl $AZURE_WEB_APP.azurewebsites.net
    

    你将看到返回的示例应用的默认 HTML。

从 GitHub 部署代码的步骤

  1. 最后一步是将代码从 GitHub 存储库部署到 Web 应用。 让我们使用 Azure Samples GitHub 存储库中提供的一个简单的 PHP 页面,该页面在执行时显示“Hello World!” 。 请务必使用你创建的 Web 应用名称。

    az webapp deployment source config --name $AZURE_WEB_APP --resource-group $RESOURCE_GROUP --repo-url "https://github.com/Azure-Samples/php-docs-hello-world" --branch master --manual-integration
    
  2. 部署完成后,使用浏览器或 CURL 再次访问你的网站。

    curl $AZURE_WEB_APP.azurewebsites.net
    

    该页面显示“Hello World!”

    Hello World!
    

本练习演示了交互式 Azure CLI 会话的典型模式。 你先使用一个标准命令来创建新的资源组。 然后使用一组命令将资源(本示例中为 Web 应用)部署到此资源组。 这组命令可以轻松地合并成一个 shell 脚本,并在每次需要创建相同资源时执行。