如何参数化工作流中的值.Json和连接.azure逻辑应用标准项目的Json文件



我使用visual studio代码创建了azure逻辑应用程序单租户项目,遵循本文档。然后根据我的需求创建了工作流,其中包含了数据工厂管道和发送网格的动作。

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

"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文件中的值。

逻辑应用程序标准只是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必须定义为app服务中的app设置。

  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"
    }
    }
    ...
    }
    

这样你可以很容易地卸载所有环境特定的参数到应用程序设置

相关内容

  • 没有找到相关文章

最新更新