2

我按照文档使用 Visual Studio 代码创建了 azure logic app 单租户项目。然后根据我的要求创建工作流,其中包含数据工厂管道和发送网格操作。

工作流包含创建管道运行数据工厂操作中的硬编码值。

"Create_a_pipeline_run": {
            "inputs": {
                "host": {
                    "connection": {
                        "referenceName": "azuredatafactory_5"
                    }
                },
                "method": "post",
                "path": "/subscriptions/@{encodeURIComponent('xxxxxxx-xxxx-xxxx-xxxx-xxxxxx')}/resourcegroups/@{encodeURIComponent('xxxxx')}/providers/Microsoft.DataFactory/factories/@{encodeURIComponent('xxxxxx')}/pipelines/@{encodeURIComponent('xxxxxxx')}/CreateRun",
                "queries": {
                    "x-ms-api-version": "2017-09-01-preview"
                }
            },
            "runAfter": {},
            "type": "ApiConnection"
        },

connections.json文件看起来如下文件:

"managedApiConnections": {
"sendgrid": {
  "api": {
    "id": "/subscriptions/@appsetting('WORKFLOWS_SUBSCRIPTION_ID')/providers/Microsoft.Web/locations/centralus/managedApis/sendgrid"
  },
  "authentication": {
    "type": "ManagedServiceIdentity"
  }
},
"azuredatafactory_5": {
  "api": {
    "id": "/subscriptions/@appsetting('WORKFLOWS_SUBSCRIPTION_ID')/providers/Microsoft.Web/locations/centralus/managedApis/azuredatafactory"
  },
  "authentication": {
    "type": "ManagedServiceIdentity"
  }
}

}

上述托管 API 连接是指来自 azure 的现有 API 连接。但我想为每个环境创建新的托管 API 连接(意味着根据环境参数化connections.json文件中的值)。

谁能建议我如何参数化每个环境的workflow.json文件中的值并参数化每个环境的connections.json文件中的值。

4

1 回答 1

3

逻辑应用标准只是一种应用服务workflowApp。您可以在此处大量使用 appsettings。

  1. 逻辑应用参数。

    在您的workflow.json中,您可以使用如下参数:

    "Create_a_pipeline_run": {
      "inputs": {
        "host": {
          "connection": {
            "referenceName": "azuredatafactory_5"
          }
       },
       "method": "post",
       "path": "/subscriptions/@{encodeURIComponent(parameters('subscription_id'))}/resourcegroups/...",
       "queries": {
         "x-ms-api-version": "2017-09-01-preview"
       }
     },
     "runAfter": {},
     "type": "ApiConnection"
    }
    

    然后在您的parameters.json文件中,引用如下应用程序设置:

    {
      "subscription_id": {
        "type": "String",
        "value": "@appsetting('WORKFLOWS_SUBSCRIPTION_ID')"
      }
    }
    

    subscription_id必须定义为应用服务中的应用设置。

  2. 逻辑应用连接。以同样的方式,您可以将应用程序设置和参数用于connections.json文件中的连接信息:

    {
      "managedApiConnections": {
        "sendgrid": {
          "api": {
            "id": "/subscriptions/@appsetting('WORKFLOWS_SUBSCRIPTION_ID')/providers/Microsoft.Web/locations/centralus/managedApis/sendgrid"
          },
          ...
          "authentication": "@parameters('azure_authentication')"
        }
      }
    }
    

    然后在你的parameters.json文件中:

    {
      "azure_authentication": {
        "type": "object",
        "value": {
          "type": "ManagedServiceIdentity"
        }
      }
      ...
    }
    

这样,您可以轻松地将所有环境特定参数卸载到应用程序设置

于 2021-08-23T10:16:58.617 回答