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

如何在WordPress站点动态显示EC2实例ID?

实现WordPress页面显示EC2实例ID的方法

当然可以实现,下面是几种实用的方案:

方案1:在WordPress模板文件中直接嵌入代码

WordPress基于PHP运行,你可以直接在对应页面的模板文件(比如page-home.php,如果是自定义页面模板)里添加PHP代码来获取实例ID:

<?php
// 获取EC2实例ID
$instance_id = file_get_contents('http://169.254.169.254/latest/meta-data/instance-id');
// 输出实例ID,esc_html()用于避免XSS风险
echo '<p>当前运行实例ID:' . esc_html($instance_id) . '</p>';
?>

把这段代码放到你想显示实例ID的位置即可。

方案2:创建自定义短代码(更灵活)

如果不想修改模板文件,或者需要在页面编辑器里随时插入实例ID,可以创建一个WordPress短代码:

  1. 打开主题的functions.php文件,添加以下代码:
function display_ec2_instance_id() {
    // 用@屏蔽可能的报错,避免影响页面加载
    $instance_id = @file_get_contents('http://169.254.169.254/latest/meta-data/instance-id');
    if ($instance_id) {
        return '<p>当前实例ID:' . esc_html($instance_id) . '</p>';
    } else {
        return '<p>无法获取实例ID</p>';
    }
}
add_shortcode('ec2_instance_id', 'display_ec2_instance_id');
  1. 保存后,在WordPress后台编辑home页面,在内容里插入短代码[ec2_instance_id],更新页面即可看到实例ID。

方案3:静态HTML页面的处理(如果home.html是静态文件)

如果你的home.html是独立的静态文件,浏览器无法直接访问EC2元数据地址(该地址仅EC2实例内部可访问),需要通过后端代理:

  1. 在WordPress目录下创建一个get-instance-id.php文件,内容如下:
<?php
header('Content-Type: text/plain');
$instance_id = file_get_contents('http://169.254.169.254/latest/meta-data/instance-id');
echo esc_html($instance_id);
?>
  1. 在home.html中添加JavaScript代码,调用这个PHP接口获取实例ID:
<script>
fetch('/get-instance-id.php')
    .then(response => response.text())
    .then(data => {
        // 找到要显示实例ID的元素,需提前给元素添加id="instance-id"
        document.getElementById('instance-id').textContent = '当前实例ID:' + data;
    })
    .catch(error => {
        document.getElementById('instance-id').textContent = '无法获取实例ID';
    });
</script>

然后在HTML页面的对应位置添加<span id="instance-id"></span>即可。

注意:默认情况下EC2实例允许访问元数据服务,若你修改过IAM角色或网络设置,需确保实例有对应权限。

内容的提问来源于stack exchange,提问作者J. Patwary

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 18:01:15