【问题标题】:How to create a session for Azure IotHub with Azure CLI?如何使用 Azure CLI 为 Azure IotHub 创建会话?
【发布时间】:2021-02-01 16:21:18
【问题描述】:

过去我使用IoTHub Explorer 登录并创建会话,然后执行进一步的操作(如调用设备方法)。 IoTHub Explorer 已被 Microsoft 弃用。 (我正在做一些应用程序级的测试自动化)

如何像使用 azure CLI az 使用资源管理器一样创建会话?

这是我过去所做的:

iothub-explorer login "HostName=..."
iothub-explorer device-method <device> "<method>" ...

这是我现在要做的:

az iot hub invoke-device-method -l "HostName=..." -n <hub-name> -d <device -method-name <method>

可以看出,我必须为每次调用az iot 提供-l-选项。理想情况下,我可以通过创建会话来避免这种情况。

我尝试使用az login 来打开一个网站,这对于测试自动化来说并不理想。甚至在那之后,在没有-l 的情况下调用az iot hub invoke-device-method 会导致异常:AttributeError: 'IotHubResourceOperations' object has no attribute 'config'

我试图生成一个sas-token,但我不确定如何处理它。

【问题讨论】:

    标签: azure azure-iot-hub azure-cli


    【解决方案1】:

    原来,我的 azure-cli 环境设置不正确:请参阅 https://github.com/Azure/azure-cli/issues/15461。不要混淆 azure-cli 的 Debian/系统包(实际上不要使用)和 pip 安装的包。使用 pip 执行所有操作,要么 作为用户 作为 root。

    我创建了一个新的 virtualenv 来清理它:

    $ virtualenv ~/python-venv/azure-venv
    $ . ~/python-venv/azure-cli/bin/activate
    (azure-venv) $ pip install azure-cli
    (azure-venv) $ az login
    (azure-venv) $ az iot hub generate-sas-token --duration 3600 -n <hubname> -l <login-string>
    (azure-venv) $ az iot hub invoke-device-method -n <hub-name> -d <device --method-name <method>
    

    它有效。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多