当前位置: 首页 > news >正文

如何为goFaas配置自定义域名:Route53与API Gateway完整配置

如何为goFaas配置自定义域名:Route53与API Gateway完整配置

【免费下载链接】gofaasA boilerplate Go and AWS Lambda app. Demonstrates an expert configuration of 10+ AWS services to support running Go functions-as-a-service (FaaS).项目地址: https://gitcode.com/gh_mirrors/go/gofaas

goFaas是一个基于Go语言和AWS Lambda的无服务器应用框架,它展示了10+ AWS服务的专业配置,以支持运行Go函数即服务(FaaS)。本文将详细介绍如何为goFaas配置自定义域名,通过Route53和API Gateway实现完整的域名映射与HTTPS配置,让你的无服务器应用拥有专业的访问地址。

为什么需要自定义域名?

当我们准备将goFaas应用投入生产环境时,默认的API Gateway URL(如https://x19vpdk568.execute-api.us-east-1.amazonaws.com/Prod)既不专业也不易记。配置自定义域名(如https://api.gofaas.net)可以提升品牌形象,简化用户访问,并支持HTTPS加密传输。

AWS通过CloudFront CDN实现自定义域名支持,同时提供免费的SSL证书自动生成与续期服务,解决了传统SSL配置的成本和维护难题。

准备工作:CloudFormation配置

goFaas使用CloudFormation模板来自动化AWS资源配置。我们需要在模板中添加参数和条件,以便根据需要创建自定义域名相关资源。

关键配置解析

在项目的template.yml文件中,包含了以下关键配置:

  • 参数(Parameters):定义ApiDomainName参数,用于指定自定义域名
  • 条件(Conditions):仅当ApiDomainName参数被设置时,才创建相关资源
  • 资源(Resources):包括ACM证书、API Gateway域名和路径映射

核心配置代码如下:

Conditions: ApiDomainNameSpecified: !Not [!Equals [!Ref ApiDomainName, ""]] Parameters: ApiDomainName: Default: "" Type: String Resources: ApiGatewayCertificate: Condition: ApiDomainNameSpecified Properties: DomainName: !Ref ApiDomainName Type: AWS::CertificateManager::Certificate ApiGatewayDomainName: Condition: ApiDomainNameSpecified Properties: CertificateArn: !Ref ApiGatewayCertificate DomainName: !Ref ApiDomainName Type: AWS::ApiGateway::DomainName ApiGatewayMapping: Condition: ApiDomainNameSpecified Properties: DomainName: !Ref ApiGatewayDomainName RestApiId: !Ref ServerlessRestApi Stage: !Ref ServerlessRestApiProdStage Type: AWS::ApiGateway::BasePathMapping

部署自定义域名配置

完成模板配置后,使用以下命令部署应用并指定自定义域名参数:

$ make deploy PARAMS="ApiDomainName=api.gofaas.net" ... ApiUrl https://api.gofaas.net ApiDistributionDomainName d2bwnae7bzw1t6.cloudfront.net

重要注意事项

  1. 证书验证:AWS Certificate Manager (ACM)会向域名管理员邮箱发送验证邮件,需要点击邮件中的链接完成验证,否则部署会失败并回滚。

  2. 部署时间:CloudFront分发网络的创建可能需要15分钟或更长时间,请耐心等待AWS在全球范围内部署基础设施。

Route53 DNS配置步骤

部署完成后,需要在Route53中创建DNS记录,将自定义域名映射到CloudFront分发域名。

配置CNAME记录

  1. 登录AWS控制台,导航到Route53服务
  2. 选择你的域名托管区域
  3. 点击"创建记录集"
  4. 填写以下信息:
    • 名称:输入子域名(如api
    • 类型:选择CNAME
    • :输入部署输出的ApiDistributionDomainName(如d2bwnae7bzw1t6.cloudfront.net
    • TTL:建议设置为300秒(5分钟)

自动化DNS配置(可选)

对于更高级的配置,可以在CloudFormation模板中添加AWS::Route53::RecordSet资源,实现DNS记录的自动化创建。

API Gateway CORS配置

为确保自定义域名下的API能够正常处理跨域请求,需要在API Gateway中配置CORS(跨域资源共享)。

配置CORS响应头

在API Gateway控制台中,为你的API资源配置以下响应头:

  • Access-Control-Allow-Headers:Accept, Authorization, Content-Type
  • Access-Control-Allow-Methods:GET, OPTIONS
  • Access-Control-Allow-Origin:https://your-custom-domain.com

这些设置确保浏览器能够安全地从你的自定义域名发起API请求。

验证配置

等待DNS记录生效(通常需要几分钟到几小时)后,可以使用curl命令验证配置是否成功:

$ curl https://api.gofaas.net <html><body><h1>gofaas dashboard</h1></body></html>

如果返回goFaas仪表板页面,则表示自定义域名配置成功!

总结

通过本文的步骤,你已经成功为goFaas应用配置了自定义域名,主要收获包括:

  • 使用CloudFormation自动化配置AWS资源
  • 通过ACM获取免费的SSL证书并自动续期
  • 利用CloudFront全球CDN加速API访问
  • 在Route53中配置DNS记录实现域名映射
  • 正确设置CORS确保跨域请求正常工作

现在,你的goFaas应用拥有了专业的自定义域名,用户可以通过https://api.yourdomain.com轻松访问,同时享受HTTPS加密和全球CDN带来的性能提升。

更多详细信息,请参考项目官方文档:docs/custom-domains.md

【免费下载链接】gofaasA boilerplate Go and AWS Lambda app. Demonstrates an expert configuration of 10+ AWS services to support running Go functions-as-a-service (FaaS).项目地址: https://gitcode.com/gh_mirrors/go/gofaas

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

http://www.gsyq.cn/news/1537768.html

相关文章:

  • Python爬虫实战:从新闻网站爬取评论到生成词云图的完整指南
  • 威海漏水检测维修权威推荐:卫生间-厨房-阳台-屋顶天花板漏水维修:靠谱防水补漏公司团队TOP5推荐(2026最新深度调研实测榜单) - 即刻修防水
  • 洛雪音乐音源终极指南:免费整合20+平台无损音乐完整解决方案
  • 江苏省淮安市盱眙县吃小龙虾推荐去哪家?20 年老店实力测评 - 资讯纵览
  • 现代连锁餐饮后厨的“去技能化”趋势与预制食材净净化处理机制研究
  • LangChain框架在高炉炼铁智能化领域的应用~系列文章09:工具调用Tool — 让AI学会操作高炉仪表盘
  • 华南地区出口货代公司核心服务能力排行盘点 - 起跑123
  • 安康漏水检测维修权威推荐:卫生间-厨房-阳台-屋顶天花板漏水维修:靠谱防水补漏公司团队TOP5推荐(2026最新深度调研实测榜单) - 即刻修防水
  • 社区贡献指南:如何参与Hebrew-GPT2-345M-Stage-openmind项目开发
  • 2026彭州装修公司选星艺:室内整装基装全案设计旧房翻新局部改造一站式服务 - 企业推荐师
  • PostgreSQL 技术日报 (6月13日)|监控插件更新,AI 行业大额融资速报
  • 3个关键问题:企业如何选择现代化LDAP管理平台?
  • Google 发布 Open Knowledge Format:给 AI Agent 喂知识的标准格式
  • 2026年 乙烯基树脂/环氧乙烯基树脂/廊坊乙烯基玻璃鳞片胶泥源头厂家排行榜:耐腐蚀性能与技术实力深度解析 - 品牌发掘
  • 2026暑期重庆4天3晚导游参考榜|纯玩路线、服务特色与真实评价解析 - 随峰国旅
  • tiny-random-PhiForCausalLM-openmind完整指南:5步掌握NPU硬件上的AI模型推理
  • CSS 2D 位移(translate)
  • 宁波漏水检测维修权威推荐:卫生间-厨房-阳台-屋顶天花板漏水维修:靠谱防水补漏公司团队TOP5推荐(2026最新深度调研实测榜单) - 即刻修防水
  • 如何快速掌握Video Hub App 3:本地视频管理的完整指南
  • 车间通风降温厂家怎么选 5维对比看实力 - 资讯纵览
  • 2026 工业油烟净化设备十大品牌权威榜单,食品工业油烟治理实力厂家盘点 - 资讯纵览
  • 终极指南:如何使用OpenCore Legacy Patcher让老旧Mac设备焕发新生
  • 3分钟掌握ncmdump:终极免费NCM格式解密工具实战指南
  • 007、反激变换器的工作模式:CCM与DCM
  • 从一条消息的旅程看懂 SAP Cloud Integration 的 Integration Capabilities
  • 2026年国内MBTI测试网站推荐:8个免费平台实测横评,谁最准最稳? - 资讯纵览
  • C# .NET 周刊 |2026 年 4 月 4 期
  • 南平漏水检测维修权威推荐:卫生间-厨房-阳台-屋顶天花板漏水维修:靠谱防水补漏公司团队TOP5推荐(2026最新深度调研实测榜单) - 即刻修防水
  • 5个技巧精通FlicFlac音频格式转换:从入门到高级配置
  • 如何永久保存并深度分析微信聊天记录:WeChatMsg终极指南