python azure函数应用程序为路径定义变量

python azure函数应用程序为路径定义变量,python,python-3.x,azure,azure-functions,Python,Python 3.x,Azure,Azure Functions,我已经定义了一个out绑定以将文件存储在blobstorage中: function.json: { "type": "blob", "direction": "out", "name": "outputBlob", "path": "outcontainer/{outname}", "connection": "storagevoyager_STORAGE" } 现在,我尝试在python代码中指定“outname”: outputBlob.outname = "test

我已经定义了一个out绑定以将文件存储在blobstorage中:

function.json:

{
  "type": "blob",
  "direction": "out",
  "name": "outputBlob",
  "path": "outcontainer/{outname}",
  "connection": "storagevoyager_STORAGE"
}
现在,我尝试在python代码中指定“outname”:

outputBlob.outname = "test.txt"
outname = "test.txt"
outputBlob.set(fileobj)
System.Private.CoreLib:执行函数时发生异常: 函数..Microsoft.Azure.WebJobs.Host:命名参数没有值 “名字”

那么如何在代码中定义outname呢?我找不到任何好的推荐人


我需要更新环境变量吗?同样使用{rand guid}它也可以工作。

如果您想用代码更改输出blob名称,这是不可能的。如果要动态创建输出blob名称,可以使用function.json中的绑定表达式
{rand guid}
来实现它

比如说

{
  "type": "blob",
  "direction": "out",
  "name": "outputBlob",
  "path": "outcontainer/{rand-guid}.txt",
  "connection": "storagevoyager_STORAGE"
}

有关更多详细信息,请参阅

似乎无法使用Python更改变量,在C#中,它可以更改

要在python中使用它,我正在使用python sdk并手动连接到我的存储:

from azure.storage.blob import BlockBlobService

blob_service_client = BlockBlobService(account_name="storageacc", account_key="acckey")
blob_service_client.create_container(container_name)
blob_service_client.create_blob_from_bytes(container_name="container_name", blob_name="filename.txt", blob=b"blob")

如果您使用的是像HttpTrigger这样的触发器,那么如果您在http请求中将outname作为参数传递,那么实际上可以设置{outname}!如果您在传递json消息时使用任何其他触发器(如service bus)。您可以使用触发器json数据中的json值设置输入和输出绑定路径。 看看这个
我尝试了这个方法,它在python中工作

,不幸的是,您不能强制要求输出文件名。如果有帮助,您确实有
{blobname}
{blobextension}
(您需要一个blob触发器将它们用作输出)。如果您想将{queueTrigger}用作输出blob名称,那么还有一个{queueTrigger}。我同意,医生帮不了什么忙。请参阅我的水印功能的一个例子:谢谢你的回答。。。因此,在其他语言(如c)中,您可以定义文件名,但不能在
python
中定义文件名?如果您确定,请发布我可以标记为已回答的回答,我可以获取随机guid的名称吗?mmmmakes对我来说毫无意义我应该能够基于python代码更改文件名如果你问我可以得到这个东西的名称吗(
“path”:“我的输出容器/{rand guid}.txt”
在我的代码中?那么我恐怕是否定的。绑定在代码执行之前和之后都会起作用。我已经在注释中讨论过了……但例如,我喜欢存储.png和.pdf……我无法更改扩展名,因此在python中,我似乎无法访问此{variable}在…内code@Fabian根据您的需要,我建议您自己使用python sdk将文件上传到Azure blob,而不是使用Azure函数输出绑定。关于如何上传,您可以参考