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

时间:2019-10-18 10:30:56

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

很快,我有两个问题:

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

My actual environment:

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

  

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

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

here

实际上,两个逻辑应用程序(prod逻辑应用程序和dev逻辑应用程序)都在调用dev api应用程序终结点(在dev环境中使用相同的api应用程序),因为我的问题是我无法找到一种方法来转换逻辑应用程序http调用中的url值

我想做的是通过每个环境(dev和prod)的适当api应用程序url来更改上图中加底线的基本url值,如下所示:

Dev api应用程序的网址为:https://pwfotcapiapp

产品api应用程序的网址为:https://pwfprodotwapiapp ...

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

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

ci cd

所以,换句话说,我有:

2个环境,2个Web应用程序(API应用程序),2个逻辑应用程序

==> 我希望能够设置每个逻辑应用http调用url值以在发布时指向另一个Web应用(API应用)或查找一种从逻辑应用程序读取应用程序设置值的方法。

任何贡献将不胜感激

编辑:

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

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

2 个答案:

答案 0 :(得分:0)

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

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

enter image description here

enter image description here

  1. 在逻辑应用程序中使用“获取blob内容”操作来获取appsetting.json的内容。 enter image description here

  2. 然后初始化一个名为“ jsonString”的变量,并使用下面的屏幕快照所示的表达式设置该值。 enter image description here

  3. 之后,我们可以使用“解析JSON”操作来解析上面得到的jsonString。 enter image description here 我们可以在上面的屏幕快照中单击“使用示例有效负载来生成模式”,然后将appsetting.json的内容输入其中以生成模式。

  4. 然后,我们可以初始化另一个名为“ baseurl”的变量,并使用来自“ Parse JSON”的baseurl get设置值。 enter image description here

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

希望对您的问题有帮助〜

答案 1 :(得分:0)

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

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

我已经将RSS Feed的基本URL和有价值的邮件都参数化了。步骤如下–

  1. 声明模板参数。 defaultValue不是必需的。 Step1
  2. 通过替换为参数调用来替换字段中的字符串。 Step2
  3. 然后,您也可以在参数文件中覆盖这些参数。 Step3
  4. 您还可以覆盖CD管道中的参数值 enter image description here
  

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

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

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