You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Azure部署Docker镜像版Python函数应用无函数显示且404问题求助

Docker部署Azure函数后无函数显示且调用404排查

我通过代码直接部署HTTP触发函数到Azure后,函数能正常显示并返回数据。但打包成Docker镜像后,本地运行正常,部署到Azure却看不到函数,调用时返回404错误。已对比两个函数应用的环境变量,完全一致。查了两天博客仍没解决,附上相关文件和日志,求帮忙排查。

Dockerfile

# Base image with Python 3.9
FROM mcr.microsoft.com/azure-functions/python:4-python3.12

# Set environment variables to avoid writing .pyc files and buffering output
ENV AzureWebJobsScriptRoot=/home/site/wwwroot \
    AzureFunctionsJobHost__Logging__Console__IsEnabled=true

# Install git to clone the Bitbucket repository
RUN apt-get update && apt-get install -y git 


 ENV AZURE_FUNCTIONS_ENVIRONMENT=Development

#Copy secrets file
RUN mkdir /etc/secrets/
ENV FUNCTIONS_SECRETS_PATH=/etc/secrets
ENV AzureWebJobsSecretStorageType=Files
ADD host_secrets.json /etc/secrets/host.json

# Install dependencies from requirements.txt
COPY requirements.txt /
RUN pip install --no-cache-dir -r requirements.txt

# Copy application code (optional, if you want to add any additional files or scripts)
COPY . /home/site/wwwroot

密钥文件

{
    "masterKey": {
        "name": "master",
        "value": "p##########################################################",
        "encrypted": false
    },
    "functionKeys": [{
        "name": "default",
        "value": "w##########################################################",
        "encrypted": false
    }]
}

环境变量

[
  {
    "name": "APP_CONFIGURATION_LABEL",
    "value": "production",
    "slotSetting": false
  },
  {
    "name": "APPLICATIONINSIGHTS_CONNECTION_STRING",
    "value": "InstrumentationKey=a###################################;IngestionEndpoint=https://a###################.in.applicationinsights.azure.com/;LiveEndpoint=https://a################.livediagnostics.monitor.azure.com/;ApplicationId=d######################################",
    "slotSetting": false
  },
  {
    "name": "AzureFunctionsJobHost__Logging__Console__IsEnabled",
    "value": "true",
    "slotSetting": false
  },
  {
    "name": "AzureWebJobsDashboard",
    "value": "DefaultEndpointsProtocol=https;AccountName=a########################;AccountKey=q################################################################;EndpointSuffix=core.windows.net",
    "slotSetting": false
  },
  {
    "name": "AzureWebJobsScriptRoot",
    "value": "/home/site/wwwroot",
    "slotSetting": false
  },
  {
    "name": "AzureWebJobsStorage",
    "value": "DefaultEndpointsProtocol=https;AccountName=a#############################;AccountKey=q###############################################################################;EndpointSuffix=core.windows.net",
    "slotSetting": false
  },
  {
    "name": "DOCKER_ENABLE_CI",
    "value": "true",
    "slotSetting": false
  },
  {
    "name": "DOCKER_REGISTRY_SERVER_PASSWORD",
    "value": "G########################################################",
    "slotSetting": false
  },
  {
    "name": "DOCKER_REGISTRY_SERVER_URL",
    "value": "https://#################.azurecr.io",
    "slotSetting": false
  },
  {
    "name": "DOCKER_REGISTRY_SERVER_USERNAME",
    "value": "############",
    "slotSetting": false
  },
  {
    "name": "FUNCTIONS_EXTENSION_VERSION",
    "value": "~4",
    "slotSetting": false
  },
  {
    "name": "FUNCTIONS_WORKER_RUNTIME",
    "value": "python",
    "slotSetting": false
  },
  {
    "name": "UseExpressBuild",
    "value": "/tmp/.cache",
    "slotSetting": false
  },
  {
    "name": "WEBSITE_CONTENTAZUREFILECONNECTIONSTRING",
    "value": "#############################################################################",
    "slotSetting": false
  },
  {
    "name": "WEBSITE_CONTENTSHARE",
    "value": "a#####################",
    "slotSetting": false
  },
  {
    "name": "WEBSITE_ENABLE_SYNC_UPDATE_SITE",
    "value": "true",
    "slotSetting": false
  },
  {
    "name": "WEBSITE_HEALTHCHECK_MAXPINGFAILURES",
    "value": "10",
    "slotSetting": false
  },
  {
    "name": "WEBSITE_HTTPLOGGING_RETENTION_DAYS",
    "value": "2",
    "slotSetting": false
  },
  {
    "name": "WEBSITE_RUN_FROM_PACKAGE",
    "value": "1",
    "slotSetting": false
  },
  {
    "name": "WEBSITE_TIME_ZONE",
    "value": "Australia/Sydney",
    "slotSetting": false
  },
  {
    "name": "WEBSITES_ENABLE_APP_SERVICE_STORAGE",
    "value": "false",
    "slotSetting": false
  }
]

部署日志

025-01-17T04:51:32.535Z INFO - c861b3c01817 Extracting 33MB / 33MB
2025-01-17T04:51:32.643Z INFO - c861b3c01817 Pull complete
2025-01-17T04:51:32.678Z INFO - Digest: sha256:3#########################################################################
2025-01-17T04:51:32.683Z INFO - Status: Downloaded newer image for azuretestcreg.azurecr.io/azfunctiontest:latest
2025-01-17T04:51:32.699Z INFO - Pull Image successful, Time taken: 45 Seconds
2025-01-17T04:51:32.722Z INFO - Starting container for site
2025-01-17T04:51:32.727Z INFO - docker run -d -p 9131:80 --name austeamtest3_0_89c7e566 -e WEBSITE_USE_DIAGNOSTIC_SERVER=false -e WEBSITE_CORS_ALLOWED_ORIGINS=https://portal.azure.com -e WEBSITE_CORS_SUPPORT_CREDENTIALS=False -e WEBSITES_ENABLE_APP_SERVICE_STORAGE=false -e WEBSITE_SITE_NAME=austeamTest3 -e WEBSITE_AUTH_ENABLED=False -e PORT=80 -e WEBSITE_ROLE_INSTANCE_ID=0 -e WEBSITE_HOSTNAME=test6783.azurewebsites.net -e WEBSITE_INSTANCE_ID=5######################################################################### -e HTTP_LOGGING_ENABLED=1 testcreg.azurecr.io/azfunctiontest:latest
2025-01-17T04:51:35.762Z INFO - Initiating warmup request to container austeamtest3_0_89c7e566_msiProxy for site test6783
2025-01-17T04:51:35.825Z INFO - Container test6783_0_89c7e566_msiProxy for site austeamtest3 initialized successfully and is ready to serve requests.
2025-01-17T04:51:35.830Z INFO - Initiating warmup request to container austeamtest3_0_89c7e566 for site test6783
2025-01-17T04:51:40.439Z INFO - Container test6783_0_89c7e566 for site test6783 initialized successfully and is ready to serve requests.
2025-01-17T04:51:40.445Z INFO - Initiating warmup request to container austeamtest3_0_89c7e566_middleware for site test6783
2025-01-17T04:51:41.259Z INFO - Container test6783_0_89c7e566_middleware for site austeamtest3 initialized successfully and is ready to serve requests.

内容的提问来源于stack exchange,提问作者Ivan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.14 21:47:03