是否可以通过门户为 Logic App(标准)定义参数?

Posted

技术标签:

【中文标题】是否可以通过门户为 Logic App(标准)定义参数?【英文标题】:Is it possible to define parameters through portal for Logic App (Standard)? 【发布时间】:2021-09-13 00:57:24 【问题描述】:

我有一个单租户逻辑应用和一个需要可配置输入的工作流。在多租户逻辑应用中,可以通过 Azure 门户定义参数并在工作流定义(操作/触发器)中引用它们。单租户逻辑应用无法做到这一点吗?

我无法在文档中找到答案。

我知道部署模板应该为此查阅参数文件,但是,如果我通过门户做事,我仍然有上述问题。

编辑 7/12

我指的是here 解释的参数概念,而不是触发器或操作的参数选项卡。在使用消费逻辑应用程序时,请参阅下面我们可以通过门户定义的参数。

【问题讨论】:

@DeepDave-MT 您在回答中提到的所有内容已经是 MSFT 文档的一部分,而且我早就读过了。我没有找到并且需要回答的是,我们是否可以通过 Azure 门户界面而不是 parameters.json 文件来定义参数。如果一个人不使用 VS 代码或不编写 JSON 模板,这会有所帮助。此功能在消费逻辑应用中可用,但不标准,请参见上面的屏幕截图。 【参考方案1】:

添加空白工作流

创建空逻辑应用资源后,您必须添加第一个工作流。

    Azure 打开资源后,在逻辑应用的菜单上选择工作流。在“工作流”工具栏上,选择“添加”。 “新建工作流”窗格打开后,为您的工作流提供一个名称,然后选择状态类型(有状态或无状态)。完成后,选择创建。

此示例添加了一个名为 test 的空白有状态工作流。默认情况下,工作流已启用,但在您添加触发器和操作之前不会执行任何操作。

    接下来,在设计器中打开空白工作流,以便添加触发器和操作。

    a.从工作流列表中,选择空白工作流。

    b.在工作流菜单的 Developer 下,选择 Designer。

在设计器界面上,“选择操作”提示已经出现并默认选中,因此“添加触发器”窗格也显示为打开状态。

添加触发器和操作

这里可以定义参数:


定义参数

在基于单租户的工作流中,您需要将所有参数值放在名为 parameters.json 的根级 JSON 文件中。此文件包含一个包含键值对的对象。键是每个参数的名称,值是每个参数的结构。每个结构都需要包含类型和值声明。 以下示例显示了一个基本参数文件:
 
    "responseString":  
        "type": "string", 
        "value": "hello" 
    , 
    "functionAuth":  
        "type": "object", 
        "value":  
            "type": "QueryString", 
            "name": "Code", 
            "value": "@appsetting('<AzureFunctionsOperation-FunctionAppKey')" 
         
     
 

通常,您需要管理多个版本的参数文件。您可能有针对不同部署环境(例如开发、测试和生产)的目标值。管理这些参数文件通常就像管理 ARM 模板参数文件一样。当您部署到特定环境时,您通常通过 DevOps 的管道来提升相应的参数文件。

要使用 Azure CLI 动态替换参数文件,请运行以下命令:

az functionapp deploy --resource-group MyResourceGroup --name MyLogicApp --src-path C:\parameters.json --type static --target-path parameters.json

如果您有基于 NuGet 的逻辑应用项目,则必须更新项目文件 (.csproj) 以在构建输出中包含参数文件,例如:

<ItemGroup>
  <None Update="parameters.json">
    <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
  </None>
</ItemGroup>

您可以参考Create an integration workflow with single-tenant Azure Logic Apps (Standard) in the Azure portal和Create parameters for values that change in workflows across environments for single-tenant Azure Logic Apps

【讨论】:

我不是在谈论这些参数。请参阅原始帖子中的编辑 7/12。【参考方案2】:

答案是:还没有。对设计器(以及因此在 Azure 门户)中的参数的支持正在进行中,但尚不可用。 在 VS Code 中,您可以创建一个 parameters.json 文件。 但在门户中,没有(还)创建/编辑参数的选项。

Bec Lyons (Microsoft) 演示了其中包含此设计器的一个版本,尽管我不记得这是在 6 月的 Logic Apps Live 会议中,还是在 7 月的 Integration Down Under 会议中。

无论如何,目前唯一支持的方法是创建一个 parameters.json 文件并上传。

您可以从 VS Code 或 Azure CLI(使用预览 logicapps CLI 扩展)执行此操作,或者您可以通过 FTP 客户端(例如 FileZilla)将其上传到您的逻辑应用程序 - 您可以通过以下方式获取 FTP 登录详细信息单击逻辑应用标准资源概览中的“获取发布配置文件”按钮。

一旦他们在 Portal/Designer 中发布对此的支持,我将更新此答案。

此外,值得注意的是,截至目前(2021 年 7 月),在托管 API 触发器中使用参数存在问题 - 尚不确定这是设计使然,还是存在错误。特别是 FileSystem、FTP 和 FTPWithSSH (SFTP) 触发器。

希望这会有所帮助。不过,可能不是您想要的答案!

【讨论】:

以上是关于是否可以通过门户为 Logic App(标准)定义参数?的主要内容,如果未能解决你的问题,请参考以下文章

Azure Logic App Standard - 从未触发服务总线触发器

使用Logic App监控Azure事件

在 Azure Logic App 中从 JSON 转换为 XML 时如何防止按字母排序

PHP Mysql Logic 循环遍历表并优化输出

AS第一次作业:实现APP门户界面框架设计

azure functions 或 azure logic app 中是不是有任何触发 Azure File Share 的触发器?