This is an interesting post, and I followed the rabbit just a little farther. I had the same problem in multiple SQL Server contexts:
- Azure SQL Server Managed Instance
- Azure SQL Server (I think that's what it's called)
- SQL Server for Linux running in a Docker container
- I was going to try legit on-prem SQL Server in the data center, and then remembered that actual DBAs own that and I didn't want to involve them in this experiment
- The last place I tested was an Azure Container instance, running the same docker container
I got this same error on all of them (except on-prem SQL Server on Windows, which I admittedly didn't try).
The way I eventually resolved it was to download the file myself, outside of SQL Server, proving that it wasn't a network limitation from the instance at all, but rather something in the SQL Server code that had a problem with the URL -- a URL that was known to be good, by the way. I tested this not just on Azure blob storage, but S3 as well, and had the same problem both times.
Once I had it downloaded locally, I of course did not need the URL method anymore. It's cool, but I have not seen it work, and there is usually a way to get a file downloaded. In my case, I'm going to change my container to run a script on startup, which will startup SQL server, download the file, and create the database. Then it will call the Azure CLI to retrieve its own hostname and put that hostname elsewhere in blob storage, so another process can get the hostname to utilize the server.