Azure / Azure/MachineLearningNotebooks

Docker image pull fails for workspaces created via Pulumi or Terraform

Ouverte
#1,479 2 commentaires 0 réactions 0 personnes assignées Voir sur GitHub
ADO product-question Workspace Management
Langage dominant
Jupyter Notebook
Étoiles
4.4k
Forks
2.6k
Métriques de merge des PR
Aucune PR mergée en 30 j

Description

I'm creating workspaces using infrastructure automation.

That means I create the workspace, keyvault, container registry, and storage account independently and pass them as inputs when creating the workspace resource. (code below)

In contrast to workspaces created through the Azure Portal, in this workspace *I cannot run data profile jobs*. This is true for both standard compute VMs and training clusters.

The data profile job fails with the error below:

```
AzureMLCompute job failed.
FailedPullingImage: Unable to pull docker image
imageName: mlresgistry47995d33.azurecr.io/azureml/azureml_83cea8d8015ba343d5ee43f9b331c069
err: Run docker command to pull public image failed with error: Error response from daemon: Get https://mlresgistry47995d33.azurecr.io/v2/azureml/azureml_83cea8d8015ba343d5ee43f9b331c069/manifests/latest: unauthorized: authentication required, visit https://aka.ms/acr/authorization for more information.
.
Reason: Error response from daemon: Get https://mlresgistry47995d33.azurecr.io/v2/azureml/azureml_83cea8d8015ba343d5ee43f9b331c069/manifests/latest: unauthorized: authentication required, visit https://aka.ms/acr/authorization for more information.

Info: Failed to prepare an environment for the job execution: Job environment preparation failed on 10.0.0.6 with err exit status 1.
```

Pulumi resource creation for reference:

```cs
var storageAccount = new StorageAccount("sa", new StorageAccountArgs
{
ResourceGroupName = rg.Name,
Sku = new SkuArgs
{
Name = SkuName.Standard_LRS
},
Kind = Kind.StorageV2,
Tags = tags
});

this.PrimaryStorageKey = Output.Tuple(rg.Name, storageAccount.Name).Apply(names =>
Output.CreateSecret(GetStorageAccountPrimaryKey(names.Item1, names.Item2)));

var appInsights = new AzureNative.Insights.Component("MLAppInsights", new AzureNative.Insights.ComponentArgs
{
ApplicationType = "web",
Kind = "web",
ResourceGroupName = rg.Name,
Tags = tags
});

var containerRegistry = new AzureNative.ContainerRegistry.Registry("MLResgistry", new AzureNative.ContainerRegistry.RegistryArgs
{
Sku = new AzureNative.ContainerRegistry.Inputs.SkuArgs
{
Name = "standard",
},
AdminUserEnabled = true,
ResourceGroupName = rg.Name,
Tags = tags

});

var keyVault = new AzureNative.KeyVault.Vault("MLKV", new AzureNative.KeyVault.VaultArgs
{
ResourceGroupName = rg.Name,
Tags = tags,
Properties = new AzureNative.KeyVault.Inputs.VaultPropertiesArgs
{
TenantId = config.Require("tenantId"),
EnabledForDeployment = true,
EnabledForDiskEncryption = true,
EnabledForTemplateDeployment = true,
AccessPolicies =
{
new AzureNative.KeyVault.Inputs.AccessPolicyEntryArgs
{
ObjectId = Output.Create(AzureNative.Authorization.GetClientConfig.InvokeAsync()).Apply(_ => _.ObjectId),
Permissions = new AzureNative.KeyVault.Inputs.PermissionsArgs
{
Certificates =
{
"all"
},
Keys =
{
"all"
},
Secrets =
{
"all"

},
},
TenantId = config.Require("tenantId"),
},
},
Sku = new AzureNative.KeyVault.Inputs.SkuArgs
{
Name = AzureNative.KeyVault.SkuName.Standard,
Family = AzureNative.KeyVault.SkuFamily.A
}
},
});

var workspace = new AzureNative.MachineLearningServices.Workspace("workspace", new AzureNative.MachineLearningServices.WorkspaceArgs
{
ApplicationInsights = appInsights.Id,
ContainerRegistry = containerRegistry.Id,
Description = "Azure ML Workspace",
FriendlyName = "Dev ML",
HbiWorkspace = false,
Identity = new AzureNative.MachineLearningServices.Inputs.IdentityArgs
{
Type = AzureNative.MachineLearningServices.ResourceIdentityType.SystemAssigned,
},
KeyVault = keyVault.Id,
ResourceGroupName = rg.Name,
Sku = new AzureNative.MachineLearningServices.Inputs.SkuArgs
{
Name = "Basic",
Tier = "Basic",
},
StorageAccount = storageAccount.Id,
WorkspaceName = "MyNewWorkspace",
});
```

Guide de contribution

Aucun guide de contribution indexé pour ce dépôt

Piste de recherche

Commencez par le provisionnement du workspace Pulumi/Terraform présenté dans l’issue et par l’échec de la tâche de profilage des données Azure Machine Learning ; comparez ces ressources créées indépendamment avec un workspace créé via Azure Portal. C’est terminé lorsque les tâches de profilage des données s’exécutent correctement sur des VM de calcul standard et des clusters d’entraînement sans l’erreur d’authentification FailedPullingImage.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Évaluation

Stack technique
azure, csharp, machine-learning, terraform
Domaine
cloud, infrastructure, machine-learning
Type d'issue
Bug
Difficulté
4/5
Temps estimé
3-5 jours
Activité
À l'abandon
Clarté
Plutôt claire
Accessibilité débutants
25/100

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.