使用ATYM在樹莓派上運(yùn)行WebAssembly容器
ATYM是一個輕量級的運(yùn)行時,用于在Linux邊緣設(shè)備(如樹莓派)上運(yùn)行WebAssembly應(yīng)用程序。ATYM不是在系統(tǒng)上部署大型Docker映像或直接運(yùn)行本機(jī)二進(jìn)制文件,而是運(yùn)行小型的沙盒程序,這些程序啟動速度快,使用很少的內(nèi)存,并且只有在明確允許的情況下才能訪問硬件。
WebAssembly,或WASM,是一種可移植的二進(jìn)制格式,最初設(shè)計用于在web瀏覽器中安全運(yùn)行代碼。在瀏覽器之外,WASM提供了強(qiáng)大的隔離、可預(yù)測的資源使用和清晰的權(quán)限模型。這些特性使其非常適合邊緣設(shè)備,可靠性和安全性比靈活性更重要。
ATYM在此基礎(chǔ)上將每個WebAssembly程序視為一個容器。您只需注冊一次設(shè)備,將容器遠(yuǎn)程推送給它,并讓ATYM運(yùn)行時處理執(zhí)行和隔離。其結(jié)果是一個簡單的部署模型,沒有完整容器堆棧的開銷。
在本指南中,您將在無頭模式下準(zhǔn)備一個Raspberry Pi,安裝和配置ATYM運(yùn)行時服務(wù),設(shè)置用于構(gòu)建WebAssembly容器的開發(fā)環(huán)境,并部署示例代碼。
本指南假設(shè)您能夠熟練地使用終端,并且對樹莓派和Linux有基本的了解。所有步驟都直接基于官方的ATYM和OCRE文檔,旨在在第一次運(yùn)行時工作。
文檔引用:
?ATYM文檔
?Linux運(yùn)行時設(shè)置
?ATYM命令行設(shè)置
?你的第一個ATYM容器
?安裝gpio API
?樹莓派成像器
1. 需求
硬件
?Raspberry Pi 4或5(需要64位操作系統(tǒng))
?microSD卡(推薦32gb +)
?網(wǎng)絡(luò)連接(以太網(wǎng)或Wi-Fi)
軟件
?ATYM CLI(安裝在開發(fā)機(jī)器上)
?VS Code + Dev容器
?碼頭工人
?樹莓派成像器
2. 開發(fā)環(huán)境設(shè)置
ATYM提供了一個預(yù)配置的開發(fā)容器,其中包括構(gòu)建WebAssembly容器所需的完整工具鏈。使用Dev Container是推薦的方法,因?yàn)樗苊饬嗽谥鳈C(jī)系統(tǒng)上手動安裝WASI SDK和構(gòu)建工具。
先決條件
在繼續(xù)之前,請確保您擁有:
?Docker已安裝并運(yùn)行
?Docker已安裝并運(yùn)行
?Visual Studio代碼
?VS Code開發(fā)容器擴(kuò)展
在您的開發(fā)機(jī)器上,克隆ATYM工具鏈存儲庫:
在VS Code中打開目錄:
VS Code會檢測Dev Container配置,并提示你在容器中重新打開工作空間。選擇在開發(fā)容器中重新打開。
初次構(gòu)建可能需要幾分鐘。
開發(fā)容器提供了什么
一旦容器開始運(yùn)行,您的環(huán)境包括:
?用于編譯WebAssembly二進(jìn)制文件的wasi-sdk
?CMake, Make和Ninja構(gòu)建工具
?WABT和iwasm用于WebAssembly工具
?預(yù)安裝并配置ATYM命令行
你可以通過在VS Code中打開一個終端來確認(rèn)一切設(shè)置正確:
然后將CLI與您的atym帳戶關(guān)聯(lián):
從現(xiàn)在開始,指南中的所有構(gòu)建命令都應(yīng)該在Dev Container中運(yùn)行,除非另有明確說明。
3. 將樹莓派注冊為設(shè)備
在您的開發(fā)機(jī)器上運(yùn)行:
拯救策略:
?deviceUUID
?pskSecret
獲取你的租戶身份證:
4. 設(shè)置樹莓派(無頭模式)
安裝Raspberry Pi Imager
Flash 64位操作系統(tǒng)
1. 打開Raspberry Pi Imager。
2. 選擇“OS→Raspberry Pi OS(64位)”或“Ubuntu Server(64位)”。
3. 選擇你的SD卡。
配置無頭模式
1. 打開高級設(shè)置(Ctrl+Shift+X或齒輪圖標(biāo))。
2. 啟用:
?SSH
?主機(jī)名
?Wi-Fi(如有需要)
3. 設(shè)置用戶名/密碼、區(qū)域設(shè)置和時區(qū)。
4. 寫出圖像。
將SD卡插入Pi并上電。
5. 在Pi上安裝ATYM Runtime
SSH到你的Pi:
如果mDNS不可用,通過路由器或:
下載官方的aarch64軟件包:
6. 配置運(yùn)行時
啟動和啟用:
7. 構(gòu)建并部署一個“Hello World”容器
文檔:您的第一個atom容器
創(chuàng)建項(xiàng)目
Main.c
CMakeLists.txt
build.yaml
構(gòu)建
部署
8. 有用的命令
設(shè)備
日志
容器
9. 故障排除
運(yùn)行時連接問題
?服務(wù)器:coapgw.prod.atym.io
?端口:5684
?設(shè)備ID格式:UUID@TENANT_ID
?PSK必須與發(fā)布的密鑰匹配
構(gòu)建問題
?確保Dev Container處于活動狀態(tài)
?驗(yàn)證工具鏈路徑
?檢查YAML格式
本文編譯自hackster.io





