1
resposta

[Dúvida] Ajuda para rodar o script pre_processsamento.py na azure

Olá, estou assistindo a aula "08 Rastrear experimentos com MLFlow" e estou enfrentando problemas para executar o script pre_processamento.py. Fiz a atualização do MlCliente conforme o meu usário e me retorna o seguinte erro ao rodar o script.

Não me pareceu um erro de autenticação e sim que ele não encontra o input_csv = ml_client.data.get("base_clientes_inadimplencia", version="1").

Se eu faço essa alteração no código o script roda sem problemas. Então o erro está em ler a base desse ml_client.data.get.

# input_csv = ml_client.data.get("base_clientes_inadimplencia", version="1")
df = pd.read_csv("./data/base_clientes_inadimplencia.csv") 
target = "Status_Pagamento"
colunas_data = ["Data_Contratacao", "Data_Vencimento_Fatura", "Data_Ingestao", "Data_Atualizacao"] 
drop_cols = ["Telefone", "Nome", "Email", "Data_Nascimento", "Data_Contratacao", "Data_Vencimento_Fatura", "Data_Ingestao", "Data_Atualizacao"]  # Ajuste se necessário
df_transformado  = pipeline_preprocessamento( "./data/base_clientes_inadimplencia.csv", target, colunas_data, drop_cols=drop_cols)

Posso seguir utilizando essa alteração ou não utilizar ml_client.data.get pode gerar algum problema posterior ?

traceback (most recent call last): File "/mnt/batch/tasks/shared/LS_root/mounts/clusters/cluster-alura/code/Users/nanasoares_sa/Projeto-SPIN/src/pre_processamento.py", line 269, in input_csv = ml_client.data.get("base_clientes_inadimplencia", version="1") File "/anaconda/envs/azureml_py38/lib/python3.10/site-packages/azure/ai/ml/_telemetry/activity.py", line 288, in wrapper return f(*args, **kwargs) File "/anaconda/envs/azureml_py38/lib/python3.10/site-packages/azure/ai/ml/operations/_data_operations.py", line 276, in get data_version_resource = self._get(name, version) File "/anaconda/envs/azureml_py38/lib/python3.10/site-packages/azure/ai/ml/operations/_data_operations.py", line 205, in _get else self._operation.get( File "/anaconda/envs/azureml_py38/lib/python3.10/site-packages/azure/core/tracing/decorator.py", line 119, in wrapper_use_tracer return func(*args, **kwargs) File "/anaconda/envs/azureml_py38/lib/python3.10/site-packages/azure/ai/ml/_restclient/v2023_04_01_preview/operations/_data_versions_operations.py", line 487, in get map_error(status_code=response.status_code, response=response, error_map=error_map) File "/anaconda/envs/azureml_py38/lib/python3.10/site-packages/azure/core/exceptions.py", line 163, in map_error raise error azure.core.exceptions.ResourceNotFoundError: (UserError) User error when calling GenericAssetMLIndexServiceClient.MoveNext. Service invocation failed! Request: GET brazilsouth.api.azureml.ms/genericasset/subscriptions/9697e209-d56a-4549-b825-d66cf685c3e2/resourceGroups/AulasAlura/providers/Microsoft.MachineLearningServices/workspaces/curso-alura/indexes/base_clientes_inadimplencia/versions/1 Status Code: 404 NotFound Error Code: UserError/NotFoundError Reason Phrase: Asset with Asset ID: azureml://locations/brazilsouth/workspaces/ef638187-8d25-4807-a767-a3cc998b873b Response Body: {"error":{"code":"UserError","message":"Asset with Asset ID: azureml://locations/brazilsouth/workspaces/ef638187-8d25-4807-a767-a3cc998b873b/indexes/base_clientes_inadimplencia/versions/1 and tenantId: was not found","details":[],"innerError":{"code":"NotFoundError"}},"correlation":{"operation":"f04617e7b17da41d206d956a4a1bd6fd","request":"206e2493dbfae470"},"environment":"brazilsouth","location":"brazilsouth","time":"2026-01-21T19:16:24.9934872+00:00","componentName":"genericasset","statusCode":404} Code: UserError Message: User error when calling GenericAssetMLIndexServiceClient.MoveNext. Service invocation failed! Request: GET brazilsouth.api.azureml.ms/genericasset/subscriptions/9697e209-d56a-4549-b825-d66cf685c3e2/resourceGroups/AulasAlura/providers/Microsoft.MachineLearningServices/workspaces/curso-alura/indexes/base_clientes_inadimplencia/versions/1 Status Code: 404 NotFound Error Code: UserError/NotFoundError Reason Phrase: Asset with Asset ID: azureml://locations/brazilsouth/workspaces/ef638187-8d25-4807-a767-a3cc998b873b Response Body: {"error":{"code":"UserError","message":"Asset with Asset ID: azureml://locations/brazilsouth/workspaces/ef638187-8d25-4807-a767-a3cc998b873b/indexes/base_clientes_inadimplencia/versions/1 and tenantId: was not found","details":[],"innerError":{"code":"NotFoundError"}},"correlation":{"operation":"f04617e7b17da41d206d956a4a1bd6fd","request":"206e2493dbfae470"},"environment":"brazilsouth","location":"brazilsouth","time":"2026-01-

1 resposta

Oi, Mariana, tudo bem?

Você está certa na sua análise: não é um problema de autenticação. O erro ResourceNotFoundError (404) indica que o Azure Machine Learning não encontrou um Data Asset registrado com o nome base_clientes_inadimplencia e versão 1 no catálogo de dados do Workspace que você configurou.

Para resolver e manter as boas práticas, recomendo fazer as verificações:

  1. Verifique o Registro no Azure ML Studio

    • Acesse o portal do Azure Machine Learning Studio:
    • Vá na aba Data (Dados) no menu lateral.
    • Procure pelo nome exato: base_clientes_inadimplencia.
    • Verifique se a Versão listada é a 1.
      Atenção: O nome é sensível a maiúsculas, minúsculas e símbolos (hifens ou underscores).
  2. O seu erro (traceback) indica que você está tentando acessar o Workspace curso-alura no grupo de recursos AulasAlura. Então verifique se, no seu script, o bloco de autenticação está como:

    ml_client = MLClient(
        DefaultAzureCredential(),
        subscription_id="SUA_ID_AQUI", # Verifique se esta ID é a da sua conta atual
        resource_group_name="AulasAlura",
        workspace_name="curso-alura"
    )
    

Se você registrou o dado em um Workspace com nome diferente, o MLClient não o encontrará.

Quanto a sua solução de leitura local com pd.read_csv funciona bem porque o script deixa de depender do catálogo de dados do Azure ML para rodar. Você pode seguir assim para não travar seus estudos, já que isso não impede o entendimento técnico desses tópicos. Mas, é fundamental entender que o comando original ml_client.data.get() serve para buscar um dado que já foi registrado e versionado dentro do Azure. Ao usar o arquivo local, você acaba abrindo mão da rastreabilidade e do versionamento, que são pilares importantes de MLOps apresentados nesta aula.

Por isso, embora o arquivo local resolva o problema imediato, o caminho ideal para o futuro é garantir que esse CSV esteja cadastrado como um Data Asset no seu workspace do Azure ML, com o mesmo nome e versão. Assim que esse registro for feito no portal do Azure, o comando original voltará a funciona.

Espero ter ajudado.

Qualquer dúvida que surgir, compartilhe no fórum. Abraços e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!