实例自定义数据为您提供实例自定义启动行为及传入数据的功能。您可以在创建实例(RunInstances)时指定实例自定义数据,为您的实例自定义启动行为。例如,自动获取软件资源包、开启服务、打印日志、安装依赖包、初始化Web服务环境等其他配置实例环境的操作。实例自定义数据主要通过不同类型的自定义脚本实现。实例自定义数据也可以作为普通数据,将某些信息传入实例中,您可以在实例中引用这些数据。
配置实例自定义数据时,您需要注意:
只支持专有网络VPC类型实例。
实例自定义数据需要Base64编码后传入,且编码前的自定义数据不能超过16 KB。
实例必须使用系统镜像或继承于系统镜像的自定义镜像,且只支持下列操作系统:
Windows实例 | Linux实例 |
---|---|
Windows Server 2016 64位 Windows Server 2012 64位 Windows Server 2008 64位 | CentOS Ubuntu SUSE Linux Enterprise OpenSUSE Debian Aliyun Linux |
实例开始运行时(Running),系统首先以管理员或者root权限运行实例自定义数据,其次运行初始化或 /etc/init
信息。
修改实例自定义数据后,是否要重新运行修改过的自定义数据取决于脚本类型和模块类型。例如:
如果您通过Shell脚本配置自定义数据,如 User-Data 脚本,我们不会运行修改后的自定义数据。
如果自定义数据配置的是类似Byobu、Set Hostname和Set Passwords之类的模块,我们不会运行修改后的自定义数据。
如果自定义数据配置的是类似bootcmd、update_etc_hosts和yum_add_repo之类的模块,我们会运行修改后的自定义数据。
更多详情,请参见cloud-init文档 Modules,并关注模块频率(Module Frequency)。
假设您的自定义数据开发环境为Windows计算机,使用 Upstart Job 脚本为您的CentOS实例设置自定义数据。
说明 | |
第一行必须满足实例自定义脚本的格式要求,比如 #!/bin/sh、#cloud-config、#upstart-job、[bat] 和 [powershell]。更多详情,请参见 Linux实例自定义数据 和 Windows实例自定义数据。 |
创建实例时,选择 使用文本形式 输入 自定义数据。若您的自定义数据已经过Base64加密,勾选 输入已采用 base64 编码。
从上面的结果中您可以看到,在实例的 /etc/init 文件夹中生成了一个 part-001.conf 启动任务文件。
相关API:RunInstances + 参数 UserData
您可以通过 100.100.100.200
服务器查看实例自定义数据。
curl http://100.100.100.200/latest/user-data
查看Linux实例自定义数据。Invoke-RestMethod http://100.100.100.200/latest/user-data/
查看Windows实例自定义数据。相关API:DescribeUserdata
修改自定义数据之前,您必须停止实例。对于按量付费 VPC 类型实例,若您修改自定义数据后需要立即启动实例时,建议您关闭停机不收费选项。
相关API:ModifyInstanceAttribute + 参数 UserData
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。