使用ATYM在树莓派上运行WebAssembly容器
扫描二维码
随时随地手机看文章
ATYM是一个轻量级的运行时,用于在Linux边缘设备(如树莓派)上运行WebAssembly应用程序。ATYM不是在系统上部署大型Docker映像或直接运行本机二进制文件,而是运行小型的沙盒程序,这些程序启动速度快,使用很少的内存,并且只有在明确允许的情况下才能访问硬件。
WebAssembly,或WASM,是一种可移植的二进制格式,最初设计用于在web浏览器中安全运行代码。在浏览器之外,WASM提供了强大的隔离、可预测的资源使用和清晰的权限模型。这些特性使其非常适合边缘设备,可靠性和安全性比灵活性更重要。
ATYM在此基础上将每个WebAssembly程序视为一个容器。您只需注册一次设备,将容器远程推送给它,并让ATYM运行时处理执行和隔离。其结果是一个简单的部署模型,没有完整容器堆栈的开销。
在本指南中,您将在无头模式下准备一个Raspberry Pi,安装和配置ATYM运行时服务,设置用于构建WebAssembly容器的开发环境,并部署示例代码。
本指南假设您能够熟练地使用终端,并且对树莓派和Linux有基本的了解。所有步骤都直接基于官方的ATYM和OCRE文档,旨在在第一次运行时工作。
文档引用:
•ATYM文档
•Linux运行时设置
•ATYM命令行设置
•你的第一个ATYM容器
•安装gpio API
•树莓派成像器
1. 需求
硬件
•Raspberry Pi 4或5(需要64位操作系统)
•microSD卡(推荐32gb +)
•网络连接(以太网或Wi-Fi)
软件
•ATYM CLI(安装在开发机器上)
•VS Code + Dev容器
•码头工人
•树莓派成像器
2. 开发环境设置
ATYM提供了一个预配置的开发容器,其中包括构建WebAssembly容器所需的完整工具链。使用Dev Container是推荐的方法,因为它避免了在主机系统上手动安装WASI SDK和构建工具。
先决条件
在继续之前,请确保您拥有:
•Docker已安装并运行
•Docker已安装并运行
•Visual Studio代码
•VS Code开发容器扩展
在您的开发机器上,克隆ATYM工具链存储库:
在VS Code中打开目录:
VS Code会检测Dev Container配置,并提示你在容器中重新打开工作空间。选择在开发容器中重新打开。
初次构建可能需要几分钟。
开发容器提供了什么
一旦容器开始运行,您的环境包括:
•用于编译WebAssembly二进制文件的wasi-sdk
•CMake, Make和Ninja构建工具
•WABT和iwasm用于WebAssembly工具
•预安装并配置ATYM命令行
你可以通过在VS Code中打开一个终端来确认一切设置正确:
然后将CLI与您的atym帐户关联:
从现在开始,指南中的所有构建命令都应该在Dev Container中运行,除非另有明确说明。
3. 将树莓派注册为设备
在您的开发机器上运行:
拯救策略:
•deviceUUID
•pskSecret
获取你的租户身份证:
4. 设置树莓派(无头模式)
安装Raspberry Pi Imager
Flash 64位操作系统
1. 打开Raspberry Pi Imager。
2. 选择“OS→Raspberry Pi OS(64位)”或“Ubuntu Server(64位)”。
3. 选择你的SD卡。
配置无头模式
1. 打开高级设置(Ctrl+Shift+X或齿轮图标)。
2. 启用:
•SSH
•主机名
•Wi-Fi(如有需要)
3. 设置用户名/密码、区域设置和时区。
4. 写出图像。
将SD卡插入Pi并上电。
5. 在Pi上安装ATYM Runtime
SSH到你的Pi:
如果mDNS不可用,通过路由器或:
下载官方的aarch64软件包:
6. 配置运行时
启动和启用:
7. 构建并部署一个“Hello World”容器
文档:您的第一个atom容器
创建项目
Main.c
CMakeLists.txt
build.yaml
构建
部署
8. 有用的命令
设备
日志
容器
9. 故障排除
运行时连接问题
•服务器:coapgw.prod.atym.io
•端口:5684
•设备ID格式:UUID@TENANT_ID
•PSK必须与发布的密钥匹配
构建问题
•确保Dev Container处于活动状态
•验证工具链路径
•检查YAML格式
本文编译自hackster.io





