流分析作业 -> 数据湖输出

Stream Analytics Job -> DataLake ouput

我想使用 StreamAnalytics 作业设置 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 天令牌有效期的问题?

也许你擦掉了踪迹:)

目前还不可能。带来不便敬请谅解。但是我们知道这非常重要,我们将在不久的将来添加服务主体身份验证(我们正在查看确切的预计到达时间)。

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

如果您有任何问题,请告诉我。

据我所知,基于 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 模板

  • 作业会成功启动,但需要更新token,因此

    • 停止作业

    • 更新 ADLS 输出的身份验证

    • 开始工作

资源

[1] CICD NuGet Package