将API JSON Response直接保存到Azure Blob Storage JSON文件中



我直接在Azure HTTP函数中调用第三方API。我想将json响应保存到Azure Blob存储容器内的文件。当我尝试调试Azure函数时,我构建的下面的代码(基于微软文档)挂起。当到达Azure Function URL端点时,上述进程挂起并且永远不会完成任务。我的代码遗漏了什么吗?

import os
import logging
import requests
import azure.functions as func
from azure.storage.blob import BlobServiceClient,BlobClient
import json
def main(req: func.HttpRequest) -> func.HttpResponse:
connection_string = os.getenv([Azure Blob Storage Connection String])
file_name = 'SurveySchema.json'
blob = BlobClient.from_connection_string(conn_str=connection_string, container_name=[container name], blob_name=[name of json file])
request = requests.get('[The API endpoint that returns json response body]')
try:
logging.info(request.text)
blob.set(str(request.text))
except ValueError as err:
logging.info("Error getting data from endpoint, %s", err)
return func.HttpResponse('Request processed successfully.', status_code=200)

这是一个简单的修复!我不得不使用"upload_blob"方法从Blob Client库

import os
import logging
import requests
import azure.functions as func
from azure.storage.blob import BlobServiceClient,BlobClient
import json
def main(req: func.HttpRequest) -> func.HttpResponse:
connection_string = os.getenv([Azure Blob Storage Connection String])
file_name = 'SurveySchema.json'
blob = BlobClient.from_connection_string(conn_str=connection_string, container_name=[container name], blob_name=[name of json file])
request = requests.get('[The API endpoint that returns json response body]')
try:
logging.info(request.text)
**blob.upload_blob(str(request.text))**
except ValueError as err:
logging.info("Error getting data from endpoint, %s", err)
return func.HttpResponse('Request processed successfully.', status_code=200)

最新更新