演習 - レジストリを作成する

完了

注意

初めてサンドボックスをアクティブ化して利用規約に同意すると、Microsoft アカウントが Microsoft Learn Sandbox という名前の新しい Azure ディレクトリに関連付けられます。 また、コンシェルジェ サブスクリプションという名前の特殊なサブスクリプションにも追加されます。

CDN と Web サイトの Bicep モジュールを発行する前に、組織のレジストリを作成しておく必要があります。 次に、共有モジュールをレジストリに公開します。 その後、他のチームは、共有モジュールを含むデプロイを作成できます。

この演習では、以下のことを行います。

  • 勤務先のおもちゃ会社で使用するプライベート レジストリを作成します。
  • レジストリに接続し、レジストリが正常に作成されたことを確認します。

リソースを Azure にデプロイするには、Visual Studio Code ターミナルからお使いの Azure アカウントにサインインする必要があります。 Azure CLI がインストールされていることを確認し、サンドボックスのアクティブ化に使用したのと同じアカウントでサインインします。

  1. [ターミナル] メニューで、[新しいターミナル] を選択します。 通常、ターミナル ウィンドウは画面の下半分に表示されます。

  2. ターミナル ウィンドウの右側に表示されるシェルが Bash の場合、正しいシェルが開いているので、次のセクションに進むことができます。

    Bash オプションが表示されている Visual Studio Code ターミナル ウィンドウのスクリーンショット。

  3. Bash 以外のシェルが表示された場合は、シェルのドロップダウン矢印を選択した後、[Azure Cloud Shell (Bash)] を選択します。

    ターミナル シェルのドロップダウンが表示され、[Git Bash (既定値)] が選択されている Visual Studio Code ターミナル ウィンドウのスクリーンショット。

  4. ターミナル シェルの一覧で、Bash を選択します。

    Bash ターミナルが選択されている Visual Studio Code ターミナル ウィンドウのスクリーンショット。

  5. ターミナルで、テンプレートを保存したディレクトリに移動します。 たとえば、それをテンプレート フォルダーに保存した場合、次のコマンドを使用します。

    cd templates
    

Bicep をインストールする

次のコマンドを実行して、最新バージョンの Bicep がインストールされていることを確認します。

az bicep install && az bicep upgrade

Azure へのサインイン

  1. Visual Studio Code ターミナルで、次のコマンドを実行して Azure にサインインします。

    az login
    
  2. 開いたブラウザーで、Azure アカウントにサインインします。

    Visual Studio Code ターミナルには、このアカウントに関連付けられているサブスクリプションの一覧が表示されます。

  3. このセッションで実行するすべての Azure CLI コマンドに対して、既定のサブスクリプションを設定します。

    az account set --subscription "Concierge Subscription"
    

    注意

    最近、複数のサンドボックスを使用した場合、ターミナルに、"コンシェルジェ サブスクリプション" の複数のインスタンスが表示される場合があります。 その場合は、次の 2 つのステップを使用して、1 つを既定のサブスクリプションとして設定します。 上記のコマンドが正常に実行され、1 つの "コンシェルジェ サブスクリプション" のみがリストされたら、次の 2 つのステップをスキップします。

  4. コンシェルジェ サブスクリプションの ID を取得します。

     az account list \
       --refresh \
       --query "[?contains(name, 'Concierge Subscription')].id" \
       --output table
    
  5. サブスクリプション ID を使用して、既定のサブスクリプションを設定します。 {your subscription ID} を最新のコンシェルジェ サブスクリプション ID に置き換えます。

    az account set --subscription {your subscription ID}
    

既定のリソース グループを設定する

Azure CLI を使用する場合は、既定のリソース グループを設定し、この演習の残りの Azure CLI コマンドでパラメーターを省略できます。 サンドボックス環境で自分用に作成されたリソース グループに、既定値を設定します。

az configure --defaults group="<rgn>[sandbox resource group name]</rgn>"

リソースを Azure にデプロイするには、Visual Studio Code ターミナルからお使いの Azure アカウントにサインインする必要があります。 Azure PowerShell をインストールしたことを確認し、サンドボックスをアクティブ化したのと同じアカウントにサインインします。

  1. [ターミナル] メニューで、[新しいターミナル] を選択します。 通常、ターミナル ウィンドウは画面の下半分に表示されます。

  2. ターミナル ウィンドウの右側に表示されるシェルが powershell または pwsh の場合、正しいシェルが開いているので、次のセクションに進むことができます。

    シェルのドロップダウン リストに pwsh オプションが表示されている Visual Studio Code ターミナル ウィンドウのスクリーンショット。

  3. Powershell または pwsh 以外のシェルが表示された場合は、シェルのドロップダウン矢印を選択し、[PowerShell] を選びます。

    ターミナル シェルのドロップダウン リストが表示され、PowerShell が選択されている Visual Studio Code ターミナル ウィンドウのスクリーンショット。

  4. ターミナル シェルの一覧で、Powershell または pwsh を選択します。

    PowerShell ターミナルが選択されている Visual Studio Code ターミナル ウィンドウのスクリーンショット。

  5. ターミナルで、テンプレートを保存したディレクトリに移動します。 たとえば、それをテンプレート フォルダーに保存した場合、次のコマンドを使用します。

    Set-Location -Path templates
    

Bicep CLI のインストール

Azure PowerShell で Bicep を使用するには、Bicep CLI をインストールします。

