Cvičení – použití modulů z registru

Dokončeno

V předchozím cvičení jste publikovali moduly CDN a webu do registru vaší společnosti. Teď chcete ukázat týmu, který vyvíjí toy pes, jak používat moduly pro vlastní nasazení.

V tomto cvičení:

  • Vytvořte soubor Bicep, který obsahuje moduly z vašeho privátního registru.
  • Přidejte odkazy na moduly v registru.
  • Sestavte a prozkoumejte soubor Bicep, abyste pochopili, jak proces obnovení modulu funguje.
  • Přepněte na použití aliasu registru.
  • Nasaďte soubor Bicep do Azure.

Vytvoření souboru Bicep

  1. V editoru Visual Studio Code vytvořte nový soubor s názvem main.bicep.

  2. Uložte prázdný soubor tak, aby Visual Studio Code načítal nástroje Bicep.

    Můžete vybrat >možnost Uložit soubor jako nebo vybrat Kombinaci kláves Ctrl+S ve Windows (⌘+S v systému macOS). Nezapomeňte si zapamatovat, kam soubor uložíte. Můžete například chtít vytvořit složku šablon , do které ji chcete uložit.

Přidání modulů do souboru Bicep

  1. Do souboru main.bicep přidejte následující parametry a proměnné:

    @description('The Azure region into which the resources should be deployed.')
    param location string = 'westus3'
    
    @description('The name of the App Service app.')
    param appServiceAppName string = 'toy-${uniqueString(resourceGroup().id)}'
    
    @description('The name of the App Service plan SKU.')
    param appServicePlanSkuName string = 'F1'
    
    var appServicePlanName = 'toy-dog-plan'
    
  2. Pod parametry a proměnné přidejte modul webu z registru pomocí následujícího kódu. Nahraďte YOUR_CONTAINER_REGISTRY_NAME názvem vašeho privátního registru.

    module website 'br:YOUR_CONTAINER_REGISTRY_NAME.azurecr.io/website:v1' = {
      name: 'toy-dog-website'
      params: {
        appServiceAppName: appServiceAppName
        appServicePlanName: appServicePlanName
        appServicePlanSkuName: appServicePlanSkuName
        location: location
      }
    }
    

    Všimněte si, že Bicep při zahájení psaní zobrazuje červené vlnovky pod identifikátorem modulu, ale vlnovky zmizí. K tomuto chování dochází, protože rozšíření Bicep pro Visual Studio Code načte modul z registru a uloží ho do místního systému souborů.

  3. Pod modulem, který jste vytvořili, přidejte modul CDN z registru pomocí následujícího kódu. Nahraďte YOUR_CONTAINER_REGISTRY_NAME názvem vašeho privátního registru.

    module cdn 'br:YOUR_CONTAINER_REGISTRY_NAME.azurecr.io/cdn:v1' = {
      name: 'toy-dog-cdn'
      params: {
        httpsOnly: true
        originHostName: website.outputs.appServiceAppHostName
      }
    }
    
  4. Uložte soubor.

Sestavení a kontrola souboru Bicep

Tady sestavíte soubor Bicep do šablony JSON ARM. Obvykle nemusíte provádět sestavení, ale je užitečné, když se učíte, jak moduly fungují.

  1. V terminálu editoru Visual Studio Code spuštěním následujícího příkazu sestavte soubor Bicep do souboru JSON:

    az bicep build --file main.bicep
    

    Bicep vytvoří soubor main.json ve stejné složce jako soubor main.bicep.

  2. Otevřete soubor main.json.

    Všimněte si, že v resources části šablony JSON ARM počínaje řádkem 134 mají některé prostředky typ Microsoft.Resources/deployments. Tyto prostředky představují nasazení modulů, která byla definována v modulu, který jste přidali z registru.

  1. V terminálu editoru Visual Studio Code spuštěním následujícího příkazu sestavte soubor Bicep do souboru JSON:

    bicep build main.bicep
    

    Bicep vytvoří soubor main.json ve stejné složce jako soubor main.bicep.

  2. Otevřete soubor main.json.

    Všimněte si, že v resources části šablony JSON ARM počínaje řádkem 134 mají některé prostředky typ Microsoft.Resources/deployments. Tyto prostředky představují nasazení modulů, která byla definována v modulu, který jste přidali z registru.

Vytvoření aliasu registru

