An Azure machine learning service for building and deploying models.
The fact that the same model deploys successfully to "Standard_F8s_v2", while the GPU deployment fails through both Terraform and Azure ML Studio, is useful isolation. It makes the Terraform configuration itself much less likely to be the root cause.
I would check the deployment from the Azure ML control plane before changing the model or image.
First, retrieve the managed online deployment logs directly:
az ml online-deployment get-logs \
--resource-group <resource-group> \
--workspace-name <workspace-name> \
--endpoint-name <endpoint-name> \
--name <deployment-name> \
--lines 100
If necessary, also inspect the storage initializer:
az ml online-deployment get-logs \
--resource-group <resource-group> \
--workspace-name <workspace-name> \
--endpoint-name <endpoint-name> \
--name <deployment-name> \
--container storage-initializer \
--lines 100
One important detail is that having enough visible quota for the requested GPU instance is not always sufficient. Azure ML managed online endpoints can reserve additional compute capacity for system operations on some VM SKUs. Microsoft documents this as up to 20% additional compute, depending on the SKU. I would therefore verify both the regional VM-family quota and the actual available capacity required by the deployment rather than relying only on the absence of an "OutOfQuota" message.
Since the deployment runs for hours without producing inference-container logs, it is also possible that provisioning is failing before the scoring container starts. That would explain why there are no application/container logs to inspect.
Given the tests you have already performed, my troubleshooting order would be:
- Retrieve deployment and storage-initializer logs through Azure CLI.
- Inspect the deployment operation/activity events and provisioning state.
- Verify regional quota including Azure ML's additional managed-endpoint reservation requirement.
- Try the same GPU SKU in another supported region if practical. That is a useful test for regional allocation/capacity rather than an application problem.
- If there are still no container logs and the deployment fails before container startup, open an Azure support case with the endpoint/deployment resource IDs, UTC failure timestamps, region, SKU, and failed operation/correlation IDs.
I would not rebuild the Terraform configuration yet. Reproducing the same behavior from Studio is strong evidence that the next useful evidence is at the Azure ML provisioning layer.
References:
Azure ML managed online endpoint deployment:
Azure ML online endpoint troubleshooting:
Azure ML resource and quota management: