Azure 函数失败:"statusCode":413,"message":"request entity too large"
Azure function failing : "statusCode": 413, "message": "request entity too large"
我有一个 Python 脚本可以创建 CSV 文件并将其加载到 Azure 容器中。我想 运行 它作为一个 Azure 函数,但是一旦我将它部署到 Azure,它就失败了。
代码在 Google Colab 中运行良好(code here 减去连接字符串)。当我通过 CLI(func start 命令)在本地 运行 它作为 Azure 函数时,它也能正常工作。
这是部署的 init.py 文件中的代码
import logging
import azure.functions as func
import numpy as np
import pandas as pd
from datetime import datetime
from azure.storage.blob import BlobServiceClient, BlobClient, ContainerClient, __version__
import tempfile
def main(mytimer: func.TimerRequest) -> None:
logging.info('Python trigger function.')
temp_path = tempfile.gettempdir()
dateTimeObj = datetime.now()
timestampStr = dateTimeObj.strftime("%d%b%Y%H%M%S")
filename =f"{timestampStr}.csv"
df = pd.DataFrame(np.random.randn(5, 3), columns=['Column1','Column2','Colum3'])
df.to_csv(f"{temp_path}{filename}", index=False)
blob = BlobClient.from_connection_string(
conn_str="My connection string",
container_name="container2",
blob_name=filename)
with open(f"{temp_path}{filename}", "rb") as data:
blob.upload_blob(data)
部署到Azure成功,但功能在Azure中失败。当我查看 Azure Function 门户时,Code+ Test 菜单的输出显示
{
"statusCode": 413,
"message": "request entity too large"
}
脚本生成的 CSV 文件是 327B - 太小了。除了该错误消息外,我看不到有关导致失败的原因的任何有用信息。谁能提出解决方案/前进方向?
这是需求文件内容
# Do not include azure-functions-worker as it may conflict with the Azure Functions platform
azure-functions
azure-storage-blob==12.8.1
logging
numpy==1.19.3
pandas==1.3.0
DateTime==4.3
backports.tempfile==1.0
azure-storage-blob==12.8.1
这是我试过的。
我的存储帐户的存储设置中的资源共享菜单中的 article suggests this issue is linked to CORS (Cross Origin Resource sharing) issue. However adding : https://functions.azure.com 我的 CORS 允许域没有解决问题(我也重新发布了 Azure 功能)。
如有任何帮助或建议,我们将不胜感激。
我尝试使用您提供的所有信息重现该问题,但得到了如下相同的 404 错误:
稍后在CORS中添加一个值*后,我们就可以解决这个问题,下面是修复后的截图和CORS值:
CORS:
Test/Run:
另外我们可以添加以下域名来避免404错误
https://functions.azure.com
https://functions-staging.azure.com
https://functions.azure.com
这也会解决这个问题。
我有一个 Python 脚本可以创建 CSV 文件并将其加载到 Azure 容器中。我想 运行 它作为一个 Azure 函数,但是一旦我将它部署到 Azure,它就失败了。
代码在 Google Colab 中运行良好(code here 减去连接字符串)。当我通过 CLI(func start 命令)在本地 运行 它作为 Azure 函数时,它也能正常工作。
这是部署的 init.py 文件中的代码
import logging
import azure.functions as func
import numpy as np
import pandas as pd
from datetime import datetime
from azure.storage.blob import BlobServiceClient, BlobClient, ContainerClient, __version__
import tempfile
def main(mytimer: func.TimerRequest) -> None:
logging.info('Python trigger function.')
temp_path = tempfile.gettempdir()
dateTimeObj = datetime.now()
timestampStr = dateTimeObj.strftime("%d%b%Y%H%M%S")
filename =f"{timestampStr}.csv"
df = pd.DataFrame(np.random.randn(5, 3), columns=['Column1','Column2','Colum3'])
df.to_csv(f"{temp_path}{filename}", index=False)
blob = BlobClient.from_connection_string(
conn_str="My connection string",
container_name="container2",
blob_name=filename)
with open(f"{temp_path}{filename}", "rb") as data:
blob.upload_blob(data)
部署到Azure成功,但功能在Azure中失败。当我查看 Azure Function 门户时,Code+ Test 菜单的输出显示
{
"statusCode": 413,
"message": "request entity too large"
}
脚本生成的 CSV 文件是 327B - 太小了。除了该错误消息外,我看不到有关导致失败的原因的任何有用信息。谁能提出解决方案/前进方向?
这是需求文件内容
# Do not include azure-functions-worker as it may conflict with the Azure Functions platform
azure-functions
azure-storage-blob==12.8.1
logging
numpy==1.19.3
pandas==1.3.0
DateTime==4.3
backports.tempfile==1.0
azure-storage-blob==12.8.1
这是我试过的。
我的存储帐户的存储设置中的资源共享菜单中的 article suggests this issue is linked to CORS (Cross Origin Resource sharing) issue. However adding : https://functions.azure.com 我的 CORS 允许域没有解决问题(我也重新发布了 Azure 功能)。
如有任何帮助或建议,我们将不胜感激。
我尝试使用您提供的所有信息重现该问题,但得到了如下相同的 404 错误:
稍后在CORS中添加一个值*后,我们就可以解决这个问题,下面是修复后的截图和CORS值:
CORS:
Test/Run:
另外我们可以添加以下域名来避免404错误
https://functions.azure.com
https://functions-staging.azure.com
https://functions.azure.com
这也会解决这个问题。