Místo vložení adresy URL registru do souboru Bicep se rozhodnete vytvořit alias registru. Tento přístup usnadňuje čtení souboru Bicep.

  1. V editoru Visual Studio Code vytvořte nový soubor s názvem bicepconfig.json. Vytvořte ho ve stejné složce jako soubor main.bicep .

  2. Do souboru bicepconfig.json vložte následující kód. Nahraďte YOUR_CONTAINER_REGISTRY_NAME názvem vašeho privátního registru.

    {
      "moduleAliases": {
        "br": {
          "ToyCompanyRegistry": {
            "registry": "YOUR_CONTAINER_REGISTRY_NAME.azurecr.io"
          }
        }
      }
    }
    
  3. Uložte soubor.

Použití aliasu registru

Tady aktualizujete soubor Bicep tak, aby místo odkazování přímo na registr používal alias registru.

  1. Otevřete soubor main.bicep.

  2. Vyhledejte definici website modulu a změňte definici tak, aby zahrnovala alias registru:

    module website 'br/ToyCompanyRegistry:website:v1' = {
      name: 'toy-dog-website'
      params: {
        appServiceAppName: appServiceAppName
        appServicePlanName: appServicePlanName
        appServicePlanSkuName: appServicePlanSkuName
        location: location
      }
    }
    

    Tip

    Nezapomeňte změnit začátek cesty modulu z br: na br/. ToyCompanyRegistryDále změňte znak lomítka (/) na dvojtečku (:).

  3. Proveďte podobnou změnu modulu cdn :

    module cdn 'br/ToyCompanyRegistry:cdn:v1' = {
      name: 'toy-dog-cdn'
      params: {
        httpsOnly: true
        originHostName: website.outputs.appServiceAppHostName
      }
    }
    
  4. Uložte soubor.

Ověření souboru Bicep

Po dokončení všech předchozích změn by měl váš soubor main.bicep vypadat jako v tomto příkladu:

@description('The Azure region into which the resources should be deployed.')
param location string = 'westus3'

@description('The name of the App Service app.')
param appServiceAppName string = 'toy-${uniqueString(resourceGroup().id)}'

@description('The name of the App Service plan SKU.')
param appServicePlanSkuName string = 'F1'

var appServicePlanName = 'toy-dog-plan'

module website 'br/ToyCompanyRegistry:website:v1' = {
  name: 'toy-dog-website'
  params: {
    appServiceAppName: appServiceAppName
    appServicePlanName: appServicePlanName
    appServicePlanSkuName: appServicePlanSkuName
    location: location
  }
}

module cdn 'br/ToyCompanyRegistry:cdn:v1' = {
  name: 'toy-dog-cdn'
  params: {
    httpsOnly: true
    originHostName: website.outputs.appServiceAppHostName
  }
}

Pokud se soubor neshoduje, zkopírujte příklad nebo upravte šablonu tak, aby odpovídala příkladu.

Nasazení do Azure

V terminálu editoru Visual Studio Code nasaďte šablonu do Azure spuštěním následujícího příkazu. Dokončení úspěšného nasazení může trvat několik minut.

az deployment group create \
   --template-file main.bicep
New-AzResourceGroupDeployment -TemplateFile main.bicep

Ověření nasazení

  1. Přejděte na web Azure Portal a ujistěte se, že jste v předplatném sandboxu:

    1. V pravém horním rohu stránky vyberte svůj avatar.
    2. Vyberte Přepnout adresář. V seznamu vyberte adresář Microsoft Learn Sandbox.
  2. Na levém panelu vyberte Skupiny prostředků.

  3. Vyberte [název skupiny prostředků sandboxu].

  4. V nabídce vlevo vyberte Nasazení.

    Screenshot of the Azure portal that shows the resource group, with the Deployments menu item highlighted.

    Všimněte si, že jsou uvedená tři nasazení:

    • main představuje nasazení nadřazeného souboru Bicep.
    • toy-dog-cdn a toy-dog-website představují moduly, které jste zahrnuli do souboru main.bicep .
  5. Vyberte hlavní nasazení a rozbalte podrobnosti o nasazení.

    Všimněte si, že oba moduly jsou uvedeny a že jejich typy jsou zobrazeny jako Microsoft.Resources/deployments. Tento toy-dog-website modul je uvedený dvakrát, protože jeho výstup se také odkazuje v rámci šablony.

    Screenshot of the Azure portal that shows the details of the main deployment.

  6. Vyberte nasazení toy-dog-cdn a toy-dog-website a zkontrolujte prostředky nasazené v každém z nich. Všimněte si, že odpovídají prostředkům definovaným v příslušných modulech.