Dies ist ein Skript, mit dem Sie PubSub von AWS IoT Device SDK v2 für Python sofort für einen kleinen Test testen können. Sie können dies in wenigen Zeilen auf der CLI tun. Die Version von Node.j ist hier
Es wird angenommen, dass es auf Cloud9 eingestellt ist. Es wird verwendet, wenn es schwierig ist, mit einem Mannequin zu erstellen. Ich werde nicht erklären, was Sie tun. .. Wenn Sie nur einige Nachrichten manuell senden möchten, ist es besser, die Testfunktion von IoT Core zu verwenden.
Erstellen Sie eine Cloud9-Umgebung und legen Sie Folgendes im Umgebungsverzeichnis ab.
setup.sh
mkdir $THING_NAME
cd $THING_NAME
POLICY_NAME=${THING_NAME}_Policy
aws iot create-thing --thing-name ${THING_NAME}
git clone https://github.com/aws/aws-iot-device-sdk-python-v2.git
pip install ./aws-iot-device-sdk-python-v2
cd aws-iot-device-sdk-python-v2/samples/
wget -O rootca.pem \
https://www.amazontrust.com/repository/AmazonRootCA1.pem
aws iot create-keys-and-certificate --set-as-active \
--certificate-pem-outfile certificate.pem \
--public-key-outfile public_key.pem \
--private-key-outfile private_key.pem \
--query certificateArn
echo -n CERTIFICATE_ARN:
read str
CERTIFICATE_ARN=$str
aws iot create-policy \
--policy-name ${POLICY_NAME} \
--policy-document file://../../../policy.json
aws iot attach-thing-principal \
--thing-name $THING_NAME \
--principal $CERTIFICATE_ARN
aws iot attach-principal-policy \
--policy-name $POLICY_NAME \
--principal $CERTIFICATE_ARN
Die Richtlinie sollte entsprechend geändert werden, aber sobald es etwas gibt.
policy.json
{
"Version": "2012-10-17",
"Statement": [{
"Effect": "Allow",
"Action":["iot:*"],
"Resource": ["*"]
}]
}
sudo pip install awsiotsdk
aws iot describe-endpoint --endpoint-type iot:Data-ATS
export ENDPOINT=yourendpoint-ats.iot.ap-northeast-1.amazonaws.com
export THING_NAME=mything
./setup.sh
cd aws-iot-device-sdk-python-v2/samples/
python pubsub.py --endpoint $ENDPOINT --root-ca rootca.pem --cert certificate.pem --key private_key.pem
Wenn Sie es mit einer anderen Sache versuchen, schreiben Sie THING_NAME neu und führen Sie es aus.