Here is the Python code that retrieves the device connection string:
from azure.mgmt.iothub import IotHubClient
from azure.identity import DefaultAzureCredential
from azure.mgmt.iothub.models import SharedAccessSignatureAuthorizationRule
# Subscription ID and resource group
subscription_id = 'ABCD1234' # Your subscription ID
resource_group = 'my-resource-group'
iot_hub_name = 'my-iot-hub'
device_id = 'MY_DEVICE'
# Use DefaultAzureCredential for authentication
credential = DefaultAzureCredential()
# Initialize IoT Hub client
iot_hub_client = IotHubClient(credential, subscription_id)
# Retrieve the primary connection string for the device
def get_device_connection_string():
# Get the device identity
device = iot_hub_client.iot_hub_resource.get_device(resource_group, iot_hub_name, device_id)
# Get the IoT Hub keys
keys = iot_hub_client.iot_hub_resource.list_keys(resource_group, iot_hub_name)
# Construct connection string
if keys:
for key in keys:
if key.rights == "RegistryWrite":
connection_string = f"HostName={iot_hub_name}.azure-devices.net;DeviceId={device_id};SharedAccessKey={key.primary_key}"
return connection_string
# Retrieve connection string for the device
conn_str = get_device_connection_string()
print(f"Connection string for device {device_id}: {conn_str}")
Work with our skilled full stack experts to improve your software quality, accelerate testing cycles, and enhance overall performance.
Hire Full Stack Developers