我有一个名为invoicestoragebfda的存储帐户和一个名为veninv\u dev的容器。我的函数应该在日志中打印触发该函数的blob的名称+大小。
函数类
@FunctionName("blobprocessing")
@StorageAccount("invoicestoragebfda")
public void blob(
@BlobTrigger(name = "blob",
dataType = "binary",
path = "veninv-dev/{name}",
connection = "invoicestoragebfda") byte[] content,
@BindingName("name") String filename,
final ExecutionContext context
) {
context.getLogger().info("Name: " + filename + " Size: " + content.length + " bytes");
函数.json
{
"scriptFile" : "../veninv_dev-functions-1.0-SNAPSHOT.jar",
"entryPoint" : "com.veninv_dev.veninv.blob",
"bindings" : [ {
"type" : "blobTrigger",
"direction" : "in",
"name" : "blob",
"path" : "veninv-dev/{name}",
"dataType" : "binary",
"connection" : "invoicestoragebfda"
} ]
}
但是,当我部署此函数并将文件上载到容器时,函数触发器没有激活。存储帐户允许从所有网络访问。
我已经在这方面做了很长一段时间了,但是我不知道我的function.class和function.json应该是什么样子才能让它工作。
1条答案
按热度按时间ygya80vv1#
可能问题是您的连接字符串为空或错误。您可以在本地运行时使用存储仿真器,因此在将功能部署到azure后,您失去了与存储帐户的连接。
在portal中,您可以导航到configuration并检查app设置的值,该值命名为
invoicestoragebfda
对你来说。如果没有此应用程序设置,请添加一个并将连接字符串作为值写入。在我的例子中,特定的应用程序设置名称是azurewebjobstorage。要获取连接字符串,请转到您的存储帐户,导航到access key,将key1下的连接字符串复制到app settings。
有什么问题可以联系我。