如何从逻辑应用程序和Azure代码+测试屏幕将两个CSV文件和一个字符串传递到Azure函数?

问题描述 投票:0回答:1

我有一个 Azure 函数应用程序,它接受 两个 CSV 文件和一个 日期字符串作为输入(通过

multipart/form-data
)并返回组合的 Excel 文件

  • 本地测试或通过Postman远程触发时(使用multipart/form-data
    内容类型),该功能可以正常工作。
  • 但是,当我尝试使用
  • 代码 + 测试屏幕Azure Portal测试它时,以及从逻辑应用程序中的HTTP触发器调用它时,我遇到了问题。
功能概述:

  • HTTP 触发(POST)
  • 接受 2 个 CSV 文件和字符串日期(全部通过
  • multipart/form-data
    )。
什么有效:

    使用 Postman 部署到 Azure 后,在本地或远程测试该功能效果良好。我使用
  • multipart/form-data
     传递两个 Base64 编码的 CSV 文件和日期字符串,该函数按预期处理并返回 Excel 文件。
问题:

  1. Azure 代码 + 测试屏幕:

      当我在这里测试该函数时,我似乎无法正确传递 CSV 文件和日期字符串。即使函数运行没有任何错误,我在输入的函数日志中得到空白值。
    • 我不确定如何使用“代码+测试”界面(使用查询输入字段)正确构建输入。如果我在正文部分将其作为 json 传递,则当它尝试从结果中读取它时,它会引发异常。如果我将它作为键值对传递到查询字段中,它会将所有三个值读取为 null 而不会引发异常。
  2. 逻辑应用HTTP触发器:

      当我从逻辑应用程序调用该函数时,我在“创建 CSV 表”操作之后使用 HTTP 操作来传递 CSV 文件和日期字符串,但该函数无法正确接收数据。函数未按预期解析 CSV 内容和日期字符串。
    问题:

在传递两个 CSV 文件和字符串日期时,如何使用门户中的

代码 + 测试
    屏幕正确测试 Azure 函数?
  • Logic App
  • 中构造
  • HTTP 操作以使用 multipart/form-data 将两个 CSV 文件和日期字符串发送到我的 Azure Function App 的正确方法是什么?
    我尝试过的:

我已在逻辑应用程序的 HTTP 操作中将

Content-Type
    设置为
  • multipart/form-data
     并使用 
    @{body('Create_CSV_Table')}
     传递 CSV 内容,但我不确定是否正确构建了多部分主体。
    我还在函数内部使用了日志记录 (
    _logger.LogInformation
  • ) 来检查收到的内容,但在使用代码 + 测试或逻辑应用程序时,CSV 文件和日期字符串的字段为空,而在测试时它们显示正确的值通过邮递员。
  • 任何关于如何从
  • 逻辑应用程序

代码+测试屏幕构建请求的指导将不胜感激! 从请求中读取参数的代码:

这是我用来从 Azure 函数中的 HTTP 请求读取参数的代码:

var form = await req.ReadFormAsync(); var file1Base64 = form["file1"]; var file2Base64 = form["file2"]; var stringDate = form["stringDate"];

                
azure azure-functions multipartform-data azure-logic-apps azure-http-trigger
1个回答
0
投票

要从逻辑应用程序传递,请遵循以下设计:

使用base64():

标题:enter image description here

{ "Content-Type": "multipart/form-data; boundary=Test" }

身体:
--Test
Content-Disposition: form-data; name="file1"; filename="file1.csv"
Content-Type: text/csv
@{base64(outputs('Compose'))}
--Test
Content-Disposition: form-data; name="file2"; filename="file2.csv"
Content-Type: text/csv
@{base64(outputs('Compose_2'))}
--Test
Content-Disposition: form-data; name="stringDate"
2024-09-02
--Test--

完整设计:

在撰写中我有 csv 数据。您可以从那里的文件中获取 csv 数据。另请参阅此enter image description here文档

使用json添加多个文件。

© www.soinside.com 2019 - 2024. All rights reserved.