We use essential cookies and similar tools that are necessary to provide our site and services. We use performance cookies to collect anonymous statistics, so we can understand how customers use our site and make improvements. Essential cookies cannot be deactivated, but you can choose “Customize” or “Decline” to decline performance cookies.
If you agree, AWS and approved third parties will also use cookies to provide useful site features, remember your preferences, and display relevant content, including relevant advertising. To accept or decline all non-essential cookies, choose “Accept” or “Decline.” To make more detailed choices, choose “Customize.”
Customize cookie preferences
We use cookies and similar tools (collectively, "cookies") for the following purposes.
Essential
Essential cookies are necessary to provide our site and services and cannot be deactivated. They are usually set in response to your actions on the site, such as setting your privacy preferences, signing in, or filling in forms.
Performance
Performance cookies provide anonymous statistics about how customers navigate our site so we can improve site experience and performance. Approved third parties may perform analytics on our behalf, but they cannot use the data for their own purposes.
Allowed
Functional
Functional cookies help us provide useful site features, remember your preferences, and display relevant content. Approved third parties may set these cookies to provide certain site features. If you do not allow these cookies, then some or all of these services may not function properly.
Allowed
Advertising
Advertising cookies may be set through our site by us or our advertising partners and help us deliver relevant marketing content. If you do not allow these cookies, you will experience less relevant advertising.
Allowed
Blocking some types of cookies may impact your experience of our sites. You may review and change your choices at any time by selecting Cookie preferences in the footer of this site. We and selected third-parties use cookies or similar technologies as specified in the AWS Cookie Notice.
Unable to save cookie preferences
We will only store essential cookies at this time, because we were unable to save your cookie preferences.
If you want to change your cookie preferences, try again later using the link in the AWS console footer, or contact support if the problem persists.
AWS IoT Greengrass Version 1 entered the extended life phase on June 30, 2023. For
more information, see the AWS IoT Greengrass V1 maintenance
policy. After this date, AWS IoT Greengrass V1 won't release updates that provide features,
enhancements, bug fixes, or security patches. Devices that run on AWS IoT Greengrass V1 won't be
disrupted and will continue to operate and to connect to the cloud. We strongly
recommend that you migrate to AWS IoT Greengrass Version 2,
which adds significant new
features and support for additional platforms.
AWS IoT Greengrass Version 1 entered the extended life phase on June 30, 2023. For
more information, see the AWS IoT Greengrass V1 maintenance
policy. After this date, AWS IoT Greengrass V1 won't release updates that provide features,
enhancements, bug fixes, or security patches. Devices that run on AWS IoT Greengrass V1 won't be
disrupted and will continue to operate and to connect to the cloud. We strongly
recommend that you migrate to AWS IoT Greengrass Version 2,
which adds significant new
features and support for additional platforms.
Client devices can use the AWS IoT Device SDK for Python to communicate with AWS IoT and AWS IoT Greengrass core devices
(using the Python programming language). For more information, including
requirements, see the AWS IoT Device SDK for Python Readme on
GitHub.
In this step, you install the SDK and get the
basicDiscovery.py sample function used by the simulated
client devices on your computer.
To install the SDK on your computer, with all required components, choose
your operating system:
If no version information is returned or if the
version number is less than 2.7 for Python 2 or less
than 3.3 for Python 3, follow the instructions in Downloading Python to install Python 2.7+
or Python 3.3+. For more information, see Using Python on Windows.
Download the AWS IoT Device SDK for Python as a zip file
and extract it to an appropriate location on your
computer.
Make a note of the file path to the extracted
aws-iot-device-sdk-python-master
folder that contains the setup.py
file. In the next step, this file path is indicated by
path-to-SDK-folder.
From the elevated command prompt, run the
following:
cd path-to-SDK-folder
python setup.py install
macOS
Open a Terminal window and run the following
command:
python --version
If no version information is returned or if the
version number is less than 2.7 for Python 2 or less
than 3.3 for Python 3, follow the instructions in Downloading Python to install Python 2.7+
or Python 3.3+. For more information, see Using
Python on a Macintosh.
In the Terminal window, run the following commands to
determine the OpenSSL version:
python
>>>import ssl
>>>print ssl.OPENSSL_VERSION
Make a note of the OpenSSL version value.
Note
If you're running Python 3, use
print(ssl.OPENSSL_VERSION).
To close the Python shell, run the following
command:
>>>exit()
If the OpenSSL version is 1.0.1 or later, skip to
step
c. Otherwise, follow these steps:
From the Terminal window, run the following
command to determine if the computer is using
Simple Python Version Management:
which pyenv
If a file path is returned, then choose the
Using pyenv tab.
If nothing is returned, choose the Not using
pyenv tab.
Using pyenvNot using pyenv
Using pyenv
See Python Releases for Mac OS X (or similar)
to determine the latest stable Python version. In
the following example, this value is indicated by
latest-Python-version.
From the Terminal window, run the following
commands:
pyenv install latest-Python-version
pyenv global latest-Python-version
For example, if the latest version for
Python 2 is 2.7.14, then these commands
are:
pyenv install 2.7.14
pyenv global 2.7.14
Close and then reopen the Terminal window
and then run the following commands:
python
>>>import ssl
>>>print ssl.OPENSSL_VERSION
The OpenSSL version should be at least
1.0.1. If the version is less than 1.0.1, then the
update failed. Check the Python version value used
in the pyenv install and
pyenv global commands and try
again.
Run the following command to exit the Python
shell:
exit()
Not using pyenv
From a Terminal window, run the following
command to determine if brew is
installed:
which brew
If a file path is not returned, install
brew as follows:
The AWS IoT Device SDK for Python requires OpenSSL version 1.0.1
(or later) compiled with the Python executable.
The brew install python command
installs a python2 executable that
meets this requirement. The python2
executable is installed in the
/usr/local/bin directory,
which should be part of the PATH
environment variable. To confirm, run the
following command:
python2 --version
If python2 version information
is provided, skip to the next step. Otherwise,
permanently add the
/usr/local/bin path to your
PATH environment variable by
appending the following line to your shell
profile:
export PATH="/usr/local/bin:$PATH"
For example, if you're using
.bash_profile or do not yet
have a shell profile, run the following command
from a Terminal window:
Next, source your shell profile and confirm
that python2 --version provides
version information. For example, if you're using
.bash_profile, run the
following commands:
source ~/.bash_profile
python2 --version
python2 version information
should be returned.
Append the following line to your shell
profile:
alias python="python2"
For example, if you're using
.bash_profile or do not yet
have a shell profile, run the following
command:
echo 'alias python="python2"' >> ~/.bash_profile
Next, source your shell profile. For example,
if you're using
.bash_profile, run the
following command:
source ~/.bash_profile
Invoking the python
command runs the Python executable that contains
the required OpenSSL version
(python2) .
Run the following commands:
python
import ssl
print ssl.OPENSSL_VERSION
The OpenSSL version should be 1.0.1 or
later.
To exit the Python shell, run the following
command:
exit()
Run the following commands to install the
AWS IoT Device SDK for Python:
cd ~
git clone https://github.com/aws/aws-iot-device-sdk-python.git
cd aws-iot-device-sdk-python
sudo python setup.py install
UNIX-like system
From a terminal window, run the following
command:
python --version
If no version information is returned or if the
version number is less than 2.7 for Python 2 or less
than 3.3 for Python 3, follow the instructions in Downloading Python to install Python 2.7+
or Python 3.3+. For more information, see Using Python on Unix platforms.
In the terminal, run the following commands to
determine the OpenSSL version:
python
>>>import ssl
>>>print ssl.OPENSSL_VERSION
Make a note of the OpenSSL version value.
Note
If you're running Python 3, use
print(ssl.OPENSSL_VERSION).
To close the Python shell, run the following
command:
exit()
If the OpenSSL version is 1.0.1 or later, skip to the
next step. Otherwise, run the command(s) to update
OpenSSL for your distribution (for example, sudo
yum update openssl, sudo apt-get
update, and so on).
Confirm that the OpenSSL version is 1.0.1 or later by
running the following commands:
If no version information is returned or if the
version number is less than 2.7 for Python 2 or less
than 3.3 for Python 3, follow the instructions in Downloading Python to install Python 2.7+
or Python 3.3+. For more information, see Using Python on Windows.
Download the AWS IoT Device SDK for Python as a zip file
and extract it to an appropriate location on your
computer.
Make a note of the file path to the extracted
aws-iot-device-sdk-python-master
folder that contains the setup.py
file. In the next step, this file path is indicated by
path-to-SDK-folder.
From the elevated command prompt, run the
following:
cd path-to-SDK-folder
python setup.py install
After the AWS IoT Device SDK for Python is installed, navigate to the
samples folder and open the
greengrass folder.