Skip to content
LangSmith 文档版本 跟随上游 源快照 035321d1 更新于 2026-10-18

AWS Terraform 变量参考

AWS EKS 上自托管 LangSmith 的 Terraform 变量完整参考。

完整参考 AWS Terraform 模块公开的每个输入变量。在首次填写 terraform.tfvars 或调整现有部署时使用它。

变量分为两类:

  • 非敏感(区域、规模、功能标志):在 infra/terraform.tfvars 中设置。
  • 敏感(许可证密钥、密码、加密密钥):通过 infra/scripts/setup-env.sh 获取,该脚本将它们写入 AWS SSM Parameter Store;然后 External Secrets Operator 将它们同步到集群中。

有关端到端安装,请参阅部署指南。有关模块如何组合在一起,请参阅架构参考。

核心

变量默认值必填描述
name_prefix—是所有资源名称的前缀。最多 15 个字符:小写字母、数字和连字符,以字母开头。格式:{prefix}-{environment}-{resource}。
environmentdev否环境标签:dev、staging、prod、test 或 uat。
regionus-west-2否所有资源的 AWS 区域。
owner""否负责部署的团队或个人。作为标签应用。
cost_center""否成本中心或计费标签。非空时作为标签应用。
tags{}否应用于所有资源的其他标签。

网络

变量默认值必填描述
create_vpctrue否创建新的 VPC。设置为 false 以使用现有 VPC。
vpc_idnull当 !create_vpc 时现有 VPC ID。
private_subnets[]当 !create_vpc 时现有私有子网 ID。
public_subnets[]当 !create_vpc 时现有公有子网 ID。
vpc_cidr_blocknull当 !create_vpc 时现有 VPC CIDR 块。
vpc_private_subnets[]否当 create_vpc = true 时覆盖私有子网的 CIDR。空值使用模块默认值。
vpc_public_subnets[]否当 create_vpc = true 时覆盖公有子网的 CIDR。空值使用模块默认值。

EKS

变量默认值必填描述
enable_public_eks_clustertrue否启用公共 EKS API 端点。设置为 false 以使用私有集群,并启用 create_bastion 以通过 SSM 从堡垒机运行 Terraform 和 Helm。
eks_public_access_cidrs["0.0.0.0/0"]否允许访问公共 EKS API 端点的 CIDR。限制为公司 VPN 出口 CIDR 以锁定访问。
eks_cluster_version1.33否EKS Kubernetes 版本。
eks_managed_node_group_defaults{ami_type = "AL2023_x86_64_STANDARD"}否应用于所有托管节点组的默认配置。
eks_managed_node_groups一个 default 组:m5.4xlarge,最小 3 / 最大 10否托管节点组定义。省略时 desired_size 默认为 min_size。
create_gp3_storage_classtrue否创建 gp3 并将其设置为默认 StorageClass,启用卷扩展。
eks_cluster_enabled_log_types["api", "audit", "authenticator", "controllerManager", "scheduler"]否发送到 CloudWatch 的 EKS 控制平面日志类型。设置为 [] 以禁用。
eks_addons{}否EKS 托管附加组件配置(coredns、kube-proxy、vpc-cni 等)。
create_langsmith_irsa_roletrue否为 LangSmith pod 创建 IRSA 角色(S3 访问)。

PostgreSQL (RDS)

变量默认值必填描述
postgres_sourceexternal否external(具有私有访问权限的 RDS)或 in-cluster(通过 Helm 部署)。
postgres_instance_typedb.t3.large否RDS 实例类。
postgres_storage_gb10否初始 RDS 存储大小(GB)。
postgres_max_storage_gb100否最大 RDS 存储大小(GB,自动扩缩容)。
postgres_usernamelangsmith否RDS 数据库用户名。
postgres_engine_version16否PostgreSQL 引擎版本。PG 14 将于 2026 年 11 月达到 EOL;新部署建议使用 16。
postgres_password""当 external 时RDS 密码。通过 TF_VAR_postgres_password 设置,或由 setup-env.sh 自动生成并存储在 SSM 中。
postgres_iam_database_authentication_enabledtrue否在 RDS 上启用 IAM 数据库身份验证。
postgres_iam_database_usernull否用于 IAM 身份验证的数据库用户。必须在 PostgreSQL 中存在,并具有 GRANT rds_iam TO <user>。
postgres_deletion_protectiontrue否防止意外删除 RDS。开发/测试环境可设置为 false。
postgres_backup_retention_period7否保留自动 RDS 备份的天数。0 禁用备份。

