与实例用户数据配合使用 - Amazon Elastic Compute Cloud

与实例用户数据配合使用

与实例用户数据配合使用时,请注意以下内容:

  • 用户数据必须采用 base64 编码。Amazon EC2 控制台可以为您执行 base64 编码或接受 base64 编码的输入。

  • 用户数据在进行 base64 编码之前的原始格式的大小限制为 16 KB。长度为 n 的字符串在进行 base64 编码之后的大小为 ceil(n/3)*4。

  • 在检索用户数据时,必须对其进行 base64 解码。如果您使用实例元数据或控制台检索数据,则会自动对数据进行解码。

  • 用户数据会被视为非透明数据;您提供什么数据您就会得到什么数据。由实例对其进行解释。

  • 如果您停止实例,修改用户数据,然后启动实例,则在启动实例时,不会执行更新后的用户数据。

启动时指定实例用户数据

您可在启动实例时指定用户数据。有关更多信息,请参阅 使用启动实例向导启动实例启动时在 Linux 实例上运行命令

修改实例用户数据

如果根卷是 EBS 卷,则可以修改处于停止状态的实例的用户数据。有关更多信息,请参阅 查看和更新实例用户数据

检索实例用户数据

要从正在运行的实例中检索用户数据,请使用以下 URI。

http://169.254.169.254/latest/user-data

请求用户数据时,按原样返回数据 (内容类型 application/octet-stream)。

该示例返回以逗号分隔文本形式提供的用户数据。

IMDSv2
[ec2-user ~]$ TOKEN=`curl -X PUT "http://169.254.169.254/latest/api/token" -H "X-aws-ec2-metadata-token-ttl-seconds: 21600"` \ && curl -H "X-aws-ec2-metadata-token: $TOKEN" -v http://169.254.169.254/latest/user-data 1234,john,reboot,true | 4512,richard, | 173,,,
IMDSv1
[ec2-user ~]$ curl http://169.254.169.254/latest/user-data 1234,john,reboot,true | 4512,richard, | 173,,,

该示例返回以脚本形式提供的用户数据。

IMDSv2
[ec2-user ~]$ TOKEN=`curl -X PUT "http://169.254.169.254/latest/api/token" -H "X-aws-ec2-metadata-token-ttl-seconds: 21600"` \ && curl -H "X-aws-ec2-metadata-token: $TOKEN" -v http://169.254.169.254/latest/user-data #!/bin/bash yum update -y service httpd start chkconfig httpd on
IMDSv1
[ec2-user ~]$ curl http://169.254.169.254/latest/user-data #!/bin/bash yum update -y service httpd start chkconfig httpd on

要从您自己的计算机检索实例的用户数据,请参阅用户数据和 AWS CLI