You need to enable JavaScript to run this app. 如何在SAM YAML模板中导入已存在的应用型负载均衡器作为现有资源?
优惠活动
大模型
产品
解决方案
定价
更多

如何在SAM YAML模板中导入已存在的应用型负载均衡器作为现有资源?

SAM 模板导入现有应用型负载均衡器配置指南

核心原理

  • SAM 是基于 CloudFormation 实现的扩展 Transform,完全兼容原生 CloudFormation 的导入现有资源能力,过往 issue 提到的不支持是早期版本的工具链限制,当前版本可正常使用。
  • 导入的核心约束:模板中定义的外部资源属性必须和现有资源的实际配置完全匹配,否则 CloudFormation 会触发资源更新操作,影响独立栈部署的 ALB。

模板配置要点

  • 修改 ALB 对应的资源定义:
    • Properties 块的内容必须和现有 ALB 的实际导出配置完全一致,不得保留和现有配置不符的自定义参数。
    • 必须添加 DeletionPolicy: Retain,避免当前栈删除时误销毁独立部署的 ALB。
    • 额外添加 UpdateReplacePolicy: Retain,防止资源替换类操作误修改外部 ALB 配置。
  • 配置 API Gateway 路由集成:
    在 AWS::Serverless::HttpApi 资源中直接内嵌路由规则,引用模板内的 LoadBalancer 资源属性,无需硬编码 ALB 的域名或 ARN。

完整可参考模板

AWSTemplateFormatVersion: 2010-09-09
Transform: AWS::Serverless-2016-10-31
Description: Sample SAM Template
Globals:
  Function:
    Timeout: 30
Resources:
  BoardHttpApi:
    Type: AWS::Serverless::HttpApi
    Properties:
      StageName: Test
      CorsConfiguration: True
      # 替换为你的实际路由配置
      Routes:
        /your-custom-path:
          Target: !Sub "https://${LoadBalancer.DNSName}"
          Method: GET
          IntegrationType: HTTP_PROXY
  LoadBalancer:
    Type: AWS::ElasticLoadBalancingV2::LoadBalancer
    # 新增保留策略
    DeletionPolicy: Retain
    UpdateReplacePolicy: Retain
    Properties:
      # 以下属性必须与现有ALB的实际配置完全匹配
      Type: application
      Scheme: internet-facing

导入操作流程

  • 执行 sam build 构建项目,再执行 sam package 将模板打包上传到 S3,生成标准 CloudFormation 可识别的模板文件。
  • 进入 CloudFormation 控制台,选择「导入现有资源」,上传打包后的模板。
  • 在资源映射环节,将模板中逻辑 ID 为 LoadBalancer 的资源,关联到现有 ALB 的物理 ARN。
  • 按照向导完成校验与导入,导入完成后该 ALB 即纳入当前 SAM 栈的资源清单管理,且不会被当前栈的删除、更新操作误修改或销毁。

注意:如果 ALB 为 VPC 内部部署的非公网类型,需额外配置 VpcLink 资源,在 HTTP 集成中关联对应 VpcLink 的 ID,保证 API Gateway 可正常访问 ALB。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.11.11 14:36:02