Redis (ElastiCache)

变量默认值必填描述
redis_sourceexternal否external(具有私有访问权限的 ElastiCache)或 in-cluster(通过 Helm 部署)。
redis_instance_typecache.m6g.xlarge否ElastiCache 节点类型。
redis_auth_token""当 external 时ElastiCache 认证 token。由 setup-env.sh 自动生成并存储在 SSM 中。通过 TF_VAR_redis_auth_token 设置。

S3

变量默认值必填描述
s3_ttl_enabledtrue否启用 S3 生命周期规则以使追踪 blob 过期。
s3_ttl_short_days14否短生命周期对象(ttl_s/ 前缀)过期前的天数。
s3_ttl_long_days400否长生命周期对象(ttl_l/ 前缀)过期前的天数。
s3_kms_key_arn""否用于 S3 加密的 KMS CMK ARN。空值使用 SSE-S3 (AES256)。
s3_versioning_enabledfalse否启用 S3 桶版本控制。由于保留先前版本,会增加存储成本。

TLS 和 DNS

变量默认值必填描述
tls_certificate_sourceacm否TLS 来源:acm、letsencrypt(通过 ALB 解决的 cert-manager HTTP-01 ACME)或 none。对于通过 Route 53(集群内网关)的 DNS-01 挑战,请改用 create_cert_manager_irsa;二者互斥。
acm_certificate_arn""当 acm 时现有 ACM 证书 ARN。
letsencrypt_email""当 letsencrypt 时Let's Encrypt ACME 注册邮箱。
langsmith_domain""否自定义域名。设置后(且 acm_certificate_arn 为空),会配置 Route 53 托管区域、ACM 证书和别名记录。空值使用 ALB 主机名。
dns_include_wildcard_sanfalse否向 ACM 证书添加通配符 SAN(*.<langsmith_domain>)。子域上的 HTTPS 需要此项。
langsmith_namespacelangsmith否LangSmith 的 Kubernetes 命名空间。

Ingress

变量默认值必填描述
alb_schemeinternet-facing否ALB 方案:internet-facing(公有子网)或 internal(私有子网,可通过 VPN、对等连接或 PrivateLink 访问)。
alb_allowed_cidr_blocks["0.0.0.0/0"]否允许通过 HTTP/HTTPS 访问 ALB 的 CIDR。对于受限访问部署,限制为 VPN 或办公 CIDR。
alb_access_logs_enabledfalse否启用 ALB 访问日志,写入专用 S3 桶。
enable_envoy_gatewayfalse否安装 Envoy Gateway(Kubernetes Gateway API)而不是 ALB Ingress。多命名空间数据平面部署需要此项。
enable_nginx_ingressfalse否安装 NGINX ingress controller。ALB 通过 TargetGroupBinding 将流量转发到 NGINX controller pod。
enable_istio_gatewayfalse否在节点安全组上打开端口 15017,用于 istiod sidecar-injector webhook。在 EKS 上运行 Istio 时需要此项。
istio_nlb_schemeinternet-facing否Istio ingress gateway NLB 的方案:internet-facing 或 internal。由设置向导写入 tfvars,但尚未被任何模块使用;Istio 路径目前使用 ALB TargetGroupBinding 后面的 ClusterIP 服务。
create_cert_manager_irsafalse否为通过 Route 53 的 cert-manager DNS-01 挑战创建 IRSA 角色。使用 Istio Gateway 的 Let's Encrypt 需要此项。应用后运行 make tls。
cert_manager_hosted_zone_id""当 create_cert_manager_irsa 时用于 cert-manager DNS-01 TXT 记录的 Route 53 托管区域 ID。

ClickHouse

变量默认值必填描述
clickhouse_sourcein-cluster否in-cluster(仅开发/POC)或 external(LangChain 托管 ClickHouse,生产环境推荐)。

Bastion(私有集群)

变量默认值必填描述
create_bastionfalse否在公有子网中创建 EC2 堡垒机,用于通过 SSM Session Manager 或 SSH 访问私有集群。
bastion_instance_typet3.micro否堡垒机的 EC2 实例类型。
bastion_key_namenull否用于 SSH 的 EC2 密钥对。空值仅使用 SSM Session Manager。
bastion_enable_sshfalse否在堡垒机安全组上打开端口 22。
bastion_ssh_allowed_cidrs[]否允许 SSH 到堡垒机的 CIDR。仅在 bastion_enable_ssh = true 时使用。
bastion_root_volume_size_gb20否堡垒机根 EBS 卷大小(GB)。

