Oefening - Een Azure-website maken met de CLI

Voltooid

Vervolgens gaan we de Azure CLI gebruiken om een resourcegroep te maken en vervolgens een web-app in die resourcegroep te implementeren.

Met de gratis sandbox kunt u resources maken in een subset met wereldwijde Azure-regio's. Selecteer een regio in deze lijst wanneer u resources maakt:

  • westus2
  • US - zuid-centraal
  • centralus
  • eastus
  • westeurope
  • southeastasia
  • japaneast
  • brazilsouth
  • australiasoutheast
  • centralindia

Een resourcegroep gebruiken

Wanneer u met uw eigen machine en Azure-abonnement werkt, moet u zich aanmelden bij Azure met behulp van de az login opdracht. Aanmelden is echter niet nodig wanneer u de cloud shell-sandboxomgeving in de browser gebruikt.

Vervolgens maakt u normaal gesproken een resourcegroep voor al uw gerelateerde Azure-resources met een az group create opdracht, maar voor deze oefening is de volgende resourcegroep voor u gemaakt: [naam sandbox-resourcegroep].

Notitie

Voor deze oefening gebruiken we VS - oost als regio. Als u een probleem ondervindt bij het maken van het App Service-plan, selecteert u een andere regio in de voorgaande lijst.

  1. De eerste stap in deze oefening is het maken van verschillende variabelen die u in latere opdrachten kunt gebruiken:

    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. U kunt de Azure CLI vragen om al uw resourcegroepen in een tabel weer te geven. Er moet er slechts één zijn terwijl u zich in de gratis Azure-sandbox bevindt:

    az group list --output table
    

    Tip

    U kunt de knop Kopiëren gebruiken om opdrachten te kopiëren naar het klembord. Als u wilt plakken, klikt u met de rechtermuisknop op een nieuwe regel in de Cloud Shell-terminal en selecteert u Plakken of gebruikt u de sneltoets Shift+Insert (⌘+V in macOS).

  3. Als u meer ontwikkelt met Azure, kunt u over meerdere resourcegroepen beschikken. Als u meerdere items in de groepslijst hebt, kunt u de retourwaarden filteren door een optie --query toe te voegen. Voer de volgende opdracht uit:

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

    De query is geformatteerd met behulp van JMESPath, een standaardquerytaal voor JSON-aanvragen. U vindt meer informatie over deze krachtige filtertaal op http://jmespath.org/. We gaan ook dieper in op query's in de module VM's beheren met de Azure CLI.

Stappen voor het maken van een serviceabonnement

Wanneer u Web Apps uitvoert met behulp van de Azure-app Service, betaalt u voor de Azure-rekenresources die de app gebruikt en de resourcekosten zijn afhankelijk van het App Service-plan dat is gekoppeld aan uw Web Apps. Service-plannen bepalen welke regio er wordt gebruikt voor het datacenter van de app, het aantal virtuele machines dat wordt gebruikt en de prijscategorie.

  1. Maak een App Service-plan voor het uitvoeren van uw app. Met de volgende opdracht wordt de gratis prijscategorie opgegeven, maar u kunt az appservice plan create --help uitvoeren om de andere prijscategorieën weer te geven.

    Notitie

    De app- en plannamen moeten uniek zijn in azure. De variabelen die u eerder hebt gemaakt, wijzen willekeurige waarden toe als achtervoegsels om ervoor te zorgen dat deze uniek zijn. Als u echter een foutmelding ontvangt wanneer u resources maakt, moet u de eerder vermelde opdrachten uitvoeren om alle variabelen opnieuw in te stellen met nieuwe willekeurige waarden.

    Als u een foutbericht ontvangt over de resourcegroep, voert u de eerder vermelde opdrachten uit met een andere resourcegroepwaarde.

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

    Het uitvoeren van deze opdracht kan enkele minuten in beslag nemen.

  2. Controleer of het serviceplan is gemaakt door al uw plannen in een tabel weer te voegen:

    az appservice plan list --output table
    

    U krijgt een antwoord zoals in het volgende voorbeeld:

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

Een webtoepassing maken

Maak vervolgens de web-app in uw serviceplan. U kunt de code tegelijkertijd implementeren, maar in ons voorbeeld maken we de web-app en implementeren we de code in afzonderlijke stappen.

  1. Als u de web-app wilt maken, geeft u de naam van de web-app en de naam op van het app-plan dat u eerder hebt gemaakt. Net als de naam van het app-plan moet de naam van de web-app uniek zijn. De variabelen die u eerder hebt gemaakt, wijzen willekeurige waarden toe die voldoende moeten zijn voor deze oefening. Het kan even duren voordat deze opdracht is voltooid.

    az webapp create --name $AZURE_WEB_APP --resource-group $RESOURCE_GROUP --plan $AZURE_APP_PLAN
    
  2. Controleer of de app is gemaakt door al uw apps in een tabel te vermelden:

    az webapp list --output table
    

    U krijgt een antwoord zoals in het volgende voorbeeld:

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

    Noteer de DefaultHostName die in de tabel wordt vermeld. Dit adres is de URL voor de nieuwe website. Azure maakt uw website beschikbaar via de unieke app-naam in het azurewebsites.net domein. Als uw app-naam bijvoorbeeld 'popupwebapp-12345' was, is de URL van uw website: http://popupwebapp-12345.azurewebsites.net. U kunt ook het volgende script gebruiken om het HTTP-adres te retourneren:

    site="http://$AZURE_WEB_APP.azurewebsites.net"
    echo $site
    
  3. Als u de standaard-HTML voor de voorbeeld-app wilt ophalen, gebruikt u CURL met de DefaultHostName:

    curl $AZURE_WEB_APP.azurewebsites.net
    

    U krijgt een antwoord zoals in het volgende voorbeeld:

    <!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)
    

Code implementeren vanuit GitHub

  1. De laatste stap is om code vanuit een GitHub-opslagplaats naar de web-app te implementeren. Laten we een eenvoudige PHP-pagina gebruiken die beschikbaar is in de GitHub-opslagplaats van Azure Samples waarin 'Hallo wereld!' wordt weergegeven wanneer deze wordt uitgevoerd. Zorg ervoor dat u de web-app-naam gebruikt die u hebt gemaakt. Het kan even duren voordat deze opdracht is voltooid.

    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. Zodra deze is geïmplementeerd, drukt u opnieuw op uw site met een browser of CURL:

    curl $AZURE_WEB_APP.azurewebsites.net
    

    Op de pagina wordt 'Hallo wereld!' weergegeven.

    Hello World!
    

In deze oefening werd geïllustreerd hoe een interactieve Azure CLI-sessie doorgaans verloopt. U hebt eerst een standaardopdracht gebruikt om een nieuwe resourcegroep te maken. U hebt vervolgens een reeks opdrachten gebruikt om een resource in deze resourcegroep te implementeren (in dit voorbeeld was dit een web-app). U kunt deze set opdrachten eenvoudig combineren in een shellscript en deze telkens uitvoeren wanneer u dezelfde resource moet maken.