如何在AWS Pixel Streaming部署中自动为config.json填充PublicIp值
AWS Pixel Streaming config.json PublicIp自动填充方案
方案1:EC2启动模板配置用户数据自动修改(批量启动50台实例推荐)
该方案无需提前修改自定义AMI,仅需在启动模板中配置一次即可适配所有批量启动的实例,每台实例首次启动时会自动执行逻辑完成字段填充:
Linux 实例用户数据脚本(Ubuntu/Debian 系)
#!/bin/bash # 安装JSON处理工具jq apt update && apt install -y jq # 从EC2元数据服务获取当前实例公网IP INSTANCE_PUBLIC_IP=$(curl -s http://169.254.169.254/latest/meta-data/public-ipv4) # 替换为你实际的config.json存放路径 CONFIG_PATH="/path/to/your/config.json" # 写入PublicIp字段 jq --arg ip "$INSTANCE_PUBLIC_IP" '.PublicIp = $ip' $CONFIG_PATH > temp.json && mv temp.json $CONFIG_PATH # 按需添加Pixel Streaming服务重启命令,示例: # systemctl restart pixel-streaming.service
如果使用CentOS/RHEL系系统,将安装jq的命令替换为yum install -y jq即可。
Windows 实例用户数据脚本
# 从EC2元数据服务获取当前实例公网IP $publicIp = Invoke-RestMethod -Uri http://169.254.169.254/latest/meta-data/public-ipv4 # 替换为你实际的config.json存放路径 $configPath = "C:\path\to\your\config.json" # 修改PublicIp字段 $config = Get-Content $configPath | ConvertFrom-Json $config.PublicIp = $publicIp $config | ConvertTo-Json -Depth 10 | Out-File $configPath -Encoding utf8 # 按需添加Pixel Streaming服务重启命令
方案2:自定义AMI内置自启逻辑
如果你已经把Pixel Streaming运行环境打包成了自定义AMI,可以把上述脚本逻辑添加到系统开机自启项中,实例每次开机都会自动更新PublicIp字段,适合实例频繁启停、公网IP会动态变更的场景。
注意事项
- 默认EC2实例安全组出站规则允许访问元数据服务地址
169.254.169.254,无特殊修改无需额外配置 - 若实例绑定了弹性公网IP(EIP),元数据返回的IP即为绑定的EIP,无需额外调整逻辑
- 若实例部署在私有子网通过NAT网关出网,需获取公网出口IP时,将元数据查询地址替换为
curl -s https://api.ipify.org(Linux)或Invoke-RestMethod -Uri https://api.ipify.org(Windows)即可
内容的提问来源于stack exchange,提问作者joyceanblue
相关产品推荐
相关产品推荐

