Как включить проверку подлинности для веб-службы ACI в службе машинного обучения Azure?

Я могу развернуть службу прогнозирования машинного обучения Azure в своем рабочем пространстве ws используя синтаксис

aciconfig = AciWebservice.deploy_configuration(cpu_cores=1, 
                                               memory_gb=8, 
                                               tags={"method" : "some method"}, 
                                               description='Predict something')

а потом

service = Webservice.deploy_from_image(deployment_config = aciconfig,
                                       image = image,
                                       name = service_name,
                                       workspace = ws)

как описано в документации.
Тем не менее, это предоставляет услугу публично, и это не совсем оптимально.

Какой самый простой способ защитить службу ACI? Я понимаю, что прохождение auth_enabled=True Параметр может выполнять работу, но как я могу проинструктировать клиента (скажем, используя curl или почтальон) пользоваться сервисом потом?

2 ответа

Решение

Смотрите здесь для примера (в C#). Когда вы включите аутентификацию, вам нужно будет отправить ключ API в заголовке "Авторизация" в HTTP-запросе:

client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", authKey);

Смотрите здесь, как получить ключ.

Сначала получите первичный и вторичный ключи с синтаксисом

service.get_keys()

Если вы используете curlсинтаксис может выглядеть так:

curl -H "Content-Type:application/json" -H "Authorization: Bearer <authKey>" -X POST -d '{"data": [some data]}' http://<url>:<port>/<method>

где <authKey> является одним из ключей, найденных выше.

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