我有以下用Python编写的简单Azure函数。它是一个 HTTP 触发器,应仅从 Azure 存储帐户返回 blob 输入绑定的名称和 URI(此处为 Microsoft 的参考文档)。
import logging
import azure.functions as func
import azure.storage.blob
from azure.storage.blob import BlobServiceClient, BlobClient, ContainerClient
def main(req: func.HttpRequest, inputblob: func.InputStream) -> func.HttpResponse:
logging.info('Python HTTP trigger function processed a request.')
return func.HttpResponse(f"Blob name: {inputblob.name}. Blob URI: {inputblob.uri}")
我的function.json文件是这样的。我已经验证了local.settings.json中的连接字符串是正确的,并且blob路径也是正确的。
{
"scriptFile": "__init__.py",
"bindings": [
{
"authLevel": "anonymous",
"type": "httpTrigger",
"direction": "in",
"name": "req",
"methods": [
"get",
"post"
]
},
{
"name": "inputblob",
"type": "blob",
"path": "containername/testblobname.json",
"connection": "MyStorageConnectionAppSetting",
"direction": "in"
},
{
"type": "http",
"direction": "out",
"name": "$return"
}
]
}
现在,此函数返回“JSON名称:无。JSON URI:无”。显然blob输入绑定不起作用。如何对此进行故障排除,或者我遗漏了什么?
根据我的研究,目前,blob输入绑定的元数据(例如名称,长度)不是由函数主机提供的,但您仍然可以通过blob.read()
访问blob绑定中的原始数据。有关更多详细信息,请参阅 https://github.com/Azure/azure-functions-python-worker/issues/576。
我的function.json
{
"scriptFile": "__init__.py",
"bindings": [
{
"authLevel": "anonymous",
"type": "httpTrigger",
"direction": "in",
"name": "req",
"methods": [
"get",
"post"
]
},
{
"name": "inputblob",
"type": "blob",
"path": "input/keyCredentials.txt",
"connection": "MyStorageConnectionAppSetting",
"direction": "in"
},
{
"type": "http",
"direction": "out",
"name": "$return"
}
]
}
我的代码
import logging
import azure.functions as func
def main(req: func.HttpRequest, inputblob: func.InputStream) -> func.HttpResponse:
logging.info('Python HTTP trigger function processed a request.')
return func.HttpResponse(f"Blob conetnt: {inputblob.read()}.")
这是该问题的后续问题: 如何使用Azure函数删除blob? 当一个blob触发我的Azure函数时,我需要在其处理完成后将其删除。否则,容器中会出现许多斑点。 当我运行以下代码时: 方法始终返回false,并且从不删除blob。 我的猜测是blob以某种方式被函数执行锁定,因为它刚刚触发了它。 [更新1] ... [更新2] 非常感谢刘,这个问题与Azure Fundctions无关。 诀窍是在
在app服务中有一个learn_DOCUMENTDB配置设置,它具有到cosmos db实例的有效连接字符串(是自动创建的)。 错误日志条目表示: 无法将CosmosDB绑定到类型“System.String”。可能的原因:1)试图绑定到“Microsoft.Azure.Documents.Client.DocumentClient,Microsoft.Azure.DocumentDB.Core,
问题内容: 因此,我是一名新Java程序员,我试图弄清楚为什么一段代码无法正常工作。我遇到的问题是:“字符串兴趣= input.nextLine();”,它跳过了用户的输入并跳至下一个System.out,因此它仅在控制台中显示“您的个人资料…”在允许用户输入任何数据之前。抱歉,这是一个愚蠢的问题,我很新! 问题答案: 这样说: 其余代码可能与您上面的代码相同。 编辑: 它必须是这样的(我的意思是
我在 Azure blob 存储中有一个 csv 文件,我想打开该文件并根据用户输入获取某些数据。我有两个问题: 1)空AzureWebJobStorage值在local.settings.json 我尝试使用AzureWebJobsStorage输入绑定,但值似乎为空。我不知道如何在local.settings.json中编辑什么值。因此,得到这个错误: 已执行Functions.HttpExa
MyBatis 3.2.8。我在SELECT中有以下代码: 当时,一切正常。但是,当时,会出现以下异常:
问题内容: 我正在编写一个执行scala命令的小型python应用程序。用户可以通过STDIN插入命令,然后python应用将其转发到scala解释器。执行命令后,应用程序将显示操作结果。 这个想法是用来创建一个管道,通过该管道我可以发送命令并读取结果。这个想法很简单,但是没有用。我不明白的是,为什么在打开管道后它们不再起作用。这使得无法在python中读取命令。 这是我正在使用的代码: 问题答案