Определение ресурсов

Завершено

Шаблоны Bicep — это файлы, которые вы создаете, определяющие развернутые ресурсы Azure.

Вашей компании по производству игрушек нужно, чтобы вы создали многоразовый шаблон Bicep для запуска новых продуктов. В шаблоне необходимо развернуть учетную запись хранения Azure и ресурсы службы приложений Azure, которые будут использоваться для маркетинга каждого нового продукта во время его запуска.

В этом модуле вы узнаете, как определить ресурс в шаблоне Bicep, как работают имена ресурсов и как вы можете создавать ресурсы, которые связаны друг с другом.

Примечание.

Команды в этом уроке демонстрируют основные понятия. На этом этапе не выполняйте команды. Вскоре вы поупражняетесь с полученными знаниями.

Определите ресурс

Главное, для чего вы будете использовать шаблоны Bicep, — это определение ресурсов Azure. Вот пример того, как выглядит типичное определение ресурса в Bicep. В этом примере создается учетная запись хранения с именем toylaunchstorage.

resource storageAccount 'Microsoft.Storage/storageAccounts@2023-05-01' = {
  name: 'toylaunchstorage'
  location: 'westus3'
  sku: {
    name: 'Standard_LRS'
  }
  kind: 'StorageV2'
  properties: {
    accessTier: 'Hot'
  }
}

Давайте внимательно рассмотрим некоторые ключевые части этого определения ресурса:

  • Ключевое слово resource в начале сообщает Bicep, что вы собираетесь определить ресурс.

  • Затем вы даете ресурсу символическое имя. В этом примере символическое имя ресурса — storageAccount. Символические имена используются в Bicep для обозначения ресурса, но они никогда не отображаются в Azure.

  • Microsoft.Storage/storageAccounts@2022-09-01 — это тип ресурса и версия API ресурса. Microsoft.Storage/storageAccounts сообщает Bicep, что вы объявляете учетную запись хранения Azure. 2022-09-01 Дата — это версия API служба хранилища Azure, которую Bicep использует при создании ресурса.

    Совет

    Расширение Bicep для Visual Studio Code помогает найти типы ресурсов и версии API для создаваемых ресурсов. Если вы знакомы с шаблонами ARM, обратите внимание, что версия API соответствует версии, которую вы бы там тоже использовали.

  • Необходимо объявить имя ресурса, которое будет назначено учетной записи хранения в Azure. Вы зададите имя ресурса с помощью ключевого слова name.

    Внимание

    Символические имена используются только в шаблоне Bicep и не отображаются в Azure. Имена ресурсов действительно появляются в Azure.

  • Затем вы задаете другие сведения о ресурсе, такие как его расположение, SKU (ценовая категория) и вид. Можно также определить свойства, которые различаются для каждого типа ресурсов. Разные свойства также могут происходить из разных версий API. В этом примере мы устанавливаем уровень доступа учетной записи хранения на Hot.

Совет

Для имен ресурсов часто действуют обязательные правила, например максимальная длина, допустимые символы или уникальность во всей среде Azure. Требования к именам ресурсов различны для каждого типа ресурса Azure. Обязательно ознакомьтесь с ограничениями и требованиями к именованию, прежде чем добавлять их в свой шаблон.

Что происходит, когда ресурсы зависят друг от друга?

Шаблон Bicep обычно включает в себя несколько ресурсов. Часто требуется, чтобы ресурс зависел от другого ресурса. Возможно, вам придется извлечь некоторую информацию из одного ресурса, чтобы определить другой. Если вы развертываете веб-приложение, необходимо создать серверную инфраструктуру, прежде чем добавить в нее приложение. Эти отношения называются зависимостями.

Вам потребуется развернуть приложение Служба приложений для шаблона, которое поможет запустить продукт с Служба приложений, но для создания приложения Служба приложений необходимо сначала создать план Служба приложений. План Службы приложений представляет ресурсы для размещения на сервере и объявляется, как в следующем примере:

resource appServicePlan 'Microsoft.Web/serverFarms@2023-12-01' = {
  name: 'toy-product-launch-plan'
  location: 'westus3'
  sku: {
    name: 'F1'
  }
}

Это определение ресурсов сообщает Bicep, что вы хотите развернуть план Службы приложений, имеющий ресурс типа Microsoft.Web/serverFarms. Ресурс плана имеет имя toy-product-launch-plan и развертывается в регионе "Западная часть США 3". Он использует номер SKU ценовой категории F1, который является бесплатным уровнем Служба приложений.

Теперь, когда вы объявили план службы приложений, следующим шагом будет объявление приложения:

resource appServiceApp 'Microsoft.Web/sites@2023-12-01' = {
  name: 'toy-product-launch-1'
  location: 'westus3'
  properties: {
    serverFarmId: appServicePlan.id
    httpsOnly: true
  }
}

Этот шаблон указывает Azure разместить приложение в созданном вами плане. Обратите внимание, что определение плана содержит символическое имя плана Служба приложений в этой строке: serverFarmId: appServicePlan.id Эта строка означает, что Bicep получит идентификатор ресурса Служба приложений плана с помощью id свойства. Это фактически говорит: идентификатор фермы сервера этого приложения является идентификатором плана Служба приложений, определенного ранее.

Совет

В Azure идентификатор ресурса — это уникальный идентификатор для каждого ресурса. Идентификатор ресурса включает идентификатор подписки Azure, имя группы ресурсов и имя ресурса, а также некоторую другую информацию.

Объявив ресурс приложения со свойством, ссылающимся на символическое имя плана, Azure понимает неявную зависимость между приложением Служба приложений и планом. При развертывании ресурсов Azure гарантирует, что он полностью развертывает план перед началом развертывания приложения.