GetAssetPropertyValue 搭配 AWS SDK 或 CLI 使用 - AWS SDK 程式碼範例

文件 AWS 開發套件範例 GitHub 儲存庫中有更多可用的 AWS SDK 範例

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

GetAssetPropertyValue 搭配 AWS SDK 或 CLI 使用

下列程式碼範例示範如何使用 GetAssetPropertyValue

CLI
AWS CLI

擷取資產屬性的目前值

下列get-asset-property-value範例會擷取風力渦輪機資產目前的總功率。

aws iotsitewise get-asset-property-value \ --asset-id a1b2c3d4-5678-90ab-cdef-33333EXAMPLE \ --property-id a1b2c3d4-5678-90ab-cdef-66666EXAMPLE

輸出:

{ "propertyValue": { "value": { "doubleValue": 6890.8677520453875 }, "timestamp": { "timeInSeconds": 1580853000, "offsetInNanos": 0 }, "quality": "GOOD" } }

如需詳細資訊,請參閱 AWS IoT SiteWise 使用者指南中的查詢目前資產屬性值

Java
SDK for Java 2.x
注意

GitHub 上提供更多範例。尋找完整範例,並了解如何在 AWS 程式碼範例儲存庫中設定和執行。

/** * Fetches the value of an asset property. * * @param propId the ID of the asset property to fetch. * @param assetId the ID of the asset to fetch the property value for. * @return a {@link CompletableFuture} that represents a {@link Double} result. The calling code can attach * callbacks, then handle the result or exception by calling {@link CompletableFuture#join()} or * {@link CompletableFuture#get()}. * <p> * If any completion stage in this method throws an exception, the method logs the exception cause and keeps * it available to the calling code as a {@link CompletionException}. By calling * {@link CompletionException#getCause()}, the calling code can access the original exception. */ public CompletableFuture<Double> getAssetPropValueAsync(String propId, String assetId) { GetAssetPropertyValueRequest assetPropertyValueRequest = GetAssetPropertyValueRequest.builder() .propertyId(propId) .assetId(assetId) .build(); return getAsyncClient().getAssetPropertyValue(assetPropertyValueRequest) .handle((response, exception) -> { if (exception != null) { logger.error("Error occurred while fetching property value: {}.", exception.getCause().getMessage()); throw (CompletionException) exception; } return response.propertyValue().value().doubleValue(); }); }
JavaScript
SDK for JavaScript (v3)
注意

GitHub 上提供更多範例。尋找完整範例,並了解如何在 AWS 程式碼範例儲存庫中設定和執行。

import { GetAssetPropertyValueCommand, IoTSiteWiseClient, } from "@aws-sdk/client-iotsitewise"; import { parseArgs } from "node:util"; /** * Describe an asset property value. * @param {{ entryId : string }} */ export const main = async ({ entryId }) => { const client = new IoTSiteWiseClient({}); try { const result = await client.send( new GetAssetPropertyValueCommand({ entryId: entryId, // The ID of the Gateway to describe. }), ); console.log("Asset property information retrieved successfully."); return result; } catch (caught) { if (caught instanceof Error && caught.name === "ResourceNotFound") { console.warn( `${caught.message}. The asset property entry could not be found. Please check the entry id.`, ); } else { throw caught; } } };
Python
SDK for Python (Boto3)
注意

GitHub 上提供更多範例。尋找完整範例,並了解如何在 AWS 程式碼範例儲存庫中設定和執行。

class IoTSitewiseWrapper: """Encapsulates AWS IoT SiteWise actions using the client interface.""" def __init__(self, iotsitewise_client: client) -> None: """ Initializes the IoTSitewiseWrapper with an AWS IoT SiteWise client. :param iotsitewise_client: A Boto3 AWS IoT SiteWise client. This client provides low-level access to AWS IoT SiteWise services. """ self.iotsitewise_client = iotsitewise_client self.entry_id = 0 # Incremented to generate unique entry IDs for batch_put_asset_property_value. @classmethod def from_client(cls) -> "IoTSitewiseWrapper": """ Creates an IoTSitewiseWrapper instance with a default AWS IoT SiteWise client. :return: An instance of IoTSitewiseWrapper initialized with the default AWS IoT SiteWise client. """ iotsitewise_client = boto3.client("iotsitewise") return cls(iotsitewise_client) def get_asset_property_value( self, asset_id: str, property_id: str ) -> Dict[str, Any]: """ Gets the value of an AWS IoT SiteWise Asset Property. :param asset_id: The ID of the asset. :param property_id: The ID of the property. :return: A dictionary containing the value of the property. """ try: response = self.iotsitewise_client.get_asset_property_value( assetId=asset_id, propertyId=property_id ) return response["propertyValue"] except ClientError as err: if err.response["Error"]["Code"] == "ResourceNotFoundException": logger.error( "Asset %s or property %s does not exist.", asset_id, property_id ) else: logger.error( "Error getting asset property value. Here's why %s", err.response["Error"]["Message"], ) raise
  • 如需 API 詳細資訊,請參閱 SDK AWS for Python (Boto3) API 參考中的 GetAssetPropertyValue