Skip to main content

AWS IoT SDK based on the AWS Common Runtime

Project description

AWS IoT Device SDK for Python v2

Version

The AWS IoT Device SDK for Python v2 connects your Python applications and devices to the AWS IoT platform. It handles the complexities of secure communication, authentication, and device management so you can focus on your IoT solution. The SDK makes it easy to use AWS IoT services like Device Shadows, Jobs, and Fleet Provisioning.

Supported Platforms: Linux, Windows 11+, macOS 14+

Note: The SDK is known to work on older platform versions, but we only guarantee compatibility for the platforms listed above.

Topics:

Features

The primary purpose of the AWS IoT Device SDK for Python v2 is to simplify the process of connecting devices to AWS IoT Core and interacting with AWS IoT services on various platforms. The SDK provides:

Supported AWS IoT Core services

Installation

The recommended way to use the AWS IoT Device SDK for Python v2 in your project is to install it from PyPI.

Minimum Requirements

To develop applications with the AWS IoT Device SDK for Python v2, you need:

  • Python 3.8+

See detailed setup instructions for more information.

Installing from PyPI

macOS and Linux:

python3 -m pip install awsiotsdk

Windows:

python -m pip install awsiotsdk

Building from source

See the Development Guide for detailed instructions on building from source and using local builds.

Getting Started

To get started with the AWS IoT Device SDK for Python v2:

  1. Install the SDK - See the Installation section for installation details

  2. Choose your connection method - The SDK supports multiple authentication methods including X.509 certificates, AWS credentials, and custom authentication. MQTT5 User Guide connection section and MQTT5 X509 sample provide more guidance

  3. Follow a complete example - Check out the samples directory

  4. Learn MQTT5 features - For advanced usage and configuration options, see the MQTT5 User Guide

Samples

Check out the samples directory for working code examples that demonstrate:

The samples provide ready-to-run code with detailed setup instructions for each authentication method and use case.

Specifics

Mac-Only TLS 1.3

By default, macOS uses Apple Secure Transport as the TLS implementation, which supports up to TLS 1.2. To enable TLS 1.3 on macOS, set the environment variable AWS_CRT_USE_NON_FIPS_TLS_13=1 before running your application. This switches the TLS backend to s2n-tls with aws-lc at runtime.

[!IMPORTANT] Enabling AWS_CRT_USE_NON_FIPS_TLS_13 trades FIPS compliance and macOS Keychain/PKCS#12 integration for TLS 1.3 support. This variable has no effect on Linux or Windows.

Mac Keychain

When using the default Apple Secure Transport backend, once a private key is used with a certificate, that certificate-key pair is imported into the Mac Keychain. All subsequent uses of that certificate will use the stored private key and ignore anything passed in programmatically. When a stored private key from the Keychain is used, the following will be logged at the "info" log level:

static: certificate has an existing certificate-key pair that was previously imported into the Keychain.
 Using key from Keychain instead of the one provided.

Getting Help

The best way to interact with our team is through GitHub.

  • Open discussion: Share ideas and solutions with the SDK community
  • Search issues: Find created issues for answers based on a topic
  • Create an issue: New feature request or file a bug

If you have a support plan with AWS Support, you can also create a new support case.

Resources

Check out our resources for additional guidance too before opening an issue:

License

This library is licensed under the Apache 2.0 License.

Latest released version: v1.30.0

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

awsiotsdk-1.30.0.tar.gz (93.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

awsiotsdk-1.30.0-py3-none-any.whl (81.1 kB view details)

Uploaded Python 3

File details

Details for the file awsiotsdk-1.30.0.tar.gz.

File metadata

  • Download URL: awsiotsdk-1.30.0.tar.gz
  • Upload date:
  • Size: 93.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.12

File hashes

Hashes for awsiotsdk-1.30.0.tar.gz
Algorithm Hash digest
SHA256 3407abdbcb6718010784bda00860c90e0c4400be1d7f511c6802e4a37861e8b7
MD5 2b6d293dca531b9506416d021285b856
BLAKE2b-256 9d027340313e57aa69180deb8c6f4c7ea9887609d2012c22fc4e05d08d20e5e9

See more details on using hashes here.

File details

Details for the file awsiotsdk-1.30.0-py3-none-any.whl.

File metadata

  • Download URL: awsiotsdk-1.30.0-py3-none-any.whl
  • Upload date:
  • Size: 81.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.12

File hashes

Hashes for awsiotsdk-1.30.0-py3-none-any.whl
Algorithm Hash digest
SHA256 64e45f1d4e6c224a96f5b2178ee166212416cd066300a77507761b87db18736c
MD5 8209d0d5c7ec1f11ced25694662c4eab
BLAKE2b-256 47cb3df545b6812c53b89eab27a7b57eeb3344bc3ee70a50fbf948f88a7c1ff8

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page