MachineLearningNotebooks: ML Pipelines DatabricksStep doesn't support Run.get_context()
While using a DatabricksStep I want to get the appropriate Run context so that I can log information to Azure ML.
I thought this might work:
- Authenticate with AzureMLTokenAuthentication
- Get an authenticated Workspace -> Experiment -> Run
- Use the Run.get_context()
Although I can’t use the AzureMLTokenAuthentication to authenticate the Workspace.
Can you please provide more information on Azure’s intention on how AzureMLTokenAuthentication should even be used?
The only way I’ve been able to get a run_context from within Databricks during a DatabricksStep is:
os.environ['AZUREML_RUN_TOKEN'] = AZUREML_RUN_TOKEN
os.environ['AZUREML_RUN_TOKEN_EXPIRY'] = AZUREML_RUN_TOKEN_EXPIRY
os.environ['AZUREML_RUN_ID'] = AZUREML_RUN_ID
os.environ['AZUREML_ARM_SUBSCRIPTION'] = AZUREML_ARM_SUBSCRIPTION
os.environ['AZUREML_ARM_RESOURCEGROUP'] = AZUREML_ARM_RESOURCEGROUP
os.environ['AZUREML_ARM_WORKSPACE_NAME'] = AZUREML_ARM_WORKSPACE_NAME
os.environ['AZUREML_ARM_PROJECT_NAME'] = AZUREML_ARM_PROJECT_NAME
os.environ['AZUREML_SERVICE_ENDPOINT'] = AZUREML_SERVICE_ENDPOINT
run = Run.get_context(allow_offline=False)
Which feels like a hack. How does Azure suggest that someone does this.
Any help is appreciated.
Noel
Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.
- ID: 4f99a518-b801-fb1c-4f6a-4a520be5aecc
- Version Independent ID: abc91e79-e6ef-801d-1883-4e0fba418317
- Content: azureml.core.authentication.AzureMLTokenAuthentication class - Azure Machine Learning Python
- Content Source: AzureML-Docset/stable/docs-ref-autogen/azureml-core/azureml.core.authentication.AzureMLTokenAuthentication.yml
- Service: machine-learning
- Sub-service: core
- GitHub Login: @debfro
- Microsoft Alias: jmartens
About this issue
- Original URL
- State: open
- Created 4 years ago
- Reactions: 5
- Comments: 18 (2 by maintainers)
@fahdkmsft It’s unclear that this is the intended usage given that the only documentation related to these additional variables is under DatabricksStep -> python_script_name and makes no mention of setting them in order to get a Run through
Run.get_context()
.I apologize if I missed some docs that explains this but if I have can you please post a link to them?
I’d also like to point out that no one has answered my question about what the intended use of the AzureMLTokenAuthentication is? A DatabricksStep provides all of the information to instantiate this class but you can’t authenticate a Workspace with it.
Hi all, is there any update on this issue? I followed the suggestion but it does not work from Databricks job cluster launched by a DatabrickStep and running a local python script.
@kamakay or @RothNRK, did you guys find any option to use the Run class from the python script in Databricks?
Thanks in advanced. BR.
@RothNRK Thank you for pointing this out. I have created a work item to investigate the issue. We will update you shortly.
@rastala , please check and create ICM for pipelines team if needed. Thanks!
@rastala Thank you. That is what I expected but while in a
DatabricksStep
it doesn’t seem to simply work.Run.get_context(allow_offline=False)
produces:So it looks like it’s looking for environment variables that aren’t set. If I run it with Run.get_context() I get an error related to the
_OfflineRun
not working (which makes sense since I need aRun
not an_OfflineRun
).