Skip to content

[FR] Allow Proxies in Sagemaker Endpoints and Docker builds #6119

@ameya-parab

Description

@ameya-parab

Willingness to contribute

Yes. I would be willing to contribute this feature with guidance from the MLflow community.

Proposal Summary

I'd like to request that proxies (http proxy, https proxy, and no proxy) be allowed when performing the below two operations -

  1. Build and Push Docker container - mlflow sagemaker build-and-push-container
  2. Deploying models as Sagemaker Endpoints

Motivation

What is the use case for this feature?

The 'maven' framework accepts proxies via the 'settings.xml' file or extra command line arguments, the 'maven' commands inside the generated Dockerfile after triggering the 'mlflow sagemaker build-and-push-container' command fail with HTTP timeouts. Furthermore, when models are deployed as Sagemaker endpoints, the 'mlflow deploy' API does not provide the option to inject proxies as environment variables.

Why is this use case valuable to support for MLflow users in general?

Proxies are common in every business, so users who want to use mlflow deployments to Sagemaker will require this feature.

Why is this use case valuable to support for your project(s) or organization?

We plan to use mlflow to deploy models registered in the 'mlflow registry' to AWS Sagemaker.

Details

We are partnering with Databricks - @mshtelma to integrate the proposed fix into open source mlflow -

Docker Build Maven Proxy Fix:

https://github.com/ameya-parab/mlflow/blob/feature/sagemaker_proxies/mlflow/models/docker_utils.py#L40-L52
https://github.com/ameya-parab/mlflow/blob/feature/sagemaker_proxies/mlflow/models/docker_utils.py#L100-L126

SageMaker Endpoints Proxies:

https://github.com/ameya-parab/mlflow/blob/feature/sagemaker_proxies/mlflow/sagemaker/__init__.py#L1241-L1249

What component(s) does this bug affect?

  • area/artifacts: Artifact stores and artifact logging
  • area/build: Build and test infrastructure for MLflow
  • area/docs: MLflow documentation pages
  • area/examples: Example code
  • area/model-registry: Model Registry service, APIs, and the fluent client calls for Model Registry
  • area/models: MLmodel format, model serialization/deserialization, flavors
  • area/projects: MLproject format, project running backends
  • area/scoring: MLflow Model server, model deployment tools, Spark UDFs
  • area/server-infra: MLflow Tracking server backend
  • area/tracking: Tracking Service, tracking client APIs, autologging

What interface(s) does this bug affect?

  • area/uiux: Front-end, user experience, plotting, JavaScript, JavaScript dev server
  • area/docker: Docker use across MLflow's components, such as MLflow Projects and MLflow Models
  • area/sqlalchemy: Use of SQLAlchemy in the Tracking Service or Model Registry
  • area/windows: Windows support

What language(s) does this bug affect?

  • language/r: R APIs and clients
  • language/java: Java APIs and clients
  • language/new: Proposals for new client languages

What integration(s) does this bug affect?

  • integrations/azure: Azure and Azure ML integrations
  • integrations/sagemaker: SageMaker integrations
  • integrations/databricks: Databricks integrations

Metadata

Metadata

Assignees

No one assigned

    Labels

    area/dockerDocker use anywhere, such as MLprojects and MLmodelsarea/modelsMLmodel format, model serialization/deserialization, flavorsarea/scoringMLflow Model server, model deployment tools, Spark UDFsenhancementNew feature or requestintegrations/sagemakerSagemaker integrations

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions