【问题标题】:Stream Analytics Job -> DataLake ouput流分析作业 -> 数据湖输出
【发布时间】:2018-02-23 13:04:03
【问题描述】:

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

问题来自于 refreshToken: "建议在创建数据源的时候在这里放一个虚拟字符串值 然后去 Azure 门户对数据源进行身份验证 这将使用有效的刷新令牌更新此属性”

此外,90 天后刷新令牌已过时,您需要进行“更新授权” https://docs.microsoft.com/en-us/azure/stream-analytics/stream-analytics-data-lake-output#renew-data-lake-store-authorization

我尝试授权 ServicePrincipal。

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

也许你擦掉了踪迹:)

【问题讨论】:

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


    【解决方案1】:

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

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

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

    【讨论】:

    • 感谢您的信息。你知道它可用的任何可能的日期吗?天/月 (1-3)?我有时间发布生产版本,所以等待 2 个月对我来说是可以接受的。
    • 我们也在等待这个——如果没有这个,目前不可能用 Terraform 自动化 DataLake...
    【解决方案2】:

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

    【讨论】:

    • 感谢分享。当我尝试使用它时,我放弃了使用 ASA,因为它包含太多的障碍。使用身份验证,一件事是您需要更新身份验证,但第二件事是用户需要处于“所有者”角色
    猜你喜欢
    • 2021-12-07
    • 2018-11-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多