華為雲OBS助力物聯網資料轉發與儲存

华为云开发者联盟發表於2024-04-15

本文分享自華為雲社群《解鎖物聯網資料管理的新境界:華為雲OBS助力資料轉發與儲存【零程式碼零硬體玩轉華為雲IoT】》,作者: Y-StarryDreamer。

1. 背景介紹

物聯網(IoT)技術的快速發展正在推動著智慧化社會的到來。在這個數字化時代,隨著物聯網裝置數量的不斷增加和資料規模的快速增長,如何有效地儲存和管理這些海量資料成為了一個重要的挑戰。華為雲作為領先的雲端計算服務提供商,積極響應這一挑戰,為使用者提供了豐富的物聯網解決方案,其中包括物件儲存服務(OBS)。

OBS作為一種高度可擴充套件、安全可靠的雲端儲存服務,為使用者提供了靈活、高效的資料儲存解決方案。它採用分散式儲存架構,能夠輕鬆應對海量資料的儲存需求,並提供了多種資料保護和安全控制功能,確保使用者的資料安全可靠。

在物聯網應用中,資料的長期儲存和管理是至關重要的。傳統的資料儲存方式往往需要使用者自行搭建和維護伺服器,成本高昂且管理複雜。而將資料轉發至OBS,則成為了一種更加便捷和經濟的解決方案。透過將資料儲存在OBS中,使用者可以充分利用其高可靠性和低成本的優勢,無需擔心資料丟失或儲存空間不足的問題。同時,OBS還提供了豐富的資料管理和分析功能,幫助使用者更好地理解和利用資料,為業務決策提供支援。

在本文中,我們將深入探討如何將華為雲裝置上報的資料轉發至OBS進行長期儲存。首先,我們將介紹如何建立OBS桶,詳細討論桶的建立過程和相關配置選項。接著,我們將重點介紹如何配置裝置接入服務,包括建立資料轉發規則、設定轉發目標等操作步驟。最後,我們將透過實際操作演示如何驗證資料轉發的有效性,以及如何利用OBS的管理工具對儲存的資料進行檢視和管理。

透過本文的閱讀,讀者將全面瞭解華為雲物聯網解決方案中OBS的應用場景和優勢,掌握將裝置資料轉發至OBS進行長期儲存的操作方法,從而為物聯網應用的開發和部署提供技術支援和指導。

2. 物件儲存服務(OBS)簡介

image.png

物件儲存服務(OBS)是華為雲提供的一種高度可靠、安全可靠的雲端儲存服務。OBS採用分散式架構,具有高可用性、高可靠性和高擴充套件性的特點。使用者可以透過簡單的API介面或管理控制檯,輕鬆地上傳、下載和管理儲存在OBS中的資料。

OBS的主要特點包括:

  1. 高可靠性和可用性:OBS採用多副本儲存和智慧容災機制,保障資料的安全和可靠性。無論是硬體故障、網路故障還是其他異常情況,OBS都能夠保證資料的永續性和可用性,確保使用者資料隨時可訪問。

  2. 強大的資料管理功能:OBS提供豐富的資料管理功能,包括資料分類、生命週期管理、資料遷移等。使用者可以根據自己的業務需求,靈活地管理和組織儲存在OBS中的資料,從而提高資料的價值和利用效率。

  3. 靈活的儲存桶管理:使用者可以根據自己的需求建立和管理多個儲存桶,並對儲存桶進行許可權控制。每個儲存桶都具有獨立的名稱空間和訪問控制策略,使用者可以根據實際情況對儲存桶進行配置和管理,確保資料的安全性和隱私性。

OBS在華為雲生態系統中扮演著重要的角色,為使用者提供了高效、可靠的資料儲存解決方案,廣泛應用於各種場景,包括資料備份、歸檔、多媒體儲存等。無論是個人使用者、企業使用者還是開發者,都可以藉助OBS輕鬆實現資料的儲存和管理,從而更好地支援業務發展和創新應用。

3. 建立OBS桶

image.png

在將裝置上報的資料轉發至OBS之前,首先需要建立一個OBS桶。OBS桶是儲存資料的基本單元,使用者可以根據自己的需求建立多個桶,並對每個桶進行配置和管理。
image.png

建立OBS桶的步驟:

  1. 登入華為雲官方網站,訪問物件儲存服務

    開啟您的瀏覽器,前往華為雲官方網站,並登入您的賬號。在控制檯中找到並點選“物件儲存服務”連結,進入OBS服務頁面。

  2. 進入物件儲存服務管理控制檯

    在OBS服務頁面,您將看到一個“進入控制檯”的按鈕。點選該按鈕,您將被導航至物件儲存服務的管理控制檯頁面。

  3. 建立新的OBS桶

    在管理控制檯頁面的右上角,您會找到一個“建立桶”的按鈕。點選該按鈕,系統將引導您進入建立OBS桶的介面。

  4. 填寫桶的配置資訊

    在建立桶的介面,您需要填寫一些關於新桶的配置資訊,包括桶的名稱、所屬區域、儲存型別等。根據您的需求和應用場景,選擇適當的配置選項。

  5. 確認並建立

    填寫完桶的配置資訊後,您可以預覽您所建立桶的配置。確認無誤後,點選“立即建立”按鈕,系統將開始建立新的OBS桶。

  6. 等待建立完成

    建立桶的過程可能需要一些時間,取決於您所選擇的配置和當前的系統負載情況。請耐心等待,直到系統提示桶建立完成。

4. 配置裝置接入服務

在本文中,我們將詳細介紹如何使用Python程式碼將裝置上報的資料轉發至華為雲物件儲存服務(OBS),並進行長期儲存。我們將結合示例程式碼和詳細解釋,幫助讀者全面瞭解部署流程和程式碼實現細節。

* 配置華為雲物件儲存服務(OBS)

首先,我們需要在華為雲平臺上建立一個物件儲存服務(OBS)桶,用於儲存裝置上報的資料。在華為雲控制檯中,進入物件儲存服務管理頁面,按照以下步驟建立OBS桶:

  1. 單擊“進入控制檯”進入物件儲存服務管理控制檯。
  2. 單擊頁面右上角的“建立桶”按鈕。
  3. 根據需求選擇桶的規格和配置項,然後單擊“立即建立”按鈕,即可建立一個新的OBS桶。

* 編寫Python部署程式碼

接下來,我們將編寫Python程式碼,實現裝置資料轉發至OBS桶的功能。以下是詳細的程式碼解釋和部署流程:

import logging
from obs import ObsClient

# 配置華為雲OBS引數
access_key_id = 'your_access_key_id'
secret_access_key = 'your_secret_access_key'
server = 'your_obs_server'  # OBS服務的地址,例如:obs.cn-north-4.myhuaweicloud.com

# 配置裝置接入資訊
device_id = 'your_device_id'
device_secret = 'your_device_secret'

# 配置資料轉發規則
topic = 'your_topic'  # 裝置上報資料的主題
obs_bucket = 'your_obs_bucket'  # OBS桶名稱

# 配置日誌
logging.basicConfig(level=logging.INFO)

# 建立OBS客戶端
obs_client = ObsClient(access_key_id, secret_access_key, server)

# 建立裝置接入服務,模擬裝置上報資料
def report_data_to_obs(data):
    try:
        # 上報資料至OBS
        response = obs_client.putContent(obs_bucket, topic, data)
        if response.status < 300:
            logging.info("Data reported to OBS successfully.")
        else:
            logging.error("Failed to report data to OBS. Status code: %d" % response.status)
    except Exception as e:
        logging.error("An error occurred while reporting data to OBS: %s" % str(e))

# 模擬裝置上報資料
def simulate_device_data():
    data = {'temperature': 25, 'humidity': 60, 'pressure': 1013}  # 模擬裝置上報的資料
    report_data_to_obs(data)

if __name__ == "__main__":
    simulate_device_data()

在以上程式碼中:

  • 我們使用 obs 包來與華為雲的物件儲存服務(OBS)進行互動,確保您已安裝該包。
  • 請替換程式碼中的 access_key_idsecret_access_keyserver 引數為您的華為雲OBS賬戶的具體資訊。
  • report_data_to_obs 函式用於將裝置上報的資料上載到指定的OBS桶中。
  • simulate_device_data 函式用於模擬裝置上報資料,您可以根據實際情況更改資料內容。

* 部署和執行程式碼

在配置好程式碼中的引數並儲存後,您可以將該程式碼部署到您的伺服器或本地環境中,並執行該Python指令碼。執行後,您將看到日誌中列印出成功或失敗的資訊,以及資料是否成功上載到OBS桶中。

透過以上步驟,您就成功地將裝置上報的資料轉發至華為雲物件儲存服務,並實現了資料的長期儲存。這種解決方案能夠幫助您管理和分析大量的物聯網資料,併為您的應用提供可靠的資料支援。我們可以清楚地瞭解整個程式碼的結構和各部分的功能。該程式碼實現了將裝置上報的資料轉發至華為雲物件儲存服務的功能,透過合理的配置和呼叫,可以在物聯網應用中實現資料的可靠儲存和管理。

5. 驗證操作

完成資料轉發規則的配置和啟用後,接下來需要驗證資料轉發是否成功,確保裝置上報的資料能夠正確地儲存到指定的OBS桶中。

驗證資料轉發的步驟:

使用真實裝置或模擬器上報資料

首先,您可以透過真實裝置或模擬器模擬裝置上報資料,以驗證資料轉發功能是否正常工作。確保裝置能夠正常地連線到裝置接入服務,併成功上報資料。您可以使用裝置的唯一識別符號(如裝置ID)來確保資料被正確地標識和處理。

查詢上報資料

登入到華為雲的OBS管理控制檯,在控制檯中選擇相應的OBS桶,以檢視儲存桶中的物件列表或物件詳情。您應該能夠在桶中看到與裝置上報的資料相對應的物件。確認物件列表中包含了您期望儲存的資料物件,並且物件的內容與裝置上報的資料一致。

透過以上步驟,您可以驗證資料轉發功能是否正常,確保裝置上報的資料能夠順利地儲存到指定的OBS桶中。如果您能夠在OBS桶中找到並確認了裝置上報的資料,那麼資料轉發功能已經成功配置並且工作正常。

