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

如何在Boto3的get_parameters()中传入K8版本变量获取EKS优化AMI ID?

在Boto3中传入K8版本变量获取EKS优化AMI ID

可以实现,以下是几种常用的具体方法:

方法1:使用Python f-string(推荐)

f-string是Python 3.6+支持的字符串格式化方式,简洁直观,适合直接嵌入变量:

import boto3

ssm = boto3.client('ssm')
eks_version = "1.21"  # 可替换为传入的${EKS_VERSION}变量

# 拼接SSM参数路径
ami_param_path = f"/aws/service/eks/optimized-ami/{eks_version}/amazon-linux-2/recommended/image_id"
# 调用SSM获取参数
response = ssm.get_parameters(Names=[ami_param_path])
# 提取AMI ID
ami_id = response['Parameters'][0]['Value']

方法2:使用str.format()方法

兼容Python 2.7及以上版本,适合版本较低的运行环境:

import boto3

ssm = boto3.client('ssm')
eks_version = "1.21"

ami_param_path = "/aws/service/eks/optimized-ami/{}/amazon-linux-2/recommended/image_id".format(eks_version)
response = ssm.get_parameters(Names=[ami_param_path])
ami_id = response['Parameters'][0]['Value']

方法3:字符串直接拼接

最基础的字符串拼接方式,逻辑清晰:

import boto3

ssm = boto3.client('ssm')
eks_version = "1.21"

ami_param_path = "/aws/service/eks/optimized-ami/" + eks_version + "/amazon-linux-2/recommended/image_id"
response = ssm.get_parameters(Names=[ami_param_path])
ami_id = response['Parameters'][0]['Value']

注意事项

  • 确保Lambda的执行角色拥有ssm:GetParameters权限,否则会触发权限错误。
  • 传入的K8版本格式要与SSM参数路径匹配,比如使用1.21而非带补丁号的1.21.14,EKS优化AMI的SSM参数路径仅使用主版本号。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 07:05:20