在发布时设置逻辑应用程序变量值 - http 调用

setup logic app variable value at release time - http calls

很快,我有两个问题:

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

My actual environment:

我有 2 个 azure "environments",换句话说 2 azure resource groups,每个都包含相同的资源和配置。

Azure
|
|__Dev resource group : logic app + api App + .... other resources
|__Prod resource group: prod logic app + prod api App + .... other prod resources

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

实际上两个逻辑应用程序(生产逻辑应用程序和开发逻辑应用程序)都在调用开发 api 应用程序端点(开发环境中的相同 api 应用程序)因为 我的问题 是我 找不到在逻辑应用程序 http 调用 .

中转换 url 值的方法

我想做的是通过每个环境(开发和生产)的适当 api 应用程序 url 来更改上图中下划线的基本 url 值,例如以下 :

开发 api 应用程序 url 是:https://pwfotcapiapp

产品 api 应用程序 url 是:https://pwfprodotwapiapp...

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

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

所以,换句话说,我有:

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

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

任何贡献将不胜感激

编辑:

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

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

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

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

  1. 在逻辑应用中使用 "Get blob content" 操作获取 appsetting.json 的内容。

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

  3. 之后,我们就可以使用"Parse JSON"动作来解析我们上面得到的jsonString了。 我们可以点击上面截图中的"Use sample payload to generate schema",在其中输入appsetting.json的内容,生成schema。

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

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

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

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

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

我已经将 RSS 提要和邮件的基础 URL 都参数化为值。步骤如下 –

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

The precedence of the values are “LogicApp.json” < “LogicApp.parameters.json” < “override in CD pipeline”.

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

但是根据参数文件中的说明使用基数url。因此,如果您有不同的 stage/task 将逻辑应用程序部署到开发和生产环境,您可以使用任何一种方式。