華爲雲OBS助力物聯網數據轉發與存儲

本文分享自華爲雲社區《解鎖物聯網數據管理的新境界:華爲雲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_key 和 server 參數爲您的華爲雲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,用戶可以實現數據的長期存儲和管理,爲應用程序提供穩定可靠的數據支持。因此,我們鼓勵讀者嘗試並探索更多的數據存儲和管理方法,以提高應用的效率和可靠性。通過合理利用雲端存儲服務,用戶可以更好地應對不斷增長的數據量和複雜的數據管理需求,爲物聯網應用的發展提供更強大的支持。

 

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

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章