Как вызвать конечную точку пакетной службы Azure ML с помощью действий HTTP/Web из Synapse Integrate

Предпосылка

  • Учетная запись Azure
  • Хранилище Azure
  • Служба машинного обучения Azure
  • Создайте конечную точку пакета в соответствии с документацией.
  • В этой статье не показано, как развернуть пакетную конечную точку.
  • https://docs.microsoft.com/en-us/azure/machine-learning/how-to-use-batch-endpoint
  • Код для конечной точки партии доступен по ссылке выше.
  • Создание рабочей области Azure Synapse Analytics
  • Создать хранилище ключей Azure
  • Хранить идентификатор клиента, секрет и арендатора в Azure Keyvault
Note: to show how we can do ETL/ELT and then invoke batch endpoint to score ML model.

Архитектура / Поток

Шаги потока/действия

  • Принесите веб-активность

  • Настройте секретный URL-адрес для идентификатора клиента, хранящегося в Azure Keyvault.
  • Для URL
https://keyvaultname.vault.azure.net/secrets/secretname/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx?api-version=7.0
  • Выберите ПОЛУЧИТЬ
  • для ресурса
  • В целях безопасности выберите управляемое удостоверение.
https://vault.azure.net
  • Создать переменные

  • Теперь установите переменную

@activity('clientid').output.value
  • Теперь давайте снова перетащим веб-активность для секрета.
  • Для URL

https://keyvaultname.vault.azure.net/secrets/secretname/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx?api-version=7.0
  • Выберите ПОЛУЧИТЬ
  • для ресурса
  • В целях безопасности выберите управляемое удостоверение.
https://vault.azure.net
  • Затем установите переменную

@activity('clientsecret').output.value
  • теперь давайте получим токен авторизации

  • Для URL
https://login.microsoftonline.com/tenantid/oauth2/token
  • для тела
@concat('grant_type=client_credentials&client_id=',variables('clientid'),'&resource=https://management.core.windows.net/&client_secret=',variables('clienttoken'))
  • теперь сохраните токен в переменной
@activity('Getbearertoken').output.access_token

  • Теперь давайте получим токен оценки для конечной точки пакета.

https://login.microsoftonline.com/tenantid/oauth2/token
@concat('grant_type=client_credentials&client_id=',variables('clientid'),'&resource=https://ml.azure.com/&client_secret=',variables('clienttoken'))
  • Сохраните токен оценки в переменной
@activity('scoring_token').output.access_token

  • теперь получить идентификатор набора данных
  • для URL
https://centralus.experiments.azureml.net/dataset/v1.0/subscriptions/<subid>/resourceGroups/<rgname>/providers/Microsoft.MachineLearningServices/workspaces/<workspacename>/saveddatasets/from-data-path

  • Добавить заголовок для авторизации
@concat('Bearer ',variables('tokenml'))
  • Тело
{"DatastoreName":"taxibatch2files","RelativePath":"/example-data/taxibatch.csv"}
  • теперь вызовите конечную точку пакета

  • Теперь используйте конечную точку пакетной службы из службы машинного обучения Azure.
  • В Azure ML перейдите в раздел Конечная точка > Конечная точка пакетной обработки > выберите конечную точку пакетной обработки > щелкните сведения.
https://endpointname.centralus.inference.ml.azure.com/jobs
  • Установите заголовки для авторизации и типа контента
Authorization: @concat('Bearer ',variables('tokenml'))
Content-Type: application/json
  • для изменения тела на
{
  "properties": {
    "dataset": {
      "dataInputType": "DatasetVersion",
      "datasetName": "taxibatch2files",
      "datasetVersion": "1"
    }
  }
}
  • Зафиксировать изменения
  • Нажмите отладку

  • дождитесь завершения потока

  • Сделанный

Первоначально опубликовано на https://github.com.