You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将AWS CodeCommit提交自动部署到接入Systems Manager的树莓派集群

需求可行性说明

该需求完全可以通过AWS原生服务实现,核心用到的服务组合为:CodeCommit(代码仓库) + CodePipeline(CI/CD流程编排) + CodeDeploy(部署执行) + AWS Systems Manager(本地设备纳管),完美适配「预发布单节点测试+全集群批量发布」的灰度发布流程。

完整操作指南
  • 树莓派SSM代理配置校验
    所有树莓派必须完成SSM高级激活(本地非AWS设备不可使用普通EC2实例的IAM角色绑定流程),运行命令sudo systemctl status amazon-ssm-agent确认SSM Agent处于running状态,且在Fleet Manager中实例状态显示为在线。
  • CodeCommit仓库配置
    仓库根目录必须存放CodeDeploy要求的appspec.yml文件,明确定义脚本部署路径、部署前后执行的钩子命令,适配树莓派Ubuntu 20.04系统的路径权限规则。
  • CodeDeploy应用与部署组配置
    新建CodeDeploy应用时,计算平台必须选择「本地/非EC2本地实例」,不可使用默认的EC2计算平台。部署组配置阶段:
    • 环境配置勾选「本地实例」
    • 标签组选择SSM托管实例的自定义标签,提前为预发布单节点、生产集群配置不同的标签做区分(例如预发布加env:staging标签,生产加env:prod标签)
    • 服务角色必须附加AmazonEC2RoleforAWSCodeDeploy、AmazonSSMManagedInstanceCore相关权限策略,额外补充SSM本地实例的访问权限
  • CodePipeline流程编排
    分4个阶段配置全流程:
    1. 源阶段:绑定目标CodeCommit仓库分支,触发方式选择代码提交自动触发
    2. 预发布部署阶段:绑定预发布环境的CodeDeploy部署组,部署目标为单台预发布树莓派
    3. 人工审批阶段:预发布部署完成后添加人工审批节点,测试通过后再执行下一阶段
    4. 生产部署阶段:绑定生产集群的CodeDeploy部署组,批量部署到所有生产环境树莓派
  • 权限补充配置
    给所有树莓派对应的SSM激活IAM角色附加AWSCodeDeployDeployerAccess和AmazonSSMManagedInstanceCore权限策略,确保CodeDeploy可以通过SSM正常访问本地设备。
报错解决方案

你遇到的报错核心原因是CodeDeploy配置与本地实例的纳管属性不匹配,对应排查步骤如下:

The deployment failed because no instances were found for your deployment group. Check your deployment group settings to make sure the tags for your Amazon EC2 instances or Auto Scaling groups correctly identify the instances you want to deploy to, and then try again.

  • 首先校验CodeDeploy应用的计算平台:如果创建应用时选择了默认的「EC2」计算平台,将无法识别SSM纳管的本地非EC2实例,需删除现有应用,重新创建时选择「本地/非EC2」计算平台
  • 其次检查实例标签分类:SSM本地实例的标签存储在SSM服务中,和EC2服务的标签体系隔离,部署组配置标签时要选择「AWS Systems Manager 托管实例标签」分类,不要选择EC2实例标签分类
  • 最后校验实例在线状态:在Fleet Manager中确认对应标签的树莓派状态为「在线」,SSM Agent版本高于2.3.274.0,满足CodeDeploy的调用要求

内容的提问来源于stack exchange,提问作者ZPMMaker

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 09:00:01