微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

逻辑应用程序通过 HTTP 触发器调用的 Azure C# 函数 - 需要通过输入绑定引用 Blob 文件名

如何解决逻辑应用程序通过 HTTP 触发器调用的 Azure C# 函数 - 需要通过输入绑定引用 Blob 文件名

我在 C# 中创建了一个 Azure 函数来读取 .xlsx 电子表格(通过 ExcelDataReader)并输出格式化的 xml 文件(使用 XMLWriter)。 HTTP 触发的功能目前运行良好,但我现在被告知我一直在读/写我的文件的磁盘路径将不再可用,因为我们的内部部署数据网关将要显然,被抛弃了。因此,我的函数现在必须对输入和输出使用 blob 存储。

我的处理从逻辑应用工作流开始,所有这些都在电子邮件到达共享帐户的收件箱时触发。任何相关的 .xlsx 附件都将保存到 blob 存储中,并将当前的逻辑应用运行号用作文件正文。

我在逻辑应用程序中构建了一个 JSON 格式的绑定记录并将其传递给函数,希望我可以在绑定的声明性代码中选择它,例如

{
    public static class Excel2XML
    {
        [FunctionName("Excel2XML")]
        public static async Task<IActionResult> Run(
            [HttpTrigger(AuthorizationLevel.Function,"get","post",Route = null)] HttpRequest req,[Blob({blobName},FileAccess.Read,Connection = "AzureWebJobsstorage")] Stream inputStream,[Blob("parked/{sys.utcNow}.xml",FileAccess.Write,Connection = "AzureWebJobsstorage")Stream outputStream,

显然 {blobName} 是我希望从第一个 blob 声明中的绑定中读取的值 - 第二个 blob 声明用于 xml 输出,我已经给了一个 dateTime 主体(至少目前是这样) ).

我已经阅读了将这个值带入函数的 LOADS 方法,我想我会坚持使用标准绑定解决方案,希望让它工作(我想获得如果可能的话,输入和输出流在程序开始时在声明性内容解决)。我真的很想知道其他人是如何做到这一点的(成功)。 TIA 提供建议。

解决方法

正如评论中提到的 rene,您可以添加一个包含名为 blobName 的属性的类并模仿 this sample 来实现您的要求。

除此之外,由于您使用的是逻辑应用,因此您还可以使用逻辑应用的 blob storage connector 来获取 blob 内容或写入 blob 内容。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。