練習 - 使用 CLI 建立 Azure 網站

已完成

接下來,我們會使用 Azure CLI 建立資源群組,然後將 Web 應用程式部署到該資源群組。

免費的沙箱可讓您在 Azure 全球區域的一部分區域建立資源。 建立資源時,從下列清單中選取區域:

  • westus2
  • 美國中南部
  • centralus
  • eastus
  • westeurope
  • 東南亞
  • japaneast
  • brazilsouth
  • australiasoutheast
  • centralindia

使用資源群組

當您使用自己的機器與 Azure 訂用帳戶時,您需要使用 az login 命令登入 Azure。 不過,若您使用瀏覽器型 Cloud Shell 沙箱環境,則不需要登入。

接著,您通常會想使用 az group create 命令來為所有相關的 Azure 資源建立資源群組,但在此練習中,已為您建立下列資源群組:[沙箱資源群組名稱]

注意

在此練習中,我們會使用美國東部作為區域。 如果您在建立 App Service 方案時遇到問題,請從前一個清單中選取不同的區域。

  1. 在本練習中,第一步是建立幾個您將於稍後命令中要使用的變數:

    export RESOURCE_GROUP=<rgn>[sandbox resource group name]</rgn>
    export AZURE_REGION=eastus
    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 App Service 執行 Web Apps 時,必須為該應用程式所使用的 Azure 計算資源支付費用,而資源成本取決於與您 Web Apps 相關聯的 App Service 方案。 服務方案會判斷用於應用程式資料中心的區域、已用的 VM 數目及定價層。

  1. 建立 App Service 方案以執行您的應用程式。 下列命令會指定免費的定價層,但您可以執行 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     East 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  East US  Running  Learn-12345678-1234-1234-1234-123456789abc  popupwebapp-12345.azurewebsites.net  popupappplan-54321
    

    記下表格中列出的 DefaultHostName,此位址是新網站的 URL。 Azure 透過 azurewebsites.net 網域中唯一的應用程式名稱,讓您的網站可供使用。 例如,假設您的應用程式名稱是 "popupwebapp-12345",則您的網站 URL 是:http://popupwebapp-12345.azurewebsites.net。 您也可以使用下列指令碼來傳回 HTTP 位址:

    site="http://$AZURE_WEB_APP.azurewebsites.net"
    echo $site
    
  3. 若要取得範例應用程式的預設 HTML,請使用 DefaultHostName 搭配使用:

    curl $AZURE_WEB_APP.azurewebsites.net
    

    您應該會收到類似以下範例的回應:

    <!DOCTYPE html><html lang="en"><head><meta charset="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1.0"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Microsoft Azure App Service - Welcome</title><link rel="shortcut icon" href="https://appservice.azureedge.net/images/app-service/v4/favicon.ico" type="image/x-icon"/><link href="https://appservice.azureedge.net/css/app-service/v4/bootstrap.min.css" rel="stylesheet" crossorigin="anonymous"/><style>html, body{height: 100%; background-color: #ffffff; color: #000000; font-size: 13px;}*{border-radius: 0 !important;}</style> ... (continued)
    

從 GitHub 部署程式碼

  1. 最後一個步驟是從 GitHub 存放庫將程式碼部署到 Web 應用程式。 讓我們使用 Azure 範例 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 應用程式) 部署到此資源群組。 您可以輕鬆地將這組命令合併為殼層指令碼,然後在您每次需要建立相同資源時加以執行。