首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Blob存储中EventGrid触发的Azure函数

Blob存储中EventGrid触发的Azure函数
EN

Stack Overflow用户
提问于 2018-11-15 05:40:22
回答 3查看 3.5K关注 0票数 3

我遵循Microsoft教程来处理基于Azure存储中创建的blob的事件。

事件正在触发,但是要处理图像的事件代码被绕过,因为输入流参数没有被EventGrid事件填充。这应该是通过blob (图像文件)的路径来处理。

代码语言:javascript
复制
 public static async Task Run(
        [EventGridTrigger]EventGridEvent eventGridEvent,
        [Blob("{data.url}", FileAccess.Read)] Stream input,
        ILogger log)
    {
        try
        {
            log.LogInformation("Entered Thumbnail Function ..");

            if (input != null) 
            { //doesn't get to here ..

每次事件触发时的日志是

代码语言:javascript
复制
2018-11-15T05:33:41.096 [Information] Executing 'Thumbnail' (Reason='EventGrid trigger fired at 2018-11-15T05:33:41.0781270+00:00' ..

2018-11-15T05:33:41.096 [Information] Entered Thumbnail Function

2018-11-15T05:33:41.096 [Information] Executed 'Thumbnail' (Succeeded, 

2018-11-15T05:33:41.096 [Information] Executing 'Thumbnail' (Reason='EventGrid trigger fired at 2018-11-15T05:33:41.0781270+00:00', 

2018-11-15T05:33:41.096 [Information] Entered Thumbnail Function

2018-11-15T05:33:41.096 [Information] Executed 'Thumbnail' (Succeeded,
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2018-11-15 08:12:19

本教程适用于v1 c#脚本函数,因为您可以看到它在讨论函数代码时提到了csx文件。但是现在项目链接指向了v2预编译代码,当我们严格遵循本教程时,代码的更改可能会导致问题。

让我们用两个步骤修复不一致。

  1. 关键是函数没有连接到在part1中创建的blob存储帐户,因此我们得到了空输入流。 因为我们已经在这一步中创建了一个设置这一步的应用程序,所以我们只需要在函数代码中添加它。 公共静态异步任务运行( EventGridTriggerEventGridEvent eventGridEvent,Blob("{data.url}",FileAccess.Read,Connection = "myblobstorage_STORAGE")流输入,ILogger日志)
  2. 在同一步骤中,教程为在myContainerName中的Blob中创建的容器thumbnails设置一个应用程序设置part1。 但是在我们的代码中,我们可以看到它用AzureWebJobsStorage连接到AzureWebJobsStorage,并希望从应用程序设置THUMBNAIL_CONTAINER_NAME中获得容器名。 快速修复方法是替换AzureWebJobsStorageTHUMBNAIL_CONTAINER_NAME,并为thumbnailWidth设置一个常量。 私有静态只读字符串BLOB_STORAGE_CONNECTION_STRING =BLOB_STORAGE_CONNECTION_STRING.var thumbnailWidth = 100;var thumbContainerName =thumbnailWidth 当然,您可以选择在Azure门户的应用程序设置中添加THUMBNAIL_WIDTH

重新发布,一切都应该正常工作。

票数 5
EN

Stack Overflow用户

发布于 2018-11-15 06:25:41

数据永远不会被传递进来。Event事件将只传递元数据,元数据将包括可以用于检索内容的blob (如果需要)。

票数 2
EN

Stack Overflow用户

发布于 2021-08-08 19:55:39

除了当前接受的答案(https://stackoverflow.com/a/53314953/816663)之外,如果您的函数应用程序在存储帐户上具有适当的Blob权限的系统或用户分配的标识,您也可以不添加Connection参数而使其工作。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53313094

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档