Определение ресурсов
Шаблоны 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 гарантирует, что он полностью развертывает план перед началом развертывания приложения.