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

如何编写Helm函数从复杂Map中获取AWS区域相关值?

实现基于AWS区域动态获取镜像仓库的Helm辅助函数

1. 确认values.yaml中的区域配置结构

先确保values.yaml里的regional_values是字典格式,每个区域作为key,包含对应配置:

regional_values:
  us-east-1:
    repository: "123456789012.dkr.ecr.us-east-1.amazonaws.com/my-app"
    security_group: "sg-123456"
  us-west-2:
    repository: "123456789012.dkr.ecr.us-west-2.amazonaws.com/my-app"
    security_group: "sg-789012"

2. 编写Helm辅助函数(_helpers.tpl)

在templates/_helpers.tpl文件中定义获取区域仓库的函数,用index字典取值语法,并添加基础错误处理:

{{/* 根据传入的AWS区域获取对应镜像仓库地址 */}}
{{- define "myapp.getRegionalRepo" -}}
{{- $targetRegion := .Values.aws_region -}}
{{- $regionConfig := index .Values.regional_values $targetRegion -}}
{{- if not $regionConfig -}}
{{- fail (printf "未找到AWS区域 [%s] 的对应配置" $targetRegion) -}}
{{- end -}}
{{- $regionConfig.repository -}}
{{- end -}}

3. 在模板中调用辅助函数

比如在deployment.yaml的容器镜像配置中使用:

containers:
  - name: my-app
    image: "{{ include "myapp.getRegionalRepo" . }}:{{ .Values.image.tag }}"

4. Helm安装时传入区域参数

执行安装命令时通过--set指定目标AWS区域:

helm install myapp ./my-chart --set aws_region=us-east-1

或者通过自定义values文件传入:

helm install myapp ./my-chart -f regional-config.yaml

regional-config.yaml内容:

aws_region: us-west-2

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 06:06:45