Рубрики
Uncategorized

Демистифицирующие шаблоны руки: Шаблон функции

Так что теперь вы рады всего, что вы учитесь в этих первых главах. Но их хороший шанс … Теги с лазурным лазурным, облаком, DevOps, учебником.

Так что теперь вы рады всего, что вы учитесь в этих первых главах. Но их хороший шанс в том, что если попытайтесь выполнить команду PowerShell или Bash на вашей стороне, вы получите:

____ с указанным именем ____ уже существует.

Сообщение об ошибке, утверждающее, что это имя уже занято, потому что некоторые имена должны быть уникальными. В этой главе вы узнаете, как решить эту проблему и намного больше, используя Функции шаблонов руки Отказ

Azure DEVOPS — DEVOPS LAB — Видео

Познакомьтесь с функциями для шаблонов руки

Язык ARM очень близко к JSON, но именно здесь существует главный язык различия руки, содержащий тонны функций для работы с массивом, строкой, датой, развертыванием, номером, объектом, ресурсом и многом. Вот просто несколько из них, которые мы будем скрывать в этой главе (отметьте полный список здесь )

  • ссылка
  • ResourceGroup
  • recreendiD
  • параметры
  • переменные
  • впадинат
  • uncnow

Потому что один из лучших способов учиться, давайте применяем некоторые из этих функций в разных сценариях.

Функция: concat и uncnow

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

Функция Utcnow (формат) Может использоваться в качестве значения по умолчанию для параметра, мы могли бы добавить параметр и использовать функцию CONCAT () Чтобы добавить это значение названию нашего ресурса.

    "parameters": {
        "mydate": {
           "type": "string",
           "defaultValue": "[utcNow('yyyyMMddTHHmm')]",
           "metadata": {
                "description": "description"
            }
        }
    },
    "resources": [
         {
            "name": "[concat(parameters('storageName'), parameters('mydate'))]",
            "type": "Microsoft.Storage/storageAccounts",
         }
    ]

Это сделает имя более уникальным, но есть еще шанс, что кто-то другой развертывает одновременно. И если бы я хотел повторно депону, я потеряю свое мнение, потому что новые ресурсы будут созданы каждый раз. Давайте посмотрим, как мы могли бы улучшить эту ситуацию.

Функция: ResourceGroup и Uniquestring

Функция Uniquestring является одним из тех функций, которые очень просты и чрезвычайно полезны. Поскольку имя предполагает, что эта функция создаст детерминированную строку хэш на основе значений, представленных в качестве параметров. Это означает то же самое хэш каждый раз … Замечательный! Теперь, что нам нужно, это уникальное значение, которое не изменится и что мы могли бы использовать, чтобы получить уникальную строку.

При развертывании в группе ресурсов вещь, которая не изменяется, — это ресурсная группа. И используя функцию ResourceGroup () Мы можем получить свойства объекта.

{
  "id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}",
  "name": "{resourceGroupName}",
  "type":"Microsoft.Resources/resourceGroups",
  "location": "{resourceGroupLocation}",
  "managedBy": "{identifier-of-managing-resource}",
  "tags": {
  },
  "properties": {
    "provisioningState": "{status}"
  }
}

Вы доступаете в те свойства, добавив «». и название собственности. Итак, ResourceGroup (). ID будет ли удостоверение личности и ResourceGroup (). Расположение Местоположение.

Таким образом, лучший способ создать уникальный суффикс для нашего имени ресурса, будет использовать ResourceGroupID в качестве параметра для UNIQUESTRING и CONCATENATE для нашего параметра.

    "resources": [
         {
            "name": "[concat(parameters('storageName'), uniqueString(resourceGroup().id))]",
            "type": "Microsoft.Storage/storageAccounts",
         }
    ]

Вы можете при развертывании одного и того же решения двух разных мест включают место в уникальной генерации строки. UniqueString (ResourceGroup (). ID, ResourceGroup (). Расположение) , это убедится, что каждое расположение имеет соответствующее уникальное имя.

использованная литература

Оригинал: «https://dev.to/azure/demystifying-arm-templates-template-functions-2fn4»