Заменить / обновить значения файла json во время развертывания в слотах Dev, Stage и Production с использованием конвейеров Azure Release

Я новичок в Azure, и у меня есть задача обновить значения файла json во время развертывания. У меня есть 3 слота развертывания в конвейере выпуска Azure Dev, Stage и Prod.

У меня есть следующий файл Json, который необходимо обновить.

"tables": [{
    "name": "CustomerContract",
    "columns": [{
               "name": "Year",
               "dataType": "int64",
               "sourceColumn": "Year",
               "summarizeBy": "none"
           },
           {
               "name": "<devname>",
               "dataType": "int64",
               "sourceColumn": "CustomerNumber",
               "summarizeBy": "none",
               "isHidden": <trueifdev>
           }
    ],
    "partitions": [{
        "name": "Partition",
        "dataView": "full"
    }]
  },
}

В приведенном выше файле JSON мне нужно обновить следующие значения ключа.

  • "скрыт"
  • "имя"

выше двух значений ключа различаются в зависимости от слотов (Dev, Stage & Prod).

Пожалуйста, помогите мне, как я могу изменить / обновить значения вышеуказанных ключей во время развертывания на основе слотов?

Следующая ссылка не работала в моем случае, потому что мои файлы JSON принадлежат моделям данных sharepoint.

Операторы разработки Azure заменяют токены на среду в конвейере выпуска

1 ответ

Решение

Пожалуйста, помогите мне, как я могу изменить / обновить значения вышеуказанных ключей во время развертывания на основе слотов?

Если файл Json не генерируется во время сборки. Мы все еще могли использовать задачу " Заменить токены" для обновления значений ключа.

В качестве теста измените определение значений ключа:

"tables": [{
    "name": "CustomerContract",
    "columns": [{
               "name": "Year",
               "dataType": "int64",
               "sourceColumn": "Year",
               "summarizeBy": "none"
           },
           {
               "name": "#{DevName}#",
               "dataType": "int64",
               "sourceColumn": "CustomerNumber",
               "summarizeBy": "none",
               "isHidden": #{trueifdev}#
           }
    ],
    "partitions": [{
        "name": "Partition",
        "dataView": "full"
    }]
  },
}

Формат переменной в .json файл #{DevName}# & #{trueifdev}#,

Скопируйте этот файл в артефакт и используйте задачу Replace Tokens, чтобы обновить значения ключа:

И определите значения ключа в переменных на основе этапов:

Как результат теста для этапа Stage:

       {
           "name": "TDev456",
           "dataType": "int64",
           "sourceColumn": "CustomerNumber",
           "summarizeBy": "none",
           "isHidden": False
       }

Значения ключа name & isHidden были обновлены до TDev456 & False,

Надеюсь это поможет.

Другие вопросы по тегам