【问题标题】:setup logic app variable value at release time - http calls在发布时设置逻辑应用变量值 - http 调用
【发布时间】:2019-10-22 19:52:03
【问题描述】:

很快,我有两个问题:

  1. 我们怎么能setup logic app variable value at realease time(对于 示例)...
  2. 或者逻辑应用如何从设置文件中读取值?

My actual environment:

我有 2 个azure "environments",也就是 2 azure resource groups,每个都包含相同的资源和配置。

天蓝色
|
|__Dev 资源组:逻辑应用 + api 应用 + .... 其他资源
|__Prod 资源组:prod 逻辑应用程序 + prod api App + .... 其他产品资源

在我的逻辑应用程序中,我有 http 端点调用步骤。

实际上,两个逻辑应用程序(产品逻辑应用程序和开发逻辑应用程序)都在调用开发 api 应用程序端点(开发环境中的相同 api 应用程序),因为 我的问题是我 不能找到一种方法来转换逻辑应用 http 调用中 url 的值

我要做的是通过每个环境(开发和产品)的适当 api 应用程序 url 更改上图中带下划线的基本 url 值,如下所示:

Dev api 应用网址为:https://pwfotcapiapp

Prod api 应用网址为:https://pwfprodotwapiapp...

我尝试在 appsettings.json 的变量中设置 api 应用程序基本 url,并在部署时对其进行转换。没关系,但我无法设置基本 url 值,因为我找不到从逻辑应用读取 appsettings.json 变量的方法。

我有一个 Ci/Cd 管道,可以在每个资源组上创建或更新足够的资源并成功进行变量转换:

所以,换句话说,我有:

2个环境,2个web应用(api应用),2个逻辑应用

==>我希望能够设置每个逻辑应用 http 调用 url 值以在发布时指向不同的网络应用(api 应用)或查找一种从逻辑应用读取 appsettings 值的方法。

任何贡献将不胜感激

编辑:

我使用 Visual Studio 开发我的逻辑应用

我的构建的触发器是提交,然后 drop(构建工件下降)是部署管道的触发器。

【问题讨论】:

    标签: azure continuous-integration continuous-deployment azure-logic-apps application-settings


    【解决方案1】:

    我们可以通过以下步骤从逻辑应用中读取appsettings.json:

    1. 我在 appsetting.json 中设置了 baseurl 的值并创建了一个 Azure 存储 blob,然后将 appsetting.json 上传到 blob。

    1. 在逻辑应用中使用“获取 blob 内容”操作来获取 appsetting.json 的内容。

    2. 然后初始化一个名为“jsonString”的变量,并使用如下截图所示的表达式设置值。

    3. 之后,我们可以使用“Parse JSON”动作来解析我们上面得到的jsonString。 我们可以点击上面截图中的“使用示例payload生成schema”,将appsetting.json的内容输入进去,生成schema。

    4. 然后我们可以初始化另一个名为“baseurl”的变量,并使用从“Parse JSON”获取的baseurl设置值。

    5. 现在我们可以在“HTTP”操作中通过如下截图所示的表达式使用 baseurl。

    希望对你的问题有所帮助~

    【讨论】:

    • 谢谢你的回答,我应该如何自动化appsettings.json的上传操作。 appettigns.json 设置在发布(部署)时更改。因此必须在部署后立即上传以反映变量的当前值。
    【解决方案2】:

    我刚刚使用模板参数测试了逻辑应用。

    我使用developing logic app with visual studio 的默认示例。

    我已经参数化了 RSS 提要的基本 URL 和邮件到值。步骤如下——

    1. 声明模板参数。 defaultValue 不是强制性的。
    2. 通过替换为参数调用来替换字段内的字符串。
    3. 那么您也可以在参数文件中覆盖这些参数。
    4. 您还可以覆盖 CD 管道中的参数值

    值的优先级是“LogicApp.json” < “LogicApp.parameters.json” < “override in CD pipeline”

    对于此示例,您可以看到我使用“google.com”作为默认基本 URL。但我在参数文件中覆盖它。此外,我在不同的文件中有三个不同的电子邮件地址。因此,电子邮件地址被用于覆盖默认声明和参数文件的 CD 管道中。

    但基本 url 使用参数文件中提到的。因此,如果您有不同的阶段/任务将逻辑应用部署到开发和生产环境,您可以使用任何一种方式。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-12-09
      • 2019-05-08
      • 2021-04-12
      • 1970-01-01
      • 2023-02-01
      • 2021-05-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多