安全和审计

变量默认值必填描述
create_cloudtrailfalse否创建 CloudTrail 追踪,将 AWS API 调用记录到 S3。如果已存在账户级或组织级追踪,请跳过。
cloudtrail_multi_regiontrue否记录所有区域的 API 调用。
cloudtrail_log_retention_days365否在 S3 中保留 CloudTrail 日志的天数。0 表示无限期保留。
create_waffalse否将 WAFv2 Web ACL 附加到 ALB(AWS 托管规则,用于 OWASP Top 10、IP 信誉、错误输入)。成本:基础费用约 $8 到 $10/月。
create_firewallfalse否部署 AWS Network Firewall 以进行基于 FQDN 的出口过滤。需要 create_vpc = true。成本:每个端点约 $0.395/hr 加上 $0.065/GB。
firewall_allowed_fqdns["beacon.langchain.com"]否当 create_firewall = true 时允许出站流量的域。会根据 TLS SNI 和 HTTP Host 标头进行匹配。所有其他目标都会被丢弃。
firewall_subnet_cidr10.0.64.0/21否防火墙子网的 CIDR。必须在 VPC CIDR 内,且不得与私有或公有子网重叠。

规模和功能标志

sizing_profile 和大多数 enable_* 标志由 init-values.sh 和 deploy.sh 读取;Terraform 不会直接对它们执行操作。它们会影响脚本生成的 Helm overlay 文件。三个独立标志(enable_fleet、enable_standalone_polly、enable_standalone_insights)是例外:Terraform 会读取它们以创建数据库初始化 Job 和 Kubernetes secret,并对其所需的外部 Postgres 和 Redis 输入强制执行计划时前置条件。

变量默认值必填描述
sizing_profiledefault否Helm 规模:production、production-large、dev、minimum 或 default。
enable_deploymentsfalse否启用 LangSmith Deployment(listener、operator、host-backend)。需要 Deployments 许可证权益。
enable_agent_builderfalse否启用 Agent Builder。需要 enable_deployments = true 和 Agent Builder 权益。
enable_insightsfalse否启用 Insights(ClickHouse 支持的分析)。需要 Insights 权益。
enable_pollyfalse否启用 Polly(AI 评估和监控)。需要 enable_deployments = true 和 Polly 权益。
enable_usage_telemetryfalse否启用扩展使用遥测报告。
enable_fleetfalse否启用 Fleet 独立部署(chart v0.15+)。需要 enable_deployments = true 以及外部 Postgres 和 Redis。
enable_standalone_pollyfalse否启用 Polly 独立部署(chart v0.15+)。不需要 enable_deployments。需要外部 Postgres 和 Redis。
enable_standalone_insightsfalse否启用 Insights 独立部署(chart v0.15+)。不需要 enable_deployments。需要外部 Postgres 和 Redis。

敏感值(使用 setup-env.sh 设置)

获取 infra/scripts/setup-env.sh 会将这些值写入 AWS SSM Parameter Store。External Secrets Operator 将它们作为 Kubernetes secret 同步到集群中。这些不是声明的 Terraform 变量,不应放在 terraform.tfvars 中;只能通过 SSM 设置。

变量描述
langsmith_license_keyLangSmith 企业许可证密钥。
langsmith_admin_password初始组织管理员密码。至少 12 个字符,包含小写、大写和符号。
langsmith_api_key_salt用于哈希 API 密钥的盐。首次部署后必须保持稳定。
langsmith_jwt_secret用于 Basic Auth 会话的 JWT 密钥。必须保持稳定。
langsmith_deployments_encryption_key用于 LangSmith Deployments 的 Fernet 密钥。绝不能更改。
langsmith_agent_builder_encryption_key用于 Agent Builder 的 Fernet 密钥。绝不能更改。
langsmith_insights_encryption_key用于 Insights 的 Fernet 密钥。绝不能更改。
langsmith_polly_encryption_key用于 Polly 的 Fernet 密钥。绝不能更改。

BytesRouter 是社区翻译站点,所有译文仅供参考,一切以官方英文原文为准。