SnowPro Advanced: MLOps Engineer free question 6 / 10 · Domain 3: Model Serving and Deployment Operations
A team deploys a model for a mobile app backend that runs outside Snowflake. They call create_service with service_name, service_compute_pool and gpu_requests, and the service runs. SHOW ENDPOINTS shows no ingress_url to call. What was left out?
- max_instances above one, since a public URL needs two nodes.
- image_build_compute_pool, which sets up the public endpoint.
- num_workers, which opens the endpoint on port 5000 for callers.
- ingress_enabled=True, which creates the public HTTP endpoint.
Show the answer and explanation
Answer: D
Why this is correct
Under "Deploy a model for online inference", create_service takes service_name, service_compute_pool and ingress_enabled, which is required to be True to call online inference from outside of Snowflake. The section "HTTP endpoints" adds that every service has an internal DNS name, and that deploying with ingress_enabled also creates a public HTTP endpoint available outside Snowflake; SHOW ENDPOINTS returns it in the ingress_url column. This service was created without ingress, so it can only be called inside Snowflake. The role also needs the BIND SERVICE ENDPOINT privilege on the account to create a public endpoint.
Why the other options are wrong
"image_build_compute_pool, which sets up the public endpoint." … image_build_compute_pool lets you build the container image on a less powerful pool than the one that runs the model. It affects cost, not whether the service is reachable.
"max_instances above one, since a public URL needs two nodes." … Scaling settings control how many instances run. The page ties the public endpoint to one argument of create_service, not to the number of instances.
"num_workers, which opens the endpoint on port 5000 for callers." … num_workers sets the number of worker processes in the server. The endpoint is always named inference and uses port 5000, and these cannot be customized by any argument.
Public endpoint means ingress at creation
Inside Snowflake, callers can use the internal DNS name and port. An app outside Snowflake needs the ingress URL, which exists only if the service was created with ingress_enabled=True by a role allowed to bind a service endpoint.