Расширение DevOps для SQL Server Integration Services (SSIS) в Azure DevOps
расширение для инструментов SSIS DevOps доступно в Azure DevOps Marketplace. SSIS DevOps поддерживает Azure DevOps Services, Azure DevOps Server 2019 и более новые версии.
Если у вас нет организации Azure DevOps, сначала зарегистрируйтесь в Azure Pipelines, затем добавьте расширение SSIS DevOps Tools, следуя указаниям.
средств sSIS DevOps включает задачу сборки служб SSIS, задачу развертывания служб SSIS и задачу конфигурации каталога служб SSIS.
Задача сборки SSIS поддерживает создание файлов dtproj в модели развертывания проекта или в модели развертывания пакетов.
задача развертывания служб SSIS Deploy поддерживает развертывание отдельных или нескольких файлов ispac в локальном каталоге служб SSIS и Azure-SSIS IR или файлов SSISDeploymentManifest и связанных с ними файлов в локальной или общей папке Azure.
задача "Конфигурация каталога служб SSIS" поддерживает настройку папки или проекта или среды каталога служб SSIS с файлом конфигурации в формате JSON. Эта задача поддерживает следующие сценарии:
- Папка
- Создайте папку.
- Обновление описания папки.
- Проект
- Вы можете настроить параметры, поддерживаются как литеральные, так и ссылочные значения.
- Добавление ссылок на среду.
- Окружающая среда
- Создайте среду.
- Обновление описания среды.
- Создание или обновление переменной среды.
- Папка
Задача компиляции в SSIS
Свойства
Путь к проекту
Путь к созданной папке или файлу проекта. Если указан путь к папке, задача SSIS Build будет выполнять поиск всех файлов dtproj рекурсивно в этой папке и создавать их все.
Путь к проекту не может быть пустой, задать как . для сборки из корневой папки репозитория.
Конфигурация проекта
Имя конфигурации проекта, используемой для сборки. Если он не указан, по умолчанию используется первая определенная конфигурация проекта в каждом dtproj-файле.
Выходной путь
Путь к отдельной папке для сохранения результатов сборки, которые могут быть опубликованы как артефакт сборки с помощью задачи публикации артефактов сборки.
Ограничения и известные проблемы
Задача сборки SSIS зависит от конструктора SSIS в Visual Studio, который является обязательным для агентов сборки. Таким образом, чтобы выполнить задачу сборки SSIS в конвейере:
- для агентов, размещенных корпорацией Майкрософт, необходимо выбрать доступный образ, включающий расширение Visual Studio и SQL Server Integration Services, например, windows-2022. Дополнительную информацию см. в документации по агентам, размещённым на серверах Microsoft, для программного обеспечения, включённого в доступные образы.
- для локальных агентов установите Visual Studio и конструктор служб SSIS (расширение VS2022 + SSIS Projects или расширение VS2019 + проекты SSIS) на локальных агентах.
Чтобы создать проекты служб SSIS с помощью любых встроенных компонентов (включая пакет дополнительных компонентов SSIS Azure и другие сторонние компоненты), эти встроенные компоненты должны быть установлены на компьютере, на котором запущен агент конвейера. Для агента на платформе Майкрософт пользователь может добавить задачу скрипта PowerShell или задачу скрипта командной строки , чтобы скачать и установить компоненты перед выполнением задачи сборки SSIS. Ниже приведен пример скрипта PowerShell для установки пакета дополнительных компонентов Azure:
wget -Uri https://download.microsoft.com/download/E/E/0/EE0CB6A0-4105-466D-A7CA-5E39FA9AB128/SsisAzureFeaturePack_2017_x86.msi -OutFile AFP.msi
start -Wait -FilePath msiexec -Args "/i AFP.msi /quiet /l* log.txt"
cat log.txt
- В SSIS Build task не поддерживаются уровни защиты EncryptSensitiveWithPassword и EncryptAllWithPassword. Убедитесь, что все проекты SSIS в базе кода не используют эти два уровня защиты, иначе задача сборки SSIS перестанет отвечать и выйдет за пределы времени ожидания выполнения.
Задача сборки SSIS версии 1.*
Усовершенствования в версии 1.*:
Удалите зависимость от конструктора Visual Studio и служб SSIS. Задача сборки может выполняться на агенте под управлением Майкрософт или самостоятельно размещенном агенте с операционной системой Windows и .NET Framework версии 4.6.2 или более поздней.
Не требуется устанавливать готовые компоненты.
Поддержка уровня защиты EncryptionWithPassword и EncryptionAllWithPassword.
Ограничения и известные проблемы
- Задача сборки SSIS версии 1.* не поддерживает сборку проекта SSIS, включающего пакет SSIS с цифровой подписью.
Только свойства версии 1.*
Пароль проекта
Пароль проекта служб SSIS и его пакетов. Этот аргумент действителен только в том случае, если уровень защиты проекта и пакетов служб SSIS — EncryptSensitiveWithPassword или EncryptAllWithPassword. Для модели развертывания пакетов все пакеты должны использовать один и тот же пароль, указанный этим аргументом.
Удалить конфиденциальные данные
Преобразуйте уровень защиты проекта служб SSIS в DontSaveSensitive, если это значение истинно. Если уровень защиты — EncryptSensitiveWithPassword или EncryptAllWithPassword, аргумент Project Password должен быть правильно задан. Этот параметр действителен только для модели развертывания проекта.
Задача развертывания служб SSIS
Свойства
Исходный путь
Путь к исходным файлам ISPAC или файлам SSISDeploymentManifest, которые вы хотите развернуть. Это может быть путь к папке или путь к файлу.
Тип назначения
Тип назначения. В настоящее время задача развертывания служб SSIS поддерживает два типа:
- Файловая система: Развертывание файлов SSISDeploymentManifest и связанных с ними файлов в указанную файловую систему. Поддерживаются как локальный файловый ресурс, так и файловый ресурс Azure.
- SSISDB: разверните файлы ISPAC в указанном каталоге SSIS, который может быть размещён на локальном сервере SQL Server или в среде выполнения Integration Runtime Azure-SSIS.
Целевой сервер
Имя целевого ядра СУБД. Это может быть имя локального SQL Server, Базы данных SQL Azure или Управляемого экземпляра SQL Azure. Это свойство отображается только в том случае, если тип назначения — SSISDB.
Путь к назначению
Путь к целевой папке, в которой будет развернут исходный файл. Например:
- /SSISDB/<folderName>
- \\<machineName>\<shareFolderName>\<optionalSubfolderName>
Задача SSIS Deploy создаст папку и подпапку, если они не существуют.
Тип проверки подлинности
Тип проверки подлинности для доступа к указанному целевому серверу. Это свойство отображается только в том случае, если тип назначения — SSISDB. Обычно поддерживаются следующие типы проверки подлинности:
- Проверка подлинности Windows
- Проверка подлинности SQL Server
- Active Directory — пароль
- Active Directory — интегрированная
Но поддерживается ли конкретный тип проверки подлинности, зависит от типа целевого сервера и типа агента. Матрица поддержки приведена в таблице ниже.
Тип целевого сервера | Агент, размещённый Microsoft | Локальный агент |
---|---|---|
Локальная или виртуальная машина SQL Server | N/A | Проверка подлинности Windows |
Azure SQL | Проверка подлинности SQL Server Active Directory — пароль |
Проверка подлинности SQL Server Active Directory — пароль Active Directory — интегрированная |
Доменное имя
Доменное имя для доступа к указанной файловой системе. Это свойство отображается только в том случае, если тип назначения — файловая система. Вы можете оставить это поле пустым, если учётной записи пользователя, предназначенной для запуска самостоятельно размещённого агента, предоставлен доступ на чтение и запись к указанному пути назначения.
Имя пользователя
Имя пользователя для доступа к указанной файловой системе или SSISDB. Это свойство отображается, если тип назначения — файловая система, или тип проверки подлинности — SQL Server Authentication или Active Directory — пароль. Вы можете оставить поле пустым, если тип назначения — файловая система, и учетная запись пользователя для запуска самостоятельного агента была предоставлена доступ для чтения и записи к указанному пути назначения.
Пароль
Пароль для доступа к указанной файловой системе или SSISDB. Это свойство видно, если тип назначения — файловая система или тип проверки подлинности — проверка подлинности SQL Server или пароль Active Directory. Вы можете оставить это пустым, если тип назначения является файловой системой, а учетной записи пользователя для запуска самостоятельно размещённого агента предоставлен доступ к чтению и записи к указанному пути назначения.
Перезапись существующих проектов или файлов SSISDeploymentManifest с одинаковыми именами
Укажите, следует ли перезаписать существующие проекты или файлы SSISDeploymentManifest с теми же именами. Если параметр "Нет", задача развертывания служб SSIS пропустит развертывание этих проектов или файлов.
Продолжить развертывание при возникновении ошибки
Укажите, следует ли продолжать развертывание для оставшихся проектов или файлов при возникновении ошибки. Если значение "Нет", задача развертывания служб SSIS немедленно остановится при возникновении ошибки.
Ограничения и известные проблемы
В настоящее время задача развертывания служб SSIS не поддерживает следующие сценарии:
- Настройка среды в каталоге служб SSIS.
- Развертывание ISPAC в Azure SQL Server или Управляемом экземпляре SQL Azure, которое разрешает только многофакторную проверку подлинности.
- Развертывание пакетов в MSDB или в хранилище пакетов SSIS.
- Если установить расширение служб SSIS DevOps Tools в Azure DevOps Server, может появиться сообщение "Размер пакета расширения превышает максимальный размер пакета". Чтобы устранить проблему, выполните следующие действия.
- Подключитесь к локальному экземпляру SQL Server и выберите базу данных Gallery_Configuration.
- Запустите запрос
INSERT INTO dbo.tbl_RegistryItems VALUES (1,'#\Configuration\Service\Gallery\LargeExtensionUpload\SSIS\','MaxPackageSizeMB\',50)
. Измените50
на более высокое число, если расширение больше 50 МБ. - После выполнения запроса перезапустите службы Internet Information Services. Повторите попытку загрузить расширение.
- Если ошибка не исчезнет, обратитесь в службу поддержки SQL Server.
Задача развертывания SSIS версии 1.*
Усовершенствования в версии 1.*:
- Поддержка уровня защиты EncryptionWithPassword и EncryptionAllWithPassword.
Только свойства версии 1.*
Пароль проекта
Пароль для расшифровки файлов ISPAC или DTSX. Этот аргумент действителен, только если уровень защиты — EncryptSensitiveWithPassword или EncryptAllWithPassword.
Задача конфигурации каталога служб SSIS
Свойства
Источник файла конфигурации
Источник JSON-файла конфигурации каталога служб SSIS. Это может быть "путь к файлу" или "Inline".
Дополнительные сведения о том, как задатьJSON-конфигурацию:
- См. пример встроенной конфигурации JSON.
- Проверьте схему JSON.
Путь к файлу JSON конфигурации
Путь к JSON-файлу конфигурации каталога SSIS. Это свойство отображается только при выборе пути к файлу в качестве источника файла конфигурации.
Чтобы использовать переменные конвейера в файле JSON конфигурации, необходимо добавить задачу преобразования файлов перед этой задачей, чтобы заменить значения конфигурации переменными конвейера. Для получения дополнительной информации см. раздел о подстановке переменных JSON.
Встроенная JSON-конфигурация
Встроенный JSON конфигурации каталога SSIS. Это свойство отображается только при выборе "Inline" в качестве источника файла конфигурации. Переменные конвейера можно использовать напрямую.
Откат конфигурации при возникновении ошибки
Следует ли откатить конфигурацию, созданную этой задачей при возникновении ошибки.
Целевой сервер
Имя целевого ядра СУБД. Это может быть имя локального SQL Server, Базы данных SQL Azure или Управляемого экземпляра SQL Azure.
Тип проверки подлинности
Тип проверки подлинности для доступа к указанному целевому серверу. Обычно поддерживаются следующие типы проверки подлинности:
- Проверка подлинности Windows
- Проверка подлинности SQL Server
- Active Directory — пароль
- Active Directory — интегрированная
Но поддерживается ли конкретный тип проверки подлинности, зависит от типа целевого сервера и типа агента. В таблице ниже представлена матрица поддержки деталей.
Тип целевого сервера | Агент, размещённый на серверах корпорации Майкрософт | Самостоятельно размещённый агент |
---|---|---|
Локальная или виртуальная машина SQL Server | N/A | Проверка подлинности Windows |
Azure SQL | Проверка подлинности SQL Server Active Directory — пароль |
Проверка подлинности SQL Server Active Directory — пароль Active Directory — интегрированная |
Имя пользователя
Имя пользователя для доступа к целевому SQL Server. Это свойство отображается только в том случае, если тип проверки подлинности — проверка подлинности SQL Server или Active Directory — пароль.
Пароль
Пароль для доступа к целевому SQL Server. Это свойство отображается только в том случае, если тип проверки подлинности — проверка подлинности SQL Server или Active Directory — пароль.
Определение JSON конфигурации
Схема JSON конфигурации состоит из трех уровней:
- каталог
- папка
- проект и среда
Пример встроенной конфигурации JSON
{
"folders": [
{
"name": "devopsdemo",
"description": "devops demo folder",
"projects": [
{
"name": "catalog devops",
"parameters": [
{
"name": "password",
"container": "Package.dtsx",
"value": "passwd",
"valueType": "referenced"
},
{
"name": "serverName",
"container": "catalog devops",
"value": "localhost",
"valueType": "literal"
}
],
"references": [
{
"environmentName": "test",
"environmentFolder": "devopsdemo"
},
{
"environmentName": "test",
"environmentFolder": "."
}
]
}
],
"environments": [
{
"name": "test",
"description": "test",
"variables": [
{
"name": "passwd",
"type": "string",
"description": "",
"value": "$(SSISDBServerAdminPassword)",
"sensitive": true
},
{
"name": "serverName",
"type": "string",
"description": "",
"value": "$(TargetServerName)",
"sensitive": false
}
]
}
]
}
]
}
Схема JSON
Атрибуты каталога
Свойство | Описание | Примечания |
---|---|---|
Папки | Массив объектов папок. Каждый объект содержит сведения о конфигурации для папки каталога. | Сведения о схеме объекта папки см. в |
Атрибуты папки
Свойство | Описание | Примечания |
---|---|---|
имя | Имя папки каталога. | Папка будет создана, если она не существует. |
описание | Описание папки каталога. | Значение null будет пропущено. |
проекты | Массив объектов проекта. Каждый объект содержит сведения о конфигурации для проекта. | Ознакомьтесь со схемой объекта проекта в атрибутах проекта . |
Среды | Массив объектов среды. Каждый объект содержит сведения о конфигурации для среды. | См. Атрибуты среды для получения схемы объекта среды. |
Атрибуты проекта
Собственность | Описание | Примечания |
---|---|---|
имя | Имя проекта. | Объект Project будет пропущен, если проект не существует в родительской папке. |
Параметры | Массив объектов параметров. Каждый объект содержит сведения о конфигурации для параметра. | См. атрибуты параметров схему объекта параметра. |
Ссылки | Массив ссылочных объектов. Каждый объект представляет ссылку на среду целевого проекта. | См. Атрибуты ссылки для схемы ссылочного объекта. |
Атрибуты параметров
Свойство | Описание | Примечания |
---|---|---|
имя | Имя параметра. | |
контейнер | Контейнер параметра. | |
ценность | Значение параметра. | |
тип значения | Тип значения параметра. | Допустимые типы: литерал: атрибут представляет литеральное значение. |
Ссылочные атрибуты
Свойство | Описание | Примечания |
---|---|---|
папка среды | Имя папки среды. | Папка будет создана, если она не существует. Значение может быть ".", представляющее родительскую папку проекта, которая ссылается на среду. |
environmentName | Имя указанной среды. | Указанная среда будет создана, если она не существует. |
Атрибуты среды
Свойство | Описание | Примечания |
---|---|---|
имя | Имя среды. | Среда будет создана, если она не существует. |
описание | Описание среды. | Значение null будет пропущено. |
Переменные | Массив переменных объектов. | Каждый объект содержит сведения о конфигурации для переменной среды.см. атрибуты переменной для схемы объекта переменной. |
Атрибуты переменной
Свойство | Описание | Примечания |
---|---|---|
имя | Имя переменной среды. | Переменная среды будет создана, если она не существует. |
тип | Тип данных переменной среды. | Допустимые типы: логическое байт дата-время десятичный двойной int16 int32 int64 знаковый байт единственный строка uint32 uint64 |
описание | Описание переменной среды. | Значение null будет пропущено. |
ценность | Значение переменной среды. | Этот атрибут поддерживает любые допустимые JSON-значения: логические, числовые и строковые. Значение будет преобразовано в тип, указанный атрибутом типа. Ошибка возникает при сбое преобразования. Недопустимое значение null. Задача пропустит этот объект переменной среды и даст предупреждение. |
чувствительный | Является ли значение переменной среды конфиденциальным. | Допустимые входные данные: истинный ложь |
Заметки о выпуске
Версия 1.0.6
Дата выпуска: 1 сентября 2021 г.
- Релиз общедоступной версии.
Версия 1.0.5
Дата выпуска: 2 июня 2021 г.
- Исправлена проблема, из-за которой иногда задача сборки служб SSIS версии 1.* не удавалось собрать проекты и пакеты с уровнем защиты EncryptSensitiveWithPassword или EncryptAllWithPassword, выдавая ошибку "Указанный вектор инициализации (IV) не соответствует размеру блока для этого алгоритма".
- Удалено содержимое JSON в журнале задачи конфигурации каталога служб SSIS, если "Источник файла конфигурации" — "Путь к файлу".
Версия 1.0.4
Дата выпуска: 21 апреля 2021 г.
- Задача сборки SSIS версии 1.* (Предварительная версия)
- Удалите зависимость от Visual Studio и конструктора SSIS. Задача сборки может выполняться на агенте, размещаемом Microsoft, или агенте с саморазмещением с операционной системой Windows и .NET Framework 4.6.2 или более поздней версии.
- Нет необходимости устанавливать готовые к использованию компоненты.
- Поддержка уровня защиты EncryptionWithPassword и EncryptionAllWithPassword.
- Задача развертывания SSIS версии 1.* (предварительная версия)
- Поддержка уровня защиты EncryptionWithPassword и EncryptionAllWithPassword.
Версия 1.0.3
Дата выпуска: 21 октября 2020 г.
- Разрешить указание суффикса строки подключения для задачи развертывания служб SSIS и задачи конфигурации каталога служб SSIS.
Версия 1.0.2
Дата выпуска: 26 мая 2020 г.
- Исправлена проблема, из-за которой задача конфигурации каталога SSIS может завершиться сбоем в некоторых случаях после завершения работы конфигурации.
Версия 1.0.1
Дата выпуска: 9 мая 2020 г.
- Исправлена проблема, из-за которой задача сборки SSIS всегда создавала все решение, даже если в качестве пути проекта указан только один файл dtproj.
Версия 1.0.0
Дата выпуска: 8 мая 2020 г.
- Выпуск общедоступной версии.
- Добавлено ограничение минимальной версии платформы .NET для агента. В настоящее время минимальная версия .NET Framework — 4.6.2.
- Подробное описание задачи сборки служб SSIS и задачи развертывания служб SSIS.
Предварительная версия 0.2.0
Дата выпуска: 31 марта 2020 г.
- Добавьте задачу конфигурации каталога служб SSIS.
Предварительная версия 0.1.3
Дата выпуска: 19 января 2020 г.
- Исправлена проблема, из-за которой не удавалось развернуть ispac, если его исходное имя файла было изменено.
Предварительная версия 0.1.2
Дата выпуска: 13 января 2020 г.
- В журнал задачи развертывания SSIS добавлена более подробная информация об исключении, когда тип назначения — SSISDB.
- Исправлен пример пути назначения в тексте справки свойства "Путь назначения" задачи развертывания SSIS.
Предварительная версия 0.1.1
Дата выпуска: 6 января 2020 г.
- Добавлено ограничение минимальной версии агента. В настоящее время минимальная версия агента этого продукта — 2.144.0.
- Исправлено неправильное отображение текста для задачи SSIS Deploy.
- Уточнены некоторые сообщения об ошибках.
Предварительная версия 0.1.0
Дата выпуска: 5 декабря 2019 г.
Первоначальный выпуск средств SSIS DevOps. Это предварительный выпуск.
Дальнейшие действия
- Получите расширение SSIS DevOps