Оболочка Azure API Powershell

Я настраиваю конвейер автоматического развертывания для своего веб-сайта, в рамках которого мне нужно автоматизировать импорт Api с помощью VSTS RM. Я добился этого с помощью пользовательских сценариев PS в задачах VSTS. Я использовал URL-адрес swagger для импорта

i.e

Import-AzureRmApiManagementApi –Context $apimContext –SpecificationFormat 'swagger' –SpecificationUrl 'http://mywebapp.com/swagger/docs/v1' –Path 'apis'

Чтобы повысить безопасность, мы реализовали перенаправление HTTP-запроса на https, который защищен сертификатом клиента. Вот и проблема.

Теперь мы не можем использовать указанную выше команду для импорта, которая возвращает запрещенную ошибку 403, поскольку у диспетчера API нет возможности обойти проверку сертификата. что можно сделать, чтобы решить эту проблему?

Даже я попытался вызвать-webrequest URL-адрес с определенным сертификатом и импортировать API, который отлично работал на моем локальном компьютере.

$ swaggerurl = "https://mywebapp.org/swagger/docs/1" $ cert = New-Object System.Security.Cryptography.X509Certificates.X509Certificate2 ("xyz.cer") $ test = Invoke-WebRequest -Uri "$ swaggerurl "-Certificate $ cert $ test.statuscode

Import-AzureRmApiManagementApi –Context $ apimContext –SpecificationFormat 'swagger' –SpecificationUrl 'http://mywebapp.com/swagger/docs/v1 '–Путь' apis '

Но не в оболочке питания VSTS Inline. Он не принимает значение сертификата и возвращает запрещенную ошибку 403.

Пожалуйста, дайте мне знать, как решить эту проблему?

Проблема :

1. Невозможно импортировать в диспетчер API из-за проверки сертификата клиента https на URL-адресе swagger.

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

Заранее спасибо.




Ответы (3)


Вместо этого используйте шаг / задачу Azure PowerShell. (Включить в категорию развертывания)

person starian chen-MSFT    schedule 24.03.2017
comment
Это тоже не помогло !! ## [ошибка] Удаленный сервер возвратил ошибку: (403) Запрещено. - person paulpuvi; 24.03.2017
comment
@paulpuvi Вы можете поделиться подробным журналом сборки здесь? Какие подробности (настройки) лазурного шага PowerShell? - person starian chen-MSFT; 24.03.2017

Чтобы это работало, службе управления API необходимо выполнить WebRequest от вашего имени на URL-адрес с ClientCertificate в Request. В настоящее время мы не предоставляем такую ​​возможность для вызова Import-AzureRmApiManagementApi с клиентским сертификатом.

Единственный доступный вариант - сделать WebRequest с помощью Powershell (Invoke- RestMethod), загрузите swagger в локальный файл и используйте параметр -SpecificationPath в командлет

person Samir    schedule 26.03.2017
comment
Спасибо ! Тот же код работает в VSTS с частным агентом, установленным на моей машине. Поэтому я планирую иметь выделенный компьютер (установлен сертификат) с частным агентом для импорта API, URL-адрес которого защищен сертификатом клиента. - person paulpuvi; 30.03.2017
comment
@paulpuvi Я столкнулся с проблемой при импорте API с помощью Swagger Url. Удалось ли вам загрузить Swagger.json и импортировать его orиспользовались ли вы URL-адресом swagger? Не могли бы вы опубликовать шаги? Заранее спасибо :) - person Sandesh; 13.04.2017

Эта проблема была решена путем изменения частного агента на запуск от имени администратора. Теперь все работает как положено :)

Импорт API с использованием частного агента VSTS

person paulpuvi    schedule 13.06.2017