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

如何在执行期间获取AWS CodeBuild构建的可用区?

在AWS CodeBuild构建期间获取可用区的方法

这完全可行,连接到VPC的CodeBuild构建实例可以通过以下方式获取所在的可用区:

1. 直接调用EC2元数据服务(IMDS)

CodeBuild构建实例本质是EC2实例,因此可以通过EC2元数据服务获取可用区信息。推荐使用更安全的IMDSv2,执行以下命令即可返回可用区:

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" http://169.254.169.254/latest/meta-data/placement/availability-zone

如果仍在使用IMDSv1(不推荐),可以用简化命令:

curl http://169.254.169.254/latest/meta-data/placement/availability-zone

注意:默认情况下,连接VPC的CodeBuild项目允许访问IMDS,除非你通过安全组、NACL或VPC端点策略做了限制。

2. 存入自定义环境变量供后续步骤使用

如果构建过程中需要多次引用可用区,可以先将获取到的信息存入自定义环境变量:

export BUILD_AVAILABILITY_ZONE=$(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" http://169.254.169.254/latest/meta-data/placement/availability-zone)

之后在构建脚本的后续步骤中,就可以通过$BUILD_AVAILABILITY_ZONE直接调用该值。

额外注意事项

  • 若CodeBuild使用私有子网,需确保子网路由表允许访问169.254.169.254,或配置了EC2元数据服务的VPC端点。
  • AWS官方建议优先使用IMDSv2以提升安全性,避免潜在的元数据泄露风险。

内容的提问来源于stack exchange,提问作者Ruben Silva

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 07:55:21