在过去,我使用IoTHub Explorer登录并创建会话,然后执行进一步的操作(如调用设备方法)。IoTHub资源管理器已被微软弃用。(我正在做一些应用程序级别的自动化测试)
如何使用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-option。理想情况下,我可以通过创建会话来避免这种情况。
我尝试使用az login来打开一个网站,这对于测试自动化来说不是很理想。即使在此之后,调用不带-l的az iot hub invoke-device-method也会导致异常:AttributeError: 'IotHubResourceOperations' object has no attribute 'config'
我试图生成一个sas-token,但我不确定该如何处理它。
发布于 2021-01-31 23:12:03
结果,我的azure-cli环境没有正确设置:请参考https://github.com/Azure/azure-cli/issues/15461。不要混淆azure-cli的Debian/system包(实际不要使用)和pip安装包。无论是作为用户还是根用户,都可以使用pip执行所有操作。
我创建了一个新的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>而且它是有效的。
https://stackoverflow.com/questions/65978228
复制相似问题