流分析工作 - > DataLake输出

时间:2018-02-23 13:04:03

标签: azure azure-data-lake azure-stream-analytics

我想使用StreamAnalytics Job设置CI / CD(ARM模板),并将输出设置为DataLake Store。 https://docs.microsoft.com/en-us/azure/templates/microsoft.streamanalytics/streamingjobs/outputs#microsoftdatalakeaccounts

问题来自refreshToken: "建议在创建数据源时在此处放置一个虚拟字符串值 然后转到Azure门户以验证数据源 这将使用有效的刷新令牌"

更新此属性

此外,90天刷新令牌已过时,您需要执行" Renvew Authorization" https://docs.microsoft.com/en-us/azure/stream-analytics/stream-analytics-data-lake-output#renew-data-lake-store-authorization

我试图授权ServicePrincipal。

如何使用DataLake自动部署ASA? 如何处理这个90天令牌有效的问题?

也许你擦过了踪迹:)。

2 个答案:

答案 0 :(得分:2)

目前还不可能。抱歉给你带来不便。但是我们知道这非常重要,我们将在不久的将来添加Service Principal auth(我们正在查看确切的ETA)。

与此同时,您需要手动续订令牌。这可以在不丢失任何数据的情况下完成(1)停止作业,(2)更改令牌,然后(3)上次停止作业时重新启动作业。

如果您有任何进一步的问题,请与我们联系。

答案 1 :(得分:0)

据我所知,基于MSI的身份验证将很快进行预览。

但是,如果您需要立即的解决方案(例如能够使VSTS管道正常运行),则可以执行以下操作:

  • 创建模板(例如,使用CICD NuGet软件包[1])

  • 操纵ARM模板<jobName>.JobTemplate.json

    • 为ADLS输出对象添加输出数据源对象
    • 如果使用Visual Studio,则可以很容易地从ADLS输出JSON获取值
    • refreshToken设置为假值很重要

类似以下内容:

"outputs": [
    {
        "name": "xxx",
        "properties": {
            "serialization": {
                "type": "Json",
                "properties": {
                    "encoding": "UTF8",
                    "format": "LineSeparated"
                }
            },
            "datasource": {
                "type": "Microsoft.DataLake/Accounts",
                "properties": {
                    "accountName": "xxx",
                    "tenantId": "xxx-xxx-xxx-xxx-xxx",
                    "tokenUserPrincipalName": "xxx@xxx.com",
                    "tokenUserDisplayName": "xxx, xxx",
                    "filePathPrefix": "xxx/{date}/{time}",
                    "dateFormat": "yyyy/MM/dd",
                    "timeFormat": "HH",
                    "refreshToken": "faketoken"
                }
            }
        }
    },
    ...
  • 部署ARM模板

  • 作业将成功启动,但是有必要续订令牌,因此

    • 停止工作

    • 更新ADLS输出的身份验证

    • 开始工作

资源

[1] CICD NuGet Package