以下是使用Python SDK 驗證資料轉發的示例程式碼:

from obs import ObsClient

# 初始化ObsClient
obs_client = ObsClient(
    access_key_id='your_access_key_id',
    secret_access_key='your_secret_access_key',
    server='your_obs_endpoint'  # OBS服務的endpoint,如obs.cn-north-1.myhuaweicloud.com
)

# 查詢指定桶中的物件列表
def list_objects(bucket_name):
    try:
        resp = obs_client.listObjects(bucket_name)
        if resp.status == 200:
            return resp.body.contents
        else:
            print(f'Error: {resp.status}')
            return None
    except Exception as e:
        print(f'Error: {e}')
        return None

# 查詢指定物件的詳情
def get_object_detail(bucket_name, object_key):
    try:
        resp = obs_client.getObjectMetadata(bucket_name, object_key)
        if resp.status == 200:
            return resp.body
        else:
            print(f'Error: {resp.status}')
            return None
    except Exception as e:
        print(f'Error: {e}')
        return None

if __name__ == "__main__":
    # 指定OBS桶名稱和裝置上報的物件鍵(key)
    bucket_name = 'your_obs_bucket_name'
    object_key = 'your_object_key'

    # 查詢物件列表
    objects = list_objects(bucket_name)
    if objects:
        print(f'Objects in bucket {bucket_name}: {objects}')

        # 查詢物件詳情
        object_detail = get_object_detail(bucket_name, object_key)
        if object_detail:
            print(f'Object detail: {object_detail}')
        else:
            print(f'Failed to get object detail for key {object_key}')
    else:
        print(f'Failed to list objects in bucket {bucket_name}')

在上述程式碼中,您需要替換以下內容:

  • your_access_key_id: 您的華為雲Access Key ID。
  • your_secret_access_key: 您的華為雲Secret Access Key。
  • your_obs_endpoint: 您的OBS服務的endpoint,如obs.cn-north-1.myhuaweicloud.com
  • your_obs_bucket_name: 您的OBS桶名稱。
  • your_object_key: 裝置上報的物件鍵(key),用於查詢物件詳情。

執行以上程式碼,將會查詢指定桶中的物件列表,並獲取指定物件的詳情,從而驗證資料轉發是否成功。

6. 最佳實踐和注意事項

在進行資料轉發至OBS的操作過程中,有一些最佳實踐和注意事項需要注意:

最佳實踐

資料加密與安全:

對於敏感資料,建議在資料傳輸過程中進行加密,確保資料的安全性。您可以使用HTTPS等安全加密協議來保護資料在傳輸過程中的安全。

資料生命週期管理:

根據資料的生命週期和業務需求,合理設定資料的儲存週期和過期策略,避免儲存過期或無用的資料。定期審查和清理不再需要的資料,以釋放儲存空間並降低儲存成本。

監控和報警:

建議對資料轉發和儲存過程進行監控和報警,及時發現和處理異常情況,確保資料的可靠性和穩定性。您可以設定監控指標和報警規則,監測資料轉發的狀態和效能,並及時採取措施解決問題。

注意事項

儲存桶許可權設定:

在建立儲存桶時,需要根據實際需求設定儲存桶的許可權和訪問策略,確保資料的安全和合規性。您可以限制訪問儲存桶的許可權,只允許特定的使用者或實體訪問儲存桶,並採用訪問控制策略來保護儲存桶中的資料。

區域選擇:

在設定轉發目標時,需要選擇與OBS服務相同的區域,確保資料能夠順利地轉發和儲存到指定的OBS桶中。選擇相同的區域可以降低資料傳輸的延遲,並提高資料傳輸的效率和可靠性。

7.THE end

本文詳細介紹瞭如何將華為雲裝置上報的資料轉發至物件儲存服務(OBS),並突出強調了這一操作的重要性和優勢。透過將資料儲存在OBS中,使用者可以獲得以下優勢:

  1. 高可靠性和安全性:OBS採用分散式架構和多副本儲存,保障資料的安全和可靠性,同時提供資料加密等安全功能,確保資料的機密性和完整性。

  2. 低成本的資料儲存:OBS提供了經濟實惠的儲存方案,使用者只需按照實際儲存的資料量付費,避免了傳統儲存方案中需要提前購買儲存裝置和維護成本的問題。

  3. 強大的資料管理功能:OBS提供了豐富的資料管理功能,包括資料分類、生命週期管理、資料遷移等,幫助使用者更好地管理和利用儲存在OBS中的資料。

透過將裝置上報的資料轉發至OBS,使用者可以實現資料的長期儲存和管理,為應用程式提供穩定可靠的資料支援。因此,我們鼓勵讀者嘗試並探索更多的資料儲存和管理方法,以提高應用的效率和可靠性。透過合理利用雲端儲存服務,使用者可以更好地應對不斷增長的資料量和複雜的資料管理需求,為物聯網應用的發展提供更強大的支援。

點選關注,第一時間瞭解華為雲新鮮技術~

相關文章