このトピックでは、IoT PlatformのAPI操作を呼び出す方法について説明します。 この例では、Pub操作を呼び出して、カスタムトピックを使用してデバイスにメッセージをパブリッシュします。
APIドキュメントの表示
Pub操作を呼び出して、カスタムトピックを使用してデバイスにメッセージを公開できます。 詳細については、「関数別の操作の一覧」をご参照ください。 操作のAPIリファレンスを読んで、この操作を呼び出すために必要なデータとアクセス許可を理解してください。
RAMユーザーを作成し、RAMユーザーに権限を付与する
アイデンティティ
この操作を呼び出すには、Alibaba Cloudアカウント、RAM (Resource Access Management) ユーザー、またはRAMロールを使用できます。 これらのIDの違いについては、「ID、資格情報、および権限付与」をご参照ください。 この例では、RAMユーザーを使用してこの操作を呼び出します。
RAM コンソールにログインします。 RAMユーザーを作成し、Access ModeパラメーターにOpenAPI Accessオプションのみを選択し、AccessKeyペアを記録します。 詳細については、「RAMユーザーの作成」をご参照ください。
権限付与
RAMコンソールの [ユーザー] ページで、管理するRAMユーザーを見つけ、[操作] 列の [権限の追加] をクリックします。
[権限の追加] パネルの [ポリシーの選択] セクションで、検索ボックスに
IoTと入力して検索し、AliyunIOTFullAccessポリシーを選択します。説明IoT Platformの次のシステムポリシーをRAMユーザーにアタッチできます。
AliyunIOTFullAccess: IoT Platformの完全な権限を付与します。
AliyunIOTReadOnlyAccess: IoT Platformの読み取り専用権限を付与します。
カスタムポリシーの作成方法の詳細については、「RAM権限付与」をご参照ください。
[OK] をクリックします。
資格情報
デフォルトでは、RAMユーザーを作成するとAccessKeyペアが生成されます。 AccessKeyペアを直接使用できます。
次の操作を実行して、AccessKeyペアを作成することもできます。RAMユーザーの詳細ページに移動します。 [認証] タブで、[AccessKeyの作成] をクリックします。 詳細については、「AccessKeyペアの作成」をご参照ください。
操作を呼び出す
この例では、IoT Platform SDK for Pythonを使用して操作を呼び出します。
Python環境の準備
Python 3がインストールされているかどうかを確認します。
LinuxまたはmacOS
ターミナルを開き、
python3 -- versionコマンドを実行します。Python 3のバージョン番号が返されると、Python 3がインストールされます。 それ以外の場合、Python 3はインストールされません。 次の手順でPython 3をインストールします。
Windows
Pythonインストールディレクトリで、python.exeをダブルクリックしてコマンドプロンプトを起動します。 Win + Rを押すこともできます。 [実行] ダイアログボックスで [python] と入力し、[OK] をクリックします。
次のような出力が返されると、Python 3がインストールされます。
Python 3.9.6 (tags/v3.9.6:db3ff76、6月28 2021、15:26:21) [MSC v.1929 64ビット (AMD64)] on win32 詳細については、「ヘルプ」、「著作権」、「クレジット」、または「ライセンス」と入力してください。 >>>Pythonをダウンロードしてインストールします。
Python 3のダウンロード方法の詳細については、Pythonの公式Webサイトをご覧ください。
Linux
Pythonパッケージを取得します。
wget https://www.python.org/ftp/python/3.9.6/Python-3.9.6.tgzPythonパッケージを解凍します。
tar -zxvf Python-3.9.6.tgzPythonパッケージを解凍するパスに切り替え、インストールパスを指定します。
cd Python-3.9.6 スド /configure -- prefix=/usr/bin/python3Pythonをコンパイルしてインストールします。
作るインストールするPython 3のインストールパスを格納するように環境変数を設定します。
たとえば、Ubuntu Linuxオペレーティングシステムを使用している場合は、次の手順を実行します。
を開きます。bashrcファイル。nano ~/.bashrcファイルの末尾に次のコンテンツを追加します。 ファイルを保存して閉じます。
エクスポートPATH=$PATH:/usr/bin/python3次のコマンドを実行して、環境変数を更新します。
source ~/.bashrc次のコマンドを実行して、PATH環境変数にPython 3のインストールパスが含まれているかどうかを確認します。
echo $PATH
macOS
Python 2.7はデフォルトでmacOSにインストールされています。 Python 3の最新バージョンをダウンロードしてインストールすることを推奨します。
Pythonパッケージをダウンロードしたら、インストールパッケージをダブルクリックしてウィザードを開きます。
[続行] をクリックし、プロンプトに従ってPython 3をインストールします。
Python 3のインストールパスを格納するように環境変数を設定します。
Windows
Pythonパッケージをダウンロードしたら、インストールパッケージをダブルクリックしてウィザードを開きます。 デフォルト設定を使用し、[Python 3.9をPATHに追加] を選択します。
[今すぐインストール] をクリックしてPythonをインストールします。
インストールが完了したら、[閉じる] をクリックします。
ステップ1を繰り返して、Python 3のバージョンを確認します。 Python 3のバージョン番号が表示されている場合は、Python 3がインストールされます。
環境変数の設定
この例では、環境変数はAccessKeyペアを管理するように設定されています。 これにより、AccessKeyペアをビジネスコードにハードコーディングすることによって引き起こされるセキュリティリスクを防ぎます。
LinuxまたはmacOS
次のコマンドの
<access_key_id>と<access_key_secret>をRAMユーザーのAccessKey IDとAccessKey secretに置き換え、ターミナルでコマンドを実行します。export ALIBABA_CLOUD_ACCESS_KEY_ID=<access_key_id> export ALIBABA_CLOUD_ACCESS_KEY_SECRET=<access_key_secret>Windows
環境変数ファイルを作成し、
ALIBABA_CLOUD_ACCESS_KEY_IDとALIBABA_CLOUD_ACCESS_KEY_SECRET環境変数をファイルに追加してから、ALIBABA_CLOUD_ACCESS_KEY_IDのAccessKey IDとALIBABA_CLOUD_ACCESS_KEY_SECRETのAccessKeyシークレットを指定します。 次に、Windowsオペレーティングシステムを再起動します。
依存関係のインストール
pip3インストールalibabacloud_tea_openapi
pip3インストールalibabacloud_iot20180120
pip3インストールalibabacloud-tea-console サンプルコードのダウンロード
ECI インスタンスの割引額を照会するには、 OpenAPI Explorerのパブデバッグページ。 操作の詳細については、「Pub」をご参照ください。
IotInstanceId、ProductKey、TopicFullName、およびMessageContentリクエストパラメーターを指定します。 他のパラメータを指定する必要はありません。
[呼び出しの開始] をクリックします。
[応答] タブに [呼び出しの成功] が表示されたら、[SDKサンプルコード] タブをクリックし、[Python] を選択します。
[プロジェクトのダウンロード] をクリックして、サンプルコードパッケージをダウンロードします。
コンピューターでサンプルコードパッケージを解凍し、alibabacloud_sampleディレクトリに移動します。
コードを実行するRun the code
以下のコマンドを実行します。
python sample.py次の出力が返されます。
{
"headers":{
"date": "Thu、8月10日2023 09:26:52 GMT" 、
"content-type": "application/json;charset=utf-8" 、
"content-length": "99" 、
"connection": "keep-alive" 、
"keep-alive": "timeout=25" 、
"access-control-allow-origin": "*" 、
"access-control-exposure-headers": "*" 、
"x-acs-request-id": "1296FD43-4BD3-5F80-AB2C-1ADF99B02253" 、
"x-acs-trace-id": "aee72e4c5e **************** 77fc9d" 、
"etag": "9umD ************ cjYJ8og9"
},
"statusCode": "20"、
"body": {
"MessageId": 1689000000000004736、
"RequestId": "1296FD43-4BD3-5F80-AB2C-1ADF99B02253" 、
"Success": true
}
}