使用Individual Docker Image部署为Azure Web应用程序,从Python连接到Blob存储

我有一个Python的Docker部署为Azure上的Web应用程序(我遵循本教程: https : //docs.microsoft.com/en-us/azure/app-service-web/app-service-web-tutorial-docker -python-postgresql-app )

Dockerfile看起来像这样:

FROM python:3.6.1 EXPOSE 2222 80 8080 5000 COPY daemon.json /etc/docker/ ENV http_proxy http://<LOCALPROXYADDRESS>:8080 ENV https_proxy https://<LOCALPROXYADDRESS>:8080 RUN apt-get update \ && apt-get install -y --no-install-recommends openssh-server \ && echo "root:Docker!" | chpasswd COPY requirements.txt / RUN pip install -r ./requirements.txt COPY sshd_config /etc/ssh/ COPY init_container.sh /bin/ RUN chmod 755 /bin/init_container.sh CMD ["/bin/init_container.sh"] COPY app/ /app/ WORKDIR /app ENV FLASK_APP=app.py CMD flask run -h 0.0.0.0 -p 5000 

我尝试使用azure.storage.blob中的BlockBlobService通过python连接到Blob存储。 这适用于在本地机器上启动的容器。 一旦我把它推到azure色,会出现以下错误:

 azure.common.AzureException: HTTPSConnectionPool(host='<CONTAINERNAME>.blob.core.windows.net', port=443): Max retries exceeded with url: /mycontainer?restype=container (Caused by ProxyError('Cannot connect to proxy.', NewConnectionError('<urllib3.connection.VerifiedHTTPSConnection object at 0x7fe859467cc0>: Failed to establish a new connection: [Errno -2] Name or service not known',))) 

尝试通过Http Proxy与StorageClient.set_proxy方法连接到Python中的Azure Blob存储,如下面的代码所示。

 from azure.storage.blob import BlockBlobService block_blob_service = BlockBlobService(account_name="<your account name>", account_key="<your account key>") super(BlockBlobService, block_blob_service).set_proxy("LOCALPROXYADDRESS", "8080") 

希望能帮助到你。