无法让blobtrigger让我的azure函数工作?

hrirmatl  于 2021-07-08  发布在  Java
关注(0)|答案(1)|浏览(488)

我有一个名为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应该是什么样子才能让它工作。

ygya80vv

ygya80vv1#

可能问题是您的连接字符串为空或错误。您可以在本地运行时使用存储仿真器,因此在将功能部署到azure后,您失去了与存储帐户的连接。
在portal中,您可以导航到configuration并检查app设置的值,该值命名为 invoicestoragebfda 对你来说。如果没有此应用程序设置,请添加一个并将连接字符串作为值写入。在我的例子中,特定的应用程序设置名称是azurewebjobstorage。

要获取连接字符串,请转到您的存储帐户,导航到access key,将key1下的连接字符串复制到app settings。

有什么问题可以联系我。

相关问题