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

AWS Copilot插件文件中如何引用VPC及其他环境资源?

AWS Copilot 插件资源引用问题解答

1. 引用VPC ID的方法

Copilot部署环境时会自动创建VPC,并将其ID以导出变量的形式暴露,你可以在插件的CloudFormation模板中通过!ImportValue引用该变量:

VpcId: !ImportValue ${COPILOT_ENV_NAME}-VpcId

其中COPILOT_ENV_NAME是Copilot内置的环境名称参数,会自动替换为当前部署的环境名。

修改后的安全组脚本示例:

SGPostgresDb:
  Type: AWS::EC2::SecurityGroup
  Properties:
    GroupName: sg-pgdb
    GroupDescription: Allows only postgres traffic
    VpcId: !ImportValue ${COPILOT_ENV_NAME}-VpcId
    SecurityGroupIngress:
      - IpProtocol: tcp
        FromPort: 5432
        ToPort: 5432
        CidrIp: 0.0.0.0/0

2. 引用manifest.yml中定义的元素

Copilot会将manifest.yml中的配置自动注入到环境栈的CloudFormation参数中,直接用!Ref即可引用对应参数:

  • 环境名称:直接引用内置参数COPILOT_ENV_NAME
  • 自定义参数:如果在manifest.yml中定义了parameters或variables,比如:
    # manifest.yml
    parameters:
      DBInstanceClass: db.t3.micro
    
    在插件模板中可以用!Ref DBInstanceClass引用该值
  • 其他manifest配置:比如VPC的CIDR块等,Copilot也会生成对应参数,可通过!Ref直接调用

3. 引用Copilot自动创建的其他资源

copilot env deploy创建的互联网网关、子网、路由表等资源,Copilot都会生成对应的导出变量,用!ImportValue即可引用:

  • 公网子网ID列表:!ImportValue ${COPILOT_ENV_NAME}-PublicSubnetIDs
  • 私有子网ID列表:!ImportValue ${COPILOT_ENV_NAME}-PrivateSubnetIDs
  • 互联网网关:!ImportValue ${COPILOT_ENV_NAME}-InternetGateway
  • 公网路由表:!ImportValue ${COPILOT_ENV_NAME}-PublicRouteTable
  • 私有路由表:!ImportValue ${COPILOT_ENV_NAME}-PrivateRouteTable

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 18:37:38