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

编写获取AWS实例元数据并存入文件的脚本可否用YAML?求分步实现方法

关于是否支持YAML格式编写的说明

YAML本身是数据序列化语言,不具备独立执行能力,无法直接作为可运行的脚本使用。有两种符合YAML相关需求的实现场景是支持的:

  1. 使用Ansible Playbook实现需求,编写的Playbook本身就是YAML格式文件
  2. 使用Shell/Python等常规脚本语言编写执行逻辑,最终将获取到的元数据存储为YAML格式的本地文件
方案1:Shell脚本实现,元数据输出为YAML格式
  • 步骤1:提前在EC2实例中安装依赖工具curl和yq,Amazon Linux 2023系统可直接执行命令dnf install curl yq -y完成安装
  • 步骤2:新建脚本文件get_aws_metadata.sh,写入以下内容:
#!/bin/bash
# 请求元数据服务v2接口的访问令牌
TOKEN=$(curl -s -X PUT "http://169.254.169.254/latest/api/token" -H "X-aws-ec2-metadata-token-ttl-seconds: 21600")
# 拉取实例元数据并转换为YAML格式存储到本地
curl -s -H "X-aws-ec2-metadata-token: $TOKEN" "http://169.254.169.254/latest/dynamic/instance-identity/document" | yq -o yaml > ./ec2_metadata.yaml
  • 步骤3:给脚本添加执行权限:chmod +x get_aws_metadata.sh
  • 步骤4:执行脚本:./get_aws_metadata.sh,执行完成后当前目录生成的ec2_metadata.yaml就是存储了实例元数据的YAML文件
方案2:YAML格式的Ansible Playbook实现

如果你需要编写的文件本身就是YAML格式,可采用该方案:

  • 步骤1:确认控制端和目标EC2实例已安装Ansible,可执行ansible --version验证安装状态
  • 步骤2:新建YAML格式的Playbook文件get_metadata.yml,写入以下内容:
---
- name: 采集AWS EC2实例元数据并存为本地YAML文件
  hosts: localhost
  connection: local
  gather_facts: no
  tasks:
    - name: 获取元数据服务访问令牌
      ansible.builtin.uri:
        url: http://169.254.169.254/latest/api/token
        method: PUT
        headers:
          X-aws-ec2-metadata-token-ttl-seconds: 21600
        return_content: yes
      register: metadata_token

    - name: 拉取实例元数据
      ansible.builtin.uri:
        url: http://169.254.169.254/latest/dynamic/instance-identity/document
        headers:
          X-aws-ec2-metadata-token: "{{ metadata_token.content }}"
        return_content: yes
      register: instance_metadata

    - name: 写入元数据到本地YAML文件
      ansible.builtin.copy:
        content: "{{ instance_metadata.json | to_nice_yaml(indent=2) }}"
        dest: ./ec2_metadata.yaml
  • 步骤3:执行Playbook:ansible-playbook get_metadata.yml
  • 步骤4:执行完成后即可在当前目录查看生成的ec2_metadata.yaml元数据文件

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 05:45:01