Cyb*_*org 3 c# azure azure-blob-storage azure-functions azure-eventgrid
我已经按照Microsoft 教程处理基于 Azure 存储中创建的 blob 的事件。
事件正在触发,但处理图像的事件代码被绕过,因为 EventGrid 事件未填充输入流参数。这应该通过 blob(图像文件)的路径进行处理。
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 ..
Run Code Online (Sandbox Code Playgroud)
每次事件触发的日志是
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,
Run Code Online (Sandbox Code Playgroud)
本教程适用于v1 c# 脚本函数,因为您可以看到它在谈论函数代码时提到了csx 文件。但是现在项目链接指向的是v2预编译代码,如果我们严格按照教程进行代码更改可能会导致问题。
让我们通过两个步骤来解决不一致之处。
关键是函数没有连接到在part1 中创建的 blob 存储帐户,因此我们得到了空输入流。
由于我们myblobstorage_STORAGE
在这一步中已经创建了一个应用设置,所以我们只需要将它添加到我们的功能代码中。
public static async Task Run(
[EventGridTrigger]EventGridEvent eventGridEvent,
[Blob("{data.url}", FileAccess.Read, Connection = "myblobstorage_STORAGE")] Stream input,
ILogger log)
Run Code Online (Sandbox Code Playgroud)在同一步骤,教程集的应用程序设置myContainerName
为容器thumbnails
在Blob存储帐户创建part1的。
但是在我们的代码中,我们可以看到它连接到为函数应用创建的存储帐户 ,AzureWebJobsStorage
并希望从应用设置中获取容器名称THUMBNAIL_CONTAINER_NAME
。
快速解决方法是替换AzureWebJobsStorage
和THUMBNAIL_CONTAINER_NAME
,并为 设置一个常量thumbnailWidth
。
private static readonly string BLOB_STORAGE_CONNECTION_STRING = Environment.GetEnvironmentVariable("myblobstorage_STORAGE");
...
var thumbnailWidth = 100;
var thumbContainerName = Environment.GetEnvironmentVariable("myContainerName");
Run Code Online (Sandbox Code Playgroud)
当然你也可以选择THUMBNAIL_WIDTH
在Azure 门户的应用程序设置中添加。
重新发布,一切都应该有效。
归档时间: |
|
查看次数: |
2616 次 |
最近记录: |