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

AWS CloudFormation部署EC2实例时UserData未执行无法安装软件求助

CloudFormation模板UserData执行失败问题排查

1. 首要问题:UserData语法嵌套错误

你当前的UserData块写法规避了内置函数的解析,Fn::Base64后的|块会将内部的!Sub当成普通文本处理,最终传入实例的UserData第一行是!Sub |,而非可执行的bash脚本,系统无法识别shebang行,直接跳过脚本执行。
修正后的UserData语法参考:

UserData: 
  Fn::Base64: !Sub |
    #!/bin/bash -xe
    # 先更新yum源避免安装失败
    yum update -y
    # 安装nodejs、你提到的缺失的nginx
    yum install nginx nodejs -y
    # 下载kubectl后添加执行权限并移动到系统PATH目录
    curl -o kubectl https://amazon-eks.s3.us-west-2.amazonaws.com/1.21.2/2021-07-05/bin/linux/amd64/kubectl
    chmod +x ./kubectl
    mv ./kubectl /usr/local/bin/kubectl
    # 可选:启动nginx并设置开机自启
    systemctl start nginx
    systemctl enable nginx

2. 其他遗漏配置问题

  • 你声明了RootInstanceProfile实例配置,但没有关联到EC2实例上,需要在WebAppInstance的Properties块中添加如下配置:
    IamInstanceProfile: !Ref RootInstanceProfile
    
  • 原脚本中仅写了kubectl的下载逻辑,缺少执行权限配置和路径移动步骤,就算脚本执行了也无法正常调用kubectl命令。
  • 原脚本中没有安装nginx的相关命令,自然不会自动安装nginx。

3. 通用排查方法

如果后续仍有执行问题,可登录实例后查看日志文件/var/log/cloud-init-output.log,里面会完整记录UserData脚本的执行输出和报错信息。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 02:06:10