Azure PowerShell を使用して Azure にサインインする

  1. Visual Studio Code ターミナルで、次のコマンドを実行します。

    Connect-AzAccount
    

    ブラウザーが開き、Azure アカウントにサインインできるようになります。

  2. Azure にサインインすると、ターミナルに、このアカウントに関連付けられているサブスクリプションの一覧が表示されます。

    サンドボックスをアクティブにした場合は、"コンシェルジェ サブスクリプション" という名前のサブスクリプションが表示されます。 演習の残りの部分では、これを使用します。

  3. このセッションで実行するすべての Azure PowerShell コマンドについて既定のサブスクリプションを設定します。

    $context = Get-AzSubscription -SubscriptionName 'Concierge Subscription'
    Set-AzContext $context
    

    注意

    最近、複数のサンドボックスを使用した場合、ターミナルに、"コンシェルジェ サブスクリプション" の複数のインスタンスが表示される場合があります。 その場合は、次の 2 つのステップを使用して、1 つを既定のサブスクリプションとして設定します。 上記のコマンドが正常に実行され、1 つの "コンシェルジェ サブスクリプション" のみがリストされたら、次の 2 つのステップをスキップします。

  4. サブスクリプション ID を取得します。 次のコマンドを実行すると、ご使用のサブスクリプションとその ID が一覧表示されます。 Concierge Subscription を探して、2 番目の列から ID をコピーします。 これは、cf49fbbc-217c-4eb6-9eb5-a6a6c68295a0 のように表示されます。

    Get-AzSubscription
    
  5. アクティブなサブスクリプションを "コンシェルジェ サブスクリプション" に変更します。 必ず、"{ご使用のサブスクリプションの ID}" を、コピーした ID に置き換えてください。

    $context = Get-AzSubscription -SubscriptionId {Your subscription ID}
    Set-AzContext $context
    

既定のリソース グループを設定する

この演習では、既定のリソース グループを設定し、残りの Azure PowerShell コマンドからパラメーターを省略できます。 サンドボックス環境で自分用に作成されたリソース グループに、この既定値を設定します。

Set-AzDefault -ResourceGroupName <rgn>[sandbox resource group name]</rgn>

コンテナー レジストリを作成する

ここでは、Bicep モジュールを格納して共有するための新しいレジストリを作成します。 この例では、Azure Container Registry を使用します。

  1. コンテナー レジストリに一意の名前を選択します。 名前は Azure 全体でグローバルに一意である必要があります。 長さが 5 文字から 50 文字で、文字と数字を含むものを選択してください。 この名前は後続の手順で使用します。

  2. Visual Studio Code ターミナルで次のコマンドを実行して、コンテナー レジストリを作成します。 YOUR_CONTAINER_REGISTRY_NAME プレースホルダーを、前の手順で選択した名前に置き換えてください。

    az acr create \
      --name YOUR_CONTAINER_REGISTRY_NAME \
      --sku Basic \
      --location westus
    

ヒント

Bicep を使用してコンテナー レジストリを作成することもできます。 この例では、わかりやすくするために Azure CLI を使用します。

  1. コンテナー レジストリに一意の名前を選択します。 名前は Azure 全体でグローバルに一意である必要があります。 長さが 5 文字から 50 文字で、文字と数字を含むものを選択してください。 この名前は後続の手順で使用します。

  2. Visual Studio Code ターミナルで次のコマンドを実行して、コンテナー レジストリを作成します。 YOUR_CONTAINER_REGISTRY_NAME プレースホルダーを、前の手順で選択した名前に置き換えてください。

    New-AzContainerRegistry `
      -Name YOUR_CONTAINER_REGISTRY_NAME `
      -Sku Basic `
      -Location westus
    

ヒント

Bicep を使用してコンテナー レジストリを作成することもできます。 この例では、わかりやすくするために Azure PowerShell コマンドレットを使用します。

レジストリ内のモジュールを一覧表示する

レジストリを作成したので、そのレジストリに接続して動作していることを確認できます。

  1. 次のコマンドを実行して、レジストリ内のモジュールを一覧表示します。 YOUR_CONTAINER_REGISTRY_NAME プレースホルダーを、前に選択した名前に置き換えてください。

    az acr repository list \
      --name YOUR_CONTAINER_REGISTRY_NAME
    

    コンテナー レジストリに接続するための資格情報を指定していないことに注目してください。 Azure CLI は、Azure CLI へのサインインに使用したものと同じ資格情報を使用します。 コンテナー レジストリを作成したので、そのレジストリにアクセスできます。

  2. Azure CLI コマンドを実行すると、結果のない一覧が返されます。

    []
    

    まだモジュールを発行していないため、結果は表示されません。 モジュールの発行については、次のユニットで詳しく説明します。

  1. 次のコマンドを実行して、レジストリ内のモジュールを一覧表示します。 YOUR_CONTAINER_REGISTRY_NAME プレースホルダーを、前に選択した名前に置き換えてください。

    Get-AzContainerRegistryRepository `
      -RegistryName YOUR_CONTAINER_REGISTRY_NAME
    

    コンテナー レジストリに接続するための資格情報を指定していないことに注目してください。 Azure PowerShell は、Azure PowerShell コマンドレットへのサインインに使用したものと同じ資格情報を使用します。 コンテナー レジストリを作成したので、そのレジストリにアクセスできます。

  2. Azure PowerShell コマンドレットは、出力を表示しません。

    まだモジュールを発行していないため、結果はありません。 モジュールの発行については、次のユニットで詳しく学習します。