[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-aws--copilot-cli":3,"tool-aws--copilot-cli":65},[4,18,32,41,49,57],{"id":5,"name":6,"github_repo":7,"description_zh":8,"stars":9,"difficulty_score":10,"last_commit_at":11,"category_tags":12,"status":17},4358,"openclaw","openclaw\u002Fopenclaw","OpenClaw 是一款专为个人打造的本地化 AI 助手，旨在让你在自己的设备上拥有完全可控的智能伙伴。它打破了传统 AI 助手局限于特定网页或应用的束缚，能够直接接入你日常使用的各类通讯渠道，包括微信、WhatsApp、Telegram、Discord、iMessage 等数十种平台。无论你在哪个聊天软件中发送消息，OpenClaw 都能即时响应，甚至支持在 macOS、iOS 和 Android 设备上进行语音交互，并提供实时的画布渲染功能供你操控。\n\n这款工具主要解决了用户对数据隐私、响应速度以及“始终在线”体验的需求。通过将 AI 部署在本地，用户无需依赖云端服务即可享受快速、私密的智能辅助，真正实现了“你的数据，你做主”。其独特的技术亮点在于强大的网关架构，将控制平面与核心助手分离，确保跨平台通信的流畅性与扩展性。\n\nOpenClaw 非常适合希望构建个性化工作流的技术爱好者、开发者，以及注重隐私保护且不愿被单一生态绑定的普通用户。只要具备基础的终端操作能力（支持 macOS、Linux 及 Windows WSL2），即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你",349277,3,"2026-04-06T06:32:30",[13,14,15,16],"Agent","开发框架","图像","数据工具","ready",{"id":19,"name":20,"github_repo":21,"description_zh":22,"stars":23,"difficulty_score":24,"last_commit_at":25,"category_tags":26,"status":17},2268,"ML-For-Beginners","microsoft\u002FML-For-Beginners","ML-For-Beginners 是由微软推出的一套系统化机器学习入门课程，旨在帮助零基础用户轻松掌握经典机器学习知识。这套课程将学习路径规划为 12 周，包含 26 节精炼课程和 52 道配套测验，内容涵盖从基础概念到实际应用的完整流程，有效解决了初学者面对庞大知识体系时无从下手、缺乏结构化指导的痛点。\n\n无论是希望转型的开发者、需要补充算法背景的研究人员，还是对人工智能充满好奇的普通爱好者，都能从中受益。课程不仅提供了清晰的理论讲解，还强调动手实践，让用户在循序渐进中建立扎实的技能基础。其独特的亮点在于强大的多语言支持，通过自动化机制提供了包括简体中文在内的 50 多种语言版本，极大地降低了全球不同背景用户的学习门槛。此外，项目采用开源协作模式，社区活跃且内容持续更新，确保学习者能获取前沿且准确的技术资讯。如果你正寻找一条清晰、友好且专业的机器学习入门之路，ML-For-Beginners 将是理想的起点。",85267,2,"2026-04-18T11:00:28",[15,16,27,28,13,29,30,14,31],"视频","插件","其他","语言模型","音频",{"id":33,"name":34,"github_repo":35,"description_zh":36,"stars":37,"difficulty_score":38,"last_commit_at":39,"category_tags":40,"status":17},5784,"funNLP","fighting41love\u002FfunNLP","funNLP 是一个专为中文自然语言处理（NLP）打造的超级资源库，被誉为\"NLP 民工的乐园”。它并非单一的软件工具，而是一个汇集了海量开源项目、数据集、预训练模型和实用代码的综合性平台。\n\n面对中文 NLP 领域资源分散、入门门槛高以及特定场景数据匮乏的痛点，funNLP 提供了“一站式”解决方案。这里不仅涵盖了分词、命名实体识别、情感分析、文本摘要等基础任务的标准工具，还独特地收录了丰富的垂直领域资源，如法律、医疗、金融行业的专用词库与数据集，甚至包含古诗词生成、歌词创作等趣味应用。其核心亮点在于极高的全面性与实用性，从基础的字典词典到前沿的 BERT、GPT-2 模型代码，再到高质量的标注数据和竞赛方案，应有尽有。\n\n无论是刚刚踏入 NLP 领域的学生、需要快速验证想法的算法工程师，还是从事人工智能研究的学者，都能在这里找到急需的“武器弹药”。对于开发者而言，它能大幅减少寻找数据和复现模型的时间；对于研究者，它提供了丰富的基准测试资源和前沿技术参考。funNLP 以开放共享的精神，极大地降低了中文自然语言处理的开发与研究成本，是中文 AI 社区不可或缺的宝藏仓库。",79857,1,"2026-04-08T20:11:31",[30,16,29],{"id":42,"name":43,"github_repo":44,"description_zh":45,"stars":46,"difficulty_score":38,"last_commit_at":47,"category_tags":48,"status":17},5773,"cs-video-courses","Developer-Y\u002Fcs-video-courses","cs-video-courses 是一个精心整理的计算机科学视频课程清单，旨在为自学者提供系统化的学习路径。它汇集了全球知名高校（如加州大学伯克利分校、新南威尔士大学等）的完整课程录像，涵盖从编程基础、数据结构与算法，到操作系统、分布式系统、数据库等核心领域，并深入延伸至人工智能、机器学习、量子计算及区块链等前沿方向。\n\n面对网络上零散且质量参差不齐的教学资源，cs-video-courses 解决了学习者难以找到成体系、高难度大学级别课程的痛点。该项目严格筛选内容，仅收录真正的大学层级课程，排除了碎片化的简短教程或商业广告，确保用户能接触到严谨的学术内容。\n\n这份清单特别适合希望夯实计算机基础的开发者、需要补充特定领域知识的研究人员，以及渴望像在校生一样系统学习计算机科学的自学者。其独特的技术亮点在于分类极其详尽，不仅包含传统的软件工程与网络安全，还细分了生成式 AI、大语言模型、计算生物学等新兴学科，并直接链接至官方视频播放列表，让用户能一站式获取高质量的教育资源，免费享受世界顶尖大学的课堂体验。",79792,"2026-04-08T22:03:59",[29,15,16,14],{"id":50,"name":51,"github_repo":52,"description_zh":53,"stars":54,"difficulty_score":24,"last_commit_at":55,"category_tags":56,"status":17},7347,"lobehub","lobehub\u002Flobehub","LobeHub 是一个致力于工作与生活的智能体协作平台，旨在帮助用户发现、构建并与不断成长的 AI 智能体队友协同工作。它解决了当前 AI 应用中单点交互效率低、难以形成规模化协作网络的问题，将“智能体”确立为工作的基本单元，让人类与 AI 能够共同进化。\n\n无论是开发者、研究人员还是普通用户，都能通过 LobeHub 轻松设计多智能体协作流程。平台支持一键安装 MCP 插件、访问丰富的智能体市场，并提供本地与云端数据库管理、多用户协作等高级功能。其独特的技术亮点包括对多种大模型服务商的兼容、本地大模型部署支持、视觉识别、语音对话（TTS\u002FSTT）、文生图以及思维链（Chain of Thought）等能力。此外，LobeHub 还具备分支对话、工件生成、文件上传与知识库集成等实用特性，并适配桌面端、移动端及 PWA 场景，支持自定义主题。\n\n通过开源与自托管选项，LobeHub 为构建人机共演的未来协作网络提供了灵活、可扩展的基础设施。",75141,"2026-04-13T22:06:32",[30,16,13,14,15],{"id":58,"name":59,"github_repo":60,"description_zh":61,"stars":62,"difficulty_score":38,"last_commit_at":63,"category_tags":64,"status":17},2234,"scikit-learn","scikit-learn\u002Fscikit-learn","scikit-learn 是一个基于 Python 构建的开源机器学习库，依托于 SciPy、NumPy 等科学计算生态，旨在让机器学习变得简单高效。它提供了一套统一且简洁的接口，涵盖了从数据预处理、特征工程到模型训练、评估及选择的全流程工具，内置了包括线性回归、支持向量机、随机森林、聚类等在内的丰富经典算法。\n\n对于希望快速验证想法或构建原型的数据科学家、研究人员以及 Python 开发者而言，scikit-learn 是不可或缺的基础设施。它有效解决了机器学习入门门槛高、算法实现复杂以及不同模型间调用方式不统一的痛点，让用户无需重复造轮子，只需几行代码即可调用成熟的算法解决分类、回归、聚类等实际问题。\n\n其核心技术亮点在于高度一致的 API 设计风格，所有估算器（Estimator）均遵循相同的调用逻辑，极大地降低了学习成本并提升了代码的可读性与可维护性。此外，它还提供了强大的模型选择与评估工具，如交叉验证和网格搜索，帮助用户系统地优化模型性能。作为一个由全球志愿者共同维护的成熟项目，scikit-learn 以其稳定性、详尽的文档和活跃的社区支持，成为连接理论学习与工业级应用的最",65861,"2026-04-18T10:37:59",[14,29,16],{"id":66,"github_repo":67,"name":68,"description_en":69,"description_zh":70,"ai_summary_zh":71,"readme_en":72,"readme_zh":73,"quickstart_zh":74,"use_case_zh":75,"hero_image_url":76,"owner_login":77,"owner_name":78,"owner_avatar_url":79,"owner_bio":80,"owner_company":81,"owner_location":81,"owner_email":82,"owner_twitter":81,"owner_website":83,"owner_url":84,"languages":85,"stars":118,"forks":119,"last_commit_at":120,"license":121,"difficulty_score":24,"env_os":122,"env_gpu":123,"env_ram":123,"env_deps":124,"category_tags":128,"github_topics":129,"view_count":24,"oss_zip_url":81,"oss_zip_packed_at":81,"status":17,"created_at":140,"updated_at":141,"faqs":142,"releases":170},9845,"aws\u002Fcopilot-cli","copilot-cli","AWS Copilot CLI will reach end-of-support on June 12, 2026.","AWS Copilot CLI 是一款专为开发者设计的命令行工具，旨在简化在 AWS 上构建、发布和运维容器化应用的全过程。它让开发者只需一条命令，即可基于 Dockerfile 将应用部署为生产级、可扩展的服务，底层自动依托 Amazon ECS on Fargate 或 AWS App Runner 运行。\n\n这款工具主要解决了容器应用上云时配置复杂、环境管理繁琐的痛点。使用 copilot-cli，用户可以轻松为服务添加数据库或注入密钥，从单个微服务平滑扩展至完整的微服务架构。它还支持快速搭建跨区域、跨账号的测试与生产环境，一键配置 CI\u002FCD 流水线，并允许直接在终端内监控和调试服务，极大提升了开发效率。\n\ncopilot-cli 特别适合希望专注于业务逻辑而非基础设施细节的后端开发者、DevOps 工程师以及初创团队。其核心亮点在于“约定优于配置”的设计理念，通过智能默认值自动处理 VPC、负载均衡器等底层资源的创建与管理，让用户能以极简的操作体验完成复杂的云原生应用交付。需要注意的是，官方已宣布该工具将于 2026 年 6 月停止支持，建议当前用户在享受其便利的同时，关注后","AWS Copilot CLI 是一款专为开发者设计的命令行工具，旨在简化在 AWS 上构建、发布和运维容器化应用的全过程。它让开发者只需一条命令，即可基于 Dockerfile 将应用部署为生产级、可扩展的服务，底层自动依托 Amazon ECS on Fargate 或 AWS App Runner 运行。\n\n这款工具主要解决了容器应用上云时配置复杂、环境管理繁琐的痛点。使用 copilot-cli，用户可以轻松为服务添加数据库或注入密钥，从单个微服务平滑扩展至完整的微服务架构。它还支持快速搭建跨区域、跨账号的测试与生产环境，一键配置 CI\u002FCD 流水线，并允许直接在终端内监控和调试服务，极大提升了开发效率。\n\ncopilot-cli 特别适合希望专注于业务逻辑而非基础设施细节的后端开发者、DevOps 工程师以及初创团队。其核心亮点在于“约定优于配置”的设计理念，通过智能默认值自动处理 VPC、负载均衡器等底层资源的创建与管理，让用户能以极简的操作体验完成复杂的云原生应用交付。需要注意的是，官方已宣布该工具将于 2026 年 6 月停止支持，建议当前用户在享受其便利的同时，关注后续的迁移方案。","## :warning: Upcoming end-of-support :warning:\n\nAWS Copilot CLI will reach end-of-support on June 12, 2026. After this date, the tool will no longer receive updates, security patches, or technical support. We recommend migrating to alternative solutions as soon as possible to ensure continued support and access to the latest features.\nFor more information, refer to our [blogpost](https:\u002F\u002Faws.amazon.com\u002Fblogs\u002Fcontainers\u002Fannouncing-the-end-of-support-for-the-aws-copilot-cli\u002F).\n\n##  \u003Cimg align=\"left\" alt=\"AWS Copilot CLI\" src=\".\u002Fsite\u002Fcontent\u002Fassets\u002Fimages\u002Fcopilot-logo-48-light.svg\" width=\"85\" \u002F> AWS Copilot CLI\n###### _Build, Release and Operate Containerized Applications on AWS._ \n\n![latest version](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fv\u002Frelease\u002Faws\u002Fcopilot-cli)\n[![Join the chat at https:\u002F\u002Fgitter.im\u002Faws\u002Fcopilot-cli](https:\u002F\u002Fbadges.gitter.im\u002Faws\u002Fcopilot-cli.svg)](https:\u002F\u002Fgitter.im\u002Faws\u002Fcopilot-cli?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n* **Documentation**: [https:\u002F\u002Faws.github.io\u002Fcopilot-cli\u002F](https:\u002F\u002Faws.github.io\u002Fcopilot-cli\u002F)\n\nThe AWS Copilot CLI is a tool for developers to build, release and operate production-ready containerized applications\non AWS App Runner or Amazon ECS on AWS Fargate.\n\nUse Copilot to:\n* Deploy production-ready, scalable services on AWS from a Dockerfile in one command.\n* Add databases or inject secrets to your services.  \n* Grow from one microservice to a collection of related microservices in an application.\n* Set up test and production environments, across regions and accounts.\n* Set up CI\u002FCD pipelines to release your services to your environments.\n* Monitor and debug your services from your terminal.\n\n\u003Cp align=\"center\">\n    \u003Cimg alt=\"init\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Faws_copilot-cli_readme_b2b598ee7c0e.gif\" width=\"600\"\u002F>\n\u003C\u002Fp>\n\n## Installation\n\nTo install with homebrew:\n```sh\n$ brew install aws\u002Ftap\u002Fcopilot-cli\n```\nTo install manually, we're distributing binaries from our GitHub releases:\n\n\u003Cdetails>\n  \u003Csummary>Instructions for installing Copilot for your platform\u003C\u002Fsummary>\n\n\n| Platform | Command to install |\n|---------|---------\n| macOS | `curl -Lo copilot https:\u002F\u002Fgithub.com\u002Faws\u002Fcopilot-cli\u002Freleases\u002Flatest\u002Fdownload\u002Fcopilot-darwin && chmod +x copilot && sudo mv copilot \u002Fusr\u002Flocal\u002Fbin\u002Fcopilot && copilot --help` |\n| Linux x86 (64-bit) | `curl -Lo copilot https:\u002F\u002Fgithub.com\u002Faws\u002Fcopilot-cli\u002Freleases\u002Flatest\u002Fdownload\u002Fcopilot-linux && chmod +x copilot && sudo mv copilot \u002Fusr\u002Flocal\u002Fbin\u002Fcopilot && copilot --help` |\n| Linux (ARM) | `curl -Lo copilot https:\u002F\u002Fgithub.com\u002Faws\u002Fcopilot-cli\u002Freleases\u002Flatest\u002Fdownload\u002Fcopilot-linux-arm64 && chmod +x copilot && sudo mv copilot \u002Fusr\u002Flocal\u002Fbin\u002Fcopilot && copilot --help` |\n| Windows | `Invoke-WebRequest -OutFile 'C:\\Program Files\\copilot.exe' https:\u002F\u002Fgithub.com\u002Faws\u002Fcopilot-cli\u002Freleases\u002Flatest\u002Fdownload\u002Fcopilot-windows.exe` |\n\n\u003C\u002Fdetails>\n\n\n## Getting started\n\nMake sure you have the AWS command line tool installed and have already run `aws configure` before you start.\n\nTo get a sample app up and running in one command, run the following:\n\n```sh\n$ git clone git@github.com:aws-samples\u002Faws-copilot-sample-service.git demo-app\n$ cd demo-app\n$ copilot init --app demo                \\\n  --name api                             \\\n  --type 'Load Balanced Web Service'     \\\n  --dockerfile '.\u002FDockerfile'            \\\n  --deploy\n```\n\nThis will create a VPC, Application Load Balancer, an Amazon ECS Service with the sample app running on AWS Fargate.\nThis process will take around 8 minutes to complete - at which point you'll get a URL for your sample app running! 🚀\n\n## Learning more \n\nWant to learn more about what's happening? Check out our documentation [https:\u002F\u002Faws.github.io\u002Fcopilot-cli\u002F](https:\u002F\u002Faws.github.io\u002Fcopilot-cli\u002F) for a getting started guide, learning about Copilot concepts, and a breakdown of our commands. \n\n## Feedback\n\nHave any feedback at all? 🙏 Drop us an [issue](https:\u002F\u002Fgithub.com\u002Faws\u002Fcopilot-cli\u002Fissues\u002Fnew) or join us on [gitter](https:\u002F\u002Fgitter.im\u002Faws\u002Fcopilot-cli).\n\nWe're happy to hear feedback or answer questions, so reach out, anytime!\n\n## Security disclosures\n\nIf you think you’ve found a potential security issue, please do not post it in the Issues. Instead, please follow the instructions [here](https:\u002F\u002Faws.amazon.com\u002Fsecurity\u002Fvulnerability-reporting\u002F) or email AWS security directly at [aws-security@amazon.com](mailto:aws-security@amazon.com).\n\n## License\nThis library is licensed under the Apache 2.0 License.\n","## :warning: 即将停止支持 :warning:\n\nAWS Copilot CLI 将于 2026 年 6 月 12 日停止支持。在此之后，该工具将不再接收更新、安全补丁或技术支持。我们建议您尽快迁移到其他解决方案，以确保持续的支持和对最新功能的访问。\n如需更多信息，请参阅我们的 [博客文章](https:\u002F\u002Faws.amazon.com\u002Fblogs\u002Fcontainers\u002Fannouncing-the-end-of-support-for-the-aws-copilot-cli\u002F)。\n\n##  \u003Cimg align=\"left\" alt=\"AWS Copilot CLI\" src=\".\u002Fsite\u002Fcontent\u002Fassets\u002Fimages\u002Fcopilot-logo-48-light.svg\" width=\"85\" \u002F> AWS Copilot CLI\n###### _在 AWS 上构建、发布和运行容器化应用。_\n\n![最新版本](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fv\u002Frelease\u002Faws\u002Fcopilot-cli)\n[![加入 https:\u002F\u002Fgitter.im\u002Faws\u002Fcopilot-cli 的聊天](https:\u002F\u002Fbadges.gitter.im\u002Faws\u002Fcopilot-cli.svg)](https:\u002F\u002Fgitter.im\u002Faws\u002Fcopilot-cli?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n* **文档**: [https:\u002F\u002Faws.github.io\u002Fcopilot-cli\u002F](https:\u002F\u002Faws.github.io\u002Fcopilot-cli\u002F)\n\nAWS Copilot CLI 是一款面向开发者的工具，用于在 AWS App Runner 或 Amazon ECS on AWS Fargate 上构建、发布和运行生产就绪的容器化应用。\n\n使用 Copilot 可以：\n* 通过一条命令，从 Dockerfile 部署可在 AWS 上运行的生产级可扩展服务。\n* 为您的服务添加数据库或将密钥注入服务中。\n* 从单个微服务扩展到应用程序中的多个相关微服务集合。\n* 跨区域和账户设置测试和生产环境。\n* 设置 CI\u002FCD 流水线，将您的服务发布到相应环境。\n* 从终端监控和调试您的服务。\n\n\u003Cp align=\"center\">\n    \u003Cimg alt=\"init\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Faws_copilot-cli_readme_b2b598ee7c0e.gif\" width=\"600\"\u002F>\n\u003C\u002Fp>\n\n## 安装\n\n使用 Homebrew 安装：\n```sh\n$ brew install aws\u002Ftap\u002Fcopilot-cli\n```\n若要手动安装，我们会在 GitHub 发布页面上提供二进制文件：\n\n\u003Cdetails>\n  \u003Csummary>针对您所在平台的 Copilot 安装说明\u003C\u002Fsummary>\n\n\n| 平台 | 安装命令 |\n|---------|---------\n| macOS | `curl -Lo copilot https:\u002F\u002Fgithub.com\u002Faws\u002Fcopilot-cli\u002Freleases\u002Flatest\u002Fdownload\u002Fcopilot-darwin && chmod +x copilot && sudo mv copilot \u002Fusr\u002Flocal\u002Fbin\u002Fcopilot && copilot --help` |\n| Linux x86 (64 位) | `curl -Lo copilot https:\u002F\u002Fgithub.com\u002Faws\u002Fcopilot-cli\u002Freleases\u002Flatest\u002Fdownload\u002Fcopilot-linux && chmod +x copilot && sudo mv copilot \u002Fusr\u002Flocal\u002Fbin\u002Fcopilot && copilot --help` |\n| Linux (ARM) | `curl -Lo copilot https:\u002F\u002Fgithub.com\u002Faws\u002Fcopilot-cli\u002Freleases\u002Flatest\u002Fdownload\u002Fcopilot-linux-arm64 && chmod +x copilot && sudo mv copilot \u002Fusr\u002Flocal\u002Fbin\u002Fcopilot && copilot --help` |\n| Windows | `Invoke-WebRequest -OutFile 'C:\\Program Files\\copilot.exe' https:\u002F\u002Fgithub.com\u002Faws\u002Fcopilot-cli\u002Freleases\u002Flatest\u002Fdownload\u002Fcopilot-windows.exe` |\n\n\u003C\u002Fdetails>\n\n\n## 开始使用\n\n请确保已安装 AWS 命令行工具，并在开始之前运行过 `aws configure`。\n\n要通过一条命令快速启动并运行一个示例应用，请执行以下操作：\n\n```sh\n$ git clone git@github.com:aws-samples\u002Faws-copilot-sample-service.git demo-app\n$ cd demo-app\n$ copilot init --app demo                \\\n  --name api                             \\\n  --type '负载均衡 Web 服务'     \\\n  --dockerfile '.\u002FDockerfile'            \\\n  --deploy\n```\n\n这将创建一个 VPC、Application Load Balancer 以及在 AWS Fargate 上运行示例应用的 Amazon ECS 服务。整个过程大约需要 8 分钟完成，完成后您将获得示例应用的 URL！🚀\n\n## 学习更多 \n\n想了解更多相关信息吗？请查看我们的文档 [https:\u002F\u002Faws.github.io\u002Fcopilot-cli\u002F](https:\u002F\u002Faws.github.io\u002Fcopilot-cli\u002F)，其中包含入门指南、Copilot 概念介绍以及命令详解。\n\n## 反馈\n\n您有任何反馈吗？🙏 请在 [GitHub](https:\u002F\u002Fgithub.com\u002Faws\u002Fcopilot-cli\u002Fissues\u002Fnew) 上提交问题，或加入我们的 [Gitter](https:\u002F\u002Fgitter.im\u002Faws\u002Fcopilot-cli) 社区。\n\n我们非常乐意听取您的反馈或解答疑问，随时欢迎您与我们联系！\n\n## 安全披露\n\n如果您认为发现了潜在的安全漏洞，请不要在 Issues 中公开。请按照 [此处](https:\u002F\u002Faws.amazon.com\u002Fsecurity\u002Fvulnerability-reporting\u002F) 的说明操作，或直接发送邮件至 AWS 安全团队：[aws-security@amazon.com](mailto:aws-security@amazon.com)。\n\n## 许可证\n本库采用 Apache 2.0 许可证授权。","# AWS Copilot CLI 快速上手指南\n\n> **⚠️ 重要提示：即将停止支持**\n> AWS Copilot CLI 将于 **2026 年 6 月 12 日** 停止支持。此后该工具将不再接收更新、安全补丁或技术支持。建议开发者尽快规划迁移至其他解决方案，以确保持续获得支持和最新功能。详见 [官方公告](https:\u002F\u002Faws.amazon.com\u002Fblogs\u002Fcontainers\u002Fannouncing-the-end-of-support-for-the-aws-copilot-cli\u002F)。\n\nAWS Copilot CLI 是一款专为开发者设计的工具，用于在 AWS App Runner 或 Amazon ECS (Fargate) 上构建、发布和运维生产级别的容器化应用。\n\n## 环境准备\n\n在开始之前，请确保满足以下前置条件：\n\n1.  **AWS 账号**：拥有有效的 AWS 账号及访问权限。\n2.  **AWS CLI**：已安装 AWS 命令行工具并完成配置。\n    *   执行 `aws configure` 设置 Access Key、Secret Key、默认区域和输出格式。\n3.  **Docker**：本地已安装 Docker 并处于运行状态（用于构建镜像）。\n4.  **操作系统**：支持 macOS、Linux (x86\u002FARM) 或 Windows。\n\n## 安装步骤\n\n### 方法一：使用 Homebrew (推荐 macOS 用户)\n```sh\nbrew install aws\u002Ftap\u002Fcopilot-cli\n```\n\n### 方法二：手动安装 (适用于 Linux\u002FWindows\u002FmacOS)\n\n根据你的操作系统平台，在终端中执行以下命令：\n\n| 平台 | 安装命令 |\n| :--- | :--- |\n| **macOS** | `curl -Lo copilot https:\u002F\u002Fgithub.com\u002Faws\u002Fcopilot-cli\u002Freleases\u002Flatest\u002Fdownload\u002Fcopilot-darwin && chmod +x copilot && sudo mv copilot \u002Fusr\u002Flocal\u002Fbin\u002Fcopilot && copilot --help` |\n| **Linux x86 (64-bit)** | `curl -Lo copilot https:\u002F\u002Fgithub.com\u002Faws\u002Fcopilot-cli\u002Freleases\u002Flatest\u002Fdownload\u002Fcopilot-linux && chmod +x copilot && sudo mv copilot \u002Fusr\u002Flocal\u002Fbin\u002Fcopilot && copilot --help` |\n| **Linux (ARM)** | `curl -Lo copilot https:\u002F\u002Fgithub.com\u002Faws\u002Fcopilot-cli\u002Freleases\u002Flatest\u002Fdownload\u002Fcopilot-linux-arm64 && chmod +x copilot && sudo mv copilot \u002Fusr\u002Flocal\u002Fbin\u002Fcopilot && copilot --help` |\n| **Windows** | `Invoke-WebRequest -OutFile 'C:\\Program Files\\copilot.exe' https:\u002F\u002Fgithub.com\u002Faws\u002Fcopilot-cli\u002Freleases\u002Flatest\u002Fdownload\u002Fcopilot-windows.exe` |\n\n> **注意**：国内用户若下载速度较慢，可尝试配置网络代理或使用国内镜像加速服务下载二进制文件。\n\n## 基本使用\n\n以下示例将演示如何通过一条命令部署一个示例微服务。该命令会自动创建 VPC、负载均衡器 (ALB) 以及在 Fargate 上运行的 ECS 服务。\n\n1.  **克隆示例项目**\n    ```sh\n    git clone git@github.com:aws-samples\u002Faws-copilot-sample-service.git demo-app\n    cd demo-app\n    ```\n\n2.  **初始化并部署应用**\n    执行以下命令启动初始化和部署流程：\n    ```sh\n    copilot init --app demo                \\\n      --name api                             \\\n      --type 'Load Balanced Web Service'     \\\n      --dockerfile '.\u002FDockerfile'            \\\n      --deploy\n    ```\n\n    **参数说明：**\n    *   `--app demo`: 创建名为 \"demo\" 的应用程序组。\n    *   `--name api`: 服务名称为 \"api\"。\n    *   `--type`: 指定服务类型为“负载均衡 Web 服务”。\n    *   `--dockerfile`: 指定当前目录下的 Dockerfile。\n    *   `--deploy`: 初始化完成后立即部署。\n\n3.  **等待部署完成**\n    整个过程大约需要 **8 分钟**。完成后，终端将输出服务的访问 URL。直接在浏览器中打开该 URL 即可看到运行中的示例应用。 🚀\n\n---\n*更多详细概念解析和命令参考，请访问 [官方文档](https:\u002F\u002Faws.github.io\u002Fcopilot-cli\u002F)。*","某初创电商团队需要在两周内将单体应用拆分为微服务，并快速在 AWS 上构建可伸缩的生产环境。\n\n### 没有 copilot-cli 时\n- 开发人员需手动编写复杂的 CloudFormation 模板来配置 VPC、负载均衡器和 ECS 集群，耗时且容易出错。\n- 每次新增微服务都要重复定义网络策略和 IAM 权限，导致环境一致性难以保证，测试环境与生产环境差异大。\n- 搭建 CI\u002FCD 流水线需要单独配置 CodePipeline 和 CodeBuild，缺乏统一视角，部署流程繁琐。\n- 调试运行时错误时，开发者必须在 AWS 控制台多个页面间切换查看日志和监控指标，效率极低。\n- 从本地 Dockerfile 到云端运行实例的整个过程涉及数十个步骤，新人上手门槛高，交付周期长。\n\n### 使用 copilot-cli 后\n- 只需一条 `copilot init` 命令，即可基于现有 Dockerfile 自动创建包含 VPC 和负载均衡器的完整生产级服务。\n- 通过 `copilot svc add` 轻松扩展微服务架构，工具自动复用网络配置并注入密钥，确保多环境高度一致。\n- 内置 `copilot pipeline init` 一键生成标准化的 CI\u002FCD 流水线，实现代码提交后自动部署至测试或生产环境。\n- 直接在终端运行 `copilot svc logs` 或 `copilot svc exec` 即可实时查看日志或进入容器调试，无需离开命令行。\n- 将原本数天的基础设施搭建工作压缩至分钟级，团队能专注于业务逻辑开发，显著加速产品迭代。\n\ncopilot-cli 的核心价值在于将复杂的 AWS 容器化运维抽象为简单的开发命令，让团队能以应用为中心快速构建和运营云原生系统。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Faws_copilot-cli_7bfcf64a.png","aws","Amazon Web Services","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002Faws_84ebd8ed.png","",null,"open-source-github@amazon.com","https:\u002F\u002Famazon.com\u002Faws","https:\u002F\u002Fgithub.com\u002Faws",[86,90,94,98,102,105,109,112,115],{"name":87,"color":88,"percentage":89},"Go","#00ADD8",92.1,{"name":91,"color":92,"percentage":93},"JavaScript","#f1e05a",6.6,{"name":95,"color":96,"percentage":97},"HTML","#e34c26",0.9,{"name":99,"color":100,"percentage":101},"Makefile","#427819",0.2,{"name":103,"color":104,"percentage":101},"Dockerfile","#384d54",{"name":106,"color":107,"percentage":108},"TypeScript","#3178c6",0,{"name":110,"color":111,"percentage":108},"Python","#3572A5",{"name":113,"color":114,"percentage":108},"Shell","#89e051",{"name":116,"color":117,"percentage":108},"CSS","#663399",3739,440,"2026-04-18T03:21:48","Apache-2.0","Linux, macOS, Windows","未说明",{"notes":125,"python":123,"dependencies":126},"该工具为 AWS Copilot CLI，用于在 AWS 上构建和运营容器化应用，非本地运行的 AI 模型工具。安装前需确保已安装 AWS 命令行工具并运行过 'aws configure' 进行配置。支持通过 Homebrew 或直接下载二进制文件安装。该工具将于 2026 年 6 月 12 日停止支持，建议尽快迁移至替代方案。",[127],"AWS CLI",[16],[130,131,132,133,134,135,136,137,138,139],"modern-applications","cd-pipelines","containers","infrastructure-as-code","aws-ecs","devops","developer-tools","aws-fargate","aws-fargate-application","aws-apprunner","2026-03-27T02:49:30.150509","2026-04-20T07:16:08.671350",[143,148,153,158,162,166],{"id":144,"question_zh":145,"answer_zh":146,"source_url":147},44197,"为什么我的 Worker Service 在读取自己的 SQS 队列时出现 'AccessDenied' 权限错误？","这通常是因为容器中存在其他 AWS 凭证（如环境变量 `AWS_ACCESS_KEY_ID` 和 `AWS_SECRET_ACCESS_KEY`），导致 AWS SDK 优先使用这些凭证而不是 Copilot 自动创建的 `TaskRole`。由于外部凭证没有访问队列的权限，因此被拒绝。\n\n解决方案：\n1. 检查并移除容器中的 `AWS_ACCESS_KEY_ID` 和 `AWS_SECRET_ACCESS_KEY` 环境变量，让应用默认使用 ECS Task Role。\n2. 如果必须使用特定 IAM 用户，请确保该用户拥有对 SQS 队列的 `sqs:ReceiveMessage` 和 `sqs:DeleteMessage` 权限，并在队列策略中显式允许该用户。\n\n默认情况下，Copilot 创建的 Task Role 已具备访问队列的权限，无需额外配置 addons。","https:\u002F\u002Fgithub.com\u002Faws\u002Fcopilot-cli\u002Fissues\u002F4770",{"id":149,"question_zh":150,"answer_zh":151,"source_url":152},44198,"如何为已部署的后端服务添加公开的 WebSocket 支持？","Copilot 的内部 ALB 功能主要适用于新部署的服务。对于已存在的后端服务，推荐的变通方案是：\n1. 创建一个新的 Backend Service（例如命名为 `websocket-service`），复用原有 API 项目的代码。\n2. 为该新服务配置适当的安全组（Security Groups），使其能够访问数据库（如 RDS）并与原后端通信。\n3. 利用环境覆盖（environment overrides）在不同环境中指定不同的安全组：\n```yaml\nenvironments:\n  dev:\n    network:\n      vpc:\n        security_groups: sg-aaa\n  staging:\n    network:\n      vpc:\n        security_groups: sg-bbb\n```\n虽然这是一种变通方法，但目前是实现现有服务公开 WebSocket 的有效途径。","https:\u002F\u002Fgithub.com\u002Faws\u002Fcopilot-cli\u002Fissues\u002F4131",{"id":154,"question_zh":155,"answer_zh":156,"source_url":157},44199,"部署任务时遇到 'Container.image repository should not be null or empty' 错误是什么原因？","该错误表明容器镜像字段缺少有效的仓库地址。常见情况是镜像标签仅包含摘要（如 `@sha256:...`）而缺失了完整的 ECR 仓库前缀（如 `601068425913.dkr.ecr.us-east-1.amazonaws.com\u002Fconnector\u002Fworker`）。\n\n可能原因：\n1. 在使用 `copilot task run --generate-cmd` 生成命令后，手动修改参数时误删了镜像仓库部分。\n2. 不同环境间的 manifest 配置不一致，导致新环境未正确继承镜像地址。\n\n解决方法：\n- 检查 manifest 文件或部署命令中的 `image` 字段，确保其格式为 `\u003Cregistry>\u002F\u003Crepository>:\u003Ctag>` 或 `\u003Cregistry>\u002F\u003Crepository>@\u003Cdigest>`。\n- 避免直接使用 `--dockerfile` 替换 `--image` 而不指定完整镜像路径，除非你希望 Copilot 重新构建并推送镜像。","https:\u002F\u002Fgithub.com\u002Faws\u002Fcopilot-cli\u002Fissues\u002F3455",{"id":159,"question_zh":160,"answer_zh":161,"source_url":157},44200,"运行 `copilot task run` 时遇到 'Tasks cannot be empty' 错误怎么办？","此错误通常是一个通用报错，实际原因是容器内部启动失败或立即退出，导致 ECS 无法检测到正在运行的任务。\n\n排查步骤：\n1. 查看日志输出中是否在 `...Task has stopped.` 之前有具体的应用程序错误信息。\n2. 确认 Dockerfile 中的入口点（ENTRYPOINT\u002FCMD）是否正确，且进程能持续运行而非执行完即退出。\n3. 如果是使用 `--generate-cmd` 生成的命令，检查是否错误地替换了 `--image` 标志而未提供有效的镜像或构建上下文。\n\n建议先在本地运行 Docker 容器验证其是否能正常启动并保持运行状态。",{"id":163,"question_zh":164,"answer_zh":165,"source_url":147},44201,"Scheduled Job 发布的消息，Worker Service 订阅后无法处理，提示权限不足，如何解决？","当 Scheduled Job 通过 `publish.topics` 发布消息到 SNS\u002FSQS，而 Worker Service 通过 `subscribe.topics` 订阅时，若出现权限错误，通常是因为 Worker 的 Task Role 未被授权访问该队列。\n\n解决步骤：\n1. 确保 Worker Service 的 manifest 中正确配置了 `subscribe` 部分，指向正确的 topic 和 source service。\n2. 检查容器内是否意外设置了 `AWS_ACCESS_KEY_ID` 等环境变量，这会覆盖默认的 Task Role 凭证。\n3. 如果使用了自定义 IAM 用户，需手动在 SQS 队列策略中添加该用户的 `sqs:ReceiveMessage` 和 `sqs:DeleteMessage` 权限，示例策略如下：\n```json\n{\n  \"Sid\": \"__owner_statement\",\n  \"Effect\": \"Allow\",\n  \"Principal\": {\n    \"AWS\": \"arn:aws:iam::\u003Caccount-id>:user\u002F\u003Cyour-user>\"\n  },\n  \"Action\": [\n    \"sqs:ReceiveMessage\",\n    \"sqs:DeleteMessage\"\n  ],\n  \"Resource\": \"\u003Cqueue-arn>\"\n}\n```\n但在标准 Copilot 设置中，应依赖自动生成的 Task Role，无需额外配置。",{"id":167,"question_zh":168,"answer_zh":169,"source_url":152},44202,"如何在不同环境中为服务配置不同的安全组？","可以使用 Copilot manifest 中的环境覆盖（environment overrides）功能，为每个环境指定不同的 VPC 安全组。配置示例如下：\n```yaml\nenvironments:\n  dev:\n    network:\n      vpc:\n        security_groups:\n          - sg-aaa111\n  staging:\n    network:\n      vpc:\n        security_groups:\n          - sg-bbb222\n  prod:\n    network:\n      vpc:\n        security_groups:\n          - sg-ccc333\n```\n这样在部署到不同环境时，Copilot 会自动应用对应的安全组规则，满足网络隔离需求。",[171,176,181,186,191,196,201,206,211,216,221,226,231,236,241,246,251,256,261,266],{"id":172,"version":173,"summary_zh":174,"released_at":175},351771,"v1.34.1","将工具升级至 Go 1.23，以修复 CVE-2024-24790 漏洞。","2025-04-10T15:57:54",{"id":177,"version":178,"summary_zh":179,"released_at":180},351772,"v1.34.0","### ⚡️ 功能与改进\n- 为后端服务导入内部 ALB (#5490)\n> 如果您不想使用 Copilot 在启用 `http` 时为您的后端服务创建的环境共享内部 ALB，现在可以为后端服务导入您现有的内部应用负载均衡器 (ALB)。只需在 `http.alb` 字段中指定 ALB 的名称或 ARN，Copilot 就会判断该 ALB 是否具有 HTTP 监听器、HTTPS 监听器，或两者兼有。随后，Copilot 会创建相应的监听器规则和目标组，将流量路由到您的后端服务！\n\n### ❤️ 贡献者\n感谢各位贡献者 🥰！\n- @trivikr (#5822, #5828, #5829)\n- @mathmul (#5831)\n- @ikorecky (#5825)","2024-06-26T21:47:19",{"id":182,"version":183,"summary_zh":184,"released_at":185},351773,"v1.33.4","🐛 问题修复\n\n- 修复：URI 根路径检查 (#5778)\n- 修复：Aurora MySQL 默认引擎版本 (#5813)\n\n❤️ 贡献\n\n感谢各位贡献者 🥰！\n- @Folyd (#5778)\n- @ruzickap (#5813)","2024-05-21T22:57:13",{"id":187,"version":188,"summary_zh":189,"released_at":190},351774,"v1.33.3","⬆️ 更新\n- chore：更新 CDK 版本以符合 CVE 规范 (#5777)\n\n🐛 错误修复\n- fix：允许 EnvManagerRole 访问存储任务环境文件的 S3 存储桶 (#5760)\n- fix：为 EnvManagerRole 添加 `ListStacks` 权限 (#5761)","2024-04-19T04:24:50",{"id":192,"version":193,"summary_zh":194,"released_at":195},351775,"v1.33.2","🐛 修复缺陷\n\n- 修复：计划任务的自定义子网应以字符串形式渲染 (#5703)\n- 修复：启用 `copilot job package --diff` 并防止输出完整模板 (#5685)\n- 修复：检查 Windows 系统上 Docker 是否正在运行 (#5660)","2024-03-21T18:43:28",{"id":197,"version":198,"summary_zh":199,"released_at":200},351776,"v1.33.1","🐛 问题修复\n\n* 在删除应用程序的区域资源时，正确清空 ECR 存储库。(#5617)\n* 允许 EFS 卷在单个服务中拥有多个挂载点。(#5631)\n* 修复请求驱动型服务 CloudFormation 模板中运行时密钥的缩进错误。(#5635)\n* 修复在使用 `image.build` 时，请求驱动型 Web 服务的 `copilot svc package` 命令问题。(#5638)\n\n❤️ 贡献\n\n感谢各位贡献者 🥰！\n- @isleys (#5632)","2024-01-30T22:53:47",{"id":202,"version":203,"summary_zh":204,"released_at":205},351777,"v1.33.0","### ⚡️ 功能与改进\n- **run local `--use-task-role`**：通过新的 `--use-task-role` 标志，借助 ECS 任务角色提升本地测试体验 (#5529)\n  \n    > `copilot run local` 命令现新增 `--use-task-role` 标志。启用后，Copilot 将从已部署的服务中获取 IAM 权限，并将其无缝注入到 `run local` 创建的容器中。这确保了容器拥有与云端完全一致的权限，从而实现更准确的测试。\n  \n    > 如果您不希望使用 `TaskRole` 权限，或者 Copilot 在获取这些权限时遇到问题，可以通过设置 `--use-task-role=false` 来禁用此功能。\n\n- **run local `depends_on` 支持**：本地运行容器现在会尊重服务清单中的 [`depends_on`](https:\u002F\u002Faws.github.io\u002Fcopilot-cli\u002Fdocs\u002Fmanifest\u002Flb-web-service\u002F#image-depends-on) 配置 (#5509)\n  \n    > 进一步增强 `run local` 功能！此前，copilot run local 会无序启动和移除所有容器。此次改进后，容器的操作将按照您在服务清单中配置的 [`depends_on`](https:\u002F\u002Faws.github.io\u002Fcopilot-cli\u002Fdocs\u002Fmanifest\u002Flb-web-service\u002F#image-depends-on) 顺序执行。\n\n- **允许在清单中转义变量**：通过最新更新，您可以在清单中转义插值变量 (#5516)\n  \n    > 现在，您可以灵活地转义清单中的插值变量。使用以下语法可防止 Copilot 使用本地环境解析 `${name}`：\n    > ```yaml\n     > command: echo hello \\${name}\n     > variable:\n     >   name: world\n    > ```\n\n- **`run local --watch` 会跳过 `.dockerignore` 中指定的文件**：`--watch` 标志现已尊重 `.dockerignore` 文件，Copilot 不会监视这些文件 (#5565)\n\n- **将 Lambda 的 Node.js 版本升级至 20.x**：由于 Node.js 16 自 2023 年 9 月起已停止维护 (#5583)\n\n### 🐛 错误修复\n- 允许使用 CMK 解密密钥 (#5576)：在 `v1.32.1` 中，一项 [安全补丁](#5514) 将 `kms:Decrypt` 操作限制为 ECS 执行角色和 AppRunner 实例角色。这影响了使用托管 KMS 密钥的用户。现在，任何带有正确 `copilot-application` 和 `copilot-environment` 标签的 KMS 密钥都可用于顺畅部署。\n- `response_time` 应当尊重导入的 ALB (#5564)\n- 检查是否为基于 Ubuntu 的发行版以安装 SSM 插件 (#5571)\n- 当 Service Connect 被禁用时，`run local --proxy` 仍应正常工作 (#5604)\n\n### ❤️ 贡献者\n感谢各位贡献者 🥰！\n- @bencehornak (#5516, #5514)\n- @craigjbass (#5513)\n- @otty246 (#5510)","2024-01-17T19:46:04",{"id":207,"version":208,"summary_zh":209,"released_at":210},351778,"v1.32.1","### 🐛 Bug 修复\n\n- 引用导入的 ALB 的正确 TargetGroup 名称。（#5478）\n- 添加引号以修复静态站点 svc 包的无效模板。（#5498）\n- 通过初始化静态站点所需的客户端来避免程序崩溃。（#5530）\n- 修复下载静态环境文件时出现的 KMS 访问拒绝错误。（#5514）\n- 修复流水线中的 CodeBuild 尝试获取域名的公有托管区域 ID 时出现的权限错误。（#5540）\n- 在暴露端口验证中考虑 TLS 终止。（#5549）\n- 对容器尊重 `image.location` URI。（#5555）","2023-12-13T17:46:24",{"id":212,"version":213,"summary_zh":214,"released_at":215},351779,"v1.32.0","### ⚡️ 功能与改进\n- **`run local --proxy`**：使用 `--proxy` 标志，将本地容器的出站请求代理到环境 VPC！（#5412）\n    \n    > 我们正在增强在 [v1.30.0](https:\u002F\u002Faws.github.io\u002Fcopilot-cli\u002Fblogs\u002Frelease-v130\u002F#copilot-run-local) 中发布的 `run local` 功能：`--proxy` 标志会将出站请求代理到您的环境 VPC。此功能让您可以使用 `run local` 进行更贴近生产环境的本地测试——您本地机器上的容器现在可以与 VPC 中的其他服务通信，并通过集群或实例终端节点访问您的 RDS 数据库。\n\n- **`run local --watch`**：监听工作区的变化并自动重启容器（#5413）\n\n    > 对 `run local` 功能的又一项增强！您可以在修改代码的同时使用 `run local` 测试服务，Copilot 会自动重启本地容器。这样，您无需终止原有进程并重新运行 `run local`，即可用最新更改测试服务。\n    > `--watch` 标志本身就很实用，但与 `--proxy` 搭配使用时更是如虎添翼：它能大幅减少设置代理所需的额外时间。\n\n- **导入应用负载均衡器**：将现有 ALB 部署到您的服务前端（#5438）\n\n    > 如果您不喜欢环境中默认的共享应用负载均衡器，现在可以使用自己的应用负载均衡器了！只需在 `http.alb` 字段中指定应用负载均衡器的名称或 ARN，Copilot 就会判断其是否具有 HTTP、HTTPS 或两者兼有的监听器。随后，Copilot 会在找到的监听器上创建监听规则，并且如果指定了托管区域，还会可选地为您的别名记录更新 A 记录！\n    > ```yaml\n    > http:\n    >   alb: myALB # 或 arn:aws:elasticloadbalancing:us-west-2:1234567890:loadbalancer\u002Fapp\u002FmyALB\u002F12345abcde\n    >   path: '\u002F'\n    >   alias:\n    >      - name: example.com\n    >        hosted_zone: Z08230443CW11KE6JBNUA\n    >   allowed_source_ips: [\"192.0.2.0\u002F24\", \"198.51.100.10\u002F32\", \"67.170.82.49\u002F32\"]\n    > ```\n\n- **支持静态站点的附加组件**（#5384）：您现在可以像为其他服务一样，使用 [附加组件添加额外资源](https:\u002F\u002Faws.github.io\u002Fcopilot-cli\u002Fdocs\u002Fdeveloping\u002Faddons\u002Fworkload\u002F) 到您的静态站点工作负载中！\n\n- **支持在 `task run --build-args` 中使用 Docker 构建参数**（#5377）\n    > 使用 `--build-args` 传递额外的构建参数来构建镜像！\n    > ```bash\n    > $ copilot task run --build-args GO_VERSION=1.19\n    > ``` \n\n- **强制对管道工件存储桶启用 KMS 加密**（#5329）：任何新应用程序都将开始使用由 Copilot 管理的 KMS 密钥作为管道工件存储桶的默认加密密钥，而非 S3 自动管理的密钥。同时，系统也会拒绝所有禁用服务器端加密的 `s3:PutObject` 操作。此更改不会影响现有应用程序，且可选","2023-11-09T17:44:09",{"id":217,"version":218,"summary_zh":219,"released_at":220},351780,"v1.31.0","### ⚡️ 功能与改进\n- **NLB 增强**：现在可以将安全组添加到由 Copilot 管理的 NLB 中。NLB 也支持 UDP 协议。（#5284）\n\n    > 此前，负载均衡 Web 服务中的 `nlb` 字段仅支持 `tcp` 或 `tls` 流量。现在，您也可以监听 `udp` 流量了！\n    > ```yaml\n    > nlb:\n    >   port: 8080\u002Fudp\n    >   healthcheck:\n    >           port: 80 # 此端口必须是 TCP 端口\n    >   additional_listeners:\n    >     - port: 8081\u002Fudp\n    >        healthcheck:\n    >           port: 80 # 此端口必须是 TCP 端口\n    > ```\n    > \n    > 请注意，您需要在容器上指定一个接受 TCP 流量的健康检查端口，因为目前尚不支持使用 UDP 协议进行健康检查。\n\n- **更完善的任务失败日志**：在部署过程中，当任务失败时，Copilot 将显示更具描述性的信息，从而帮助更好地进行故障排除。（#5249）\n\n    > 运行 `copilot [名词] deploy` 时，现在会在 CloudFormation 部署进度跟踪器中显示 ECS 任务停止的原因：\n    > ```plaintext\n    >   - 在环境集群中运行并维护您的任务的 ECS 服务\n    >     部署                                                                                                              \n    >                修订版  推出        目标  运行  失败  待处理                                                            \n    >       PRIMARY  11        [进行中]  1        0        1       0                                                                  \n    >       ACTIVE   8         [已完成]    1        1        0       0                                                                  \n    >     最新停止的 2 个任务                                                                                                   \n    >       TaskId    当前状态   目标状态                                                                                        \n    >       6b1d6e32  DEPROVISIONING  STOPPED                                                                                              \n    >       9802d212  STOPPED         STOPPED                                                                                              \n    > \n    >     ✘ 最新 2 个任务停止原因                                                                                 \n    >       - [6b1d6e32,9802d212]: 任务中的关键容器退出                                                                      \n    > \n    >     故障排除：任务停止原因                                                                                         \n    >       1. 您可以运行 `copilot svc logs --previous` 来查看最近停止的任务的日志。                                \n    >       2. 您也可以访问本文：https:\u002F\u002Frepost.aws\u002Fknowledge-center\u002Fecs-task-stopped。          \n    > ```\n\n- **`copilot deploy` 增强**：现在可以部署多个","2023-10-06T22:08:31",{"id":222,"version":223,"summary_zh":224,"released_at":225},351781,"v1.30.1","### 🐛 Bug Fixes\r\n\r\n* Remove the confirmation prompt for environment deployment in `copilot deploy`. (#5262)\r\n* Make the confirmation prompt in `copilot app delete` default to `false` to avoid accidental app deletion (#5267) ","2023-09-01T14:02:46",{"id":227,"version":228,"summary_zh":229,"released_at":230},351782,"v1.30.0","### ⚡️ Features and Enhancements\r\n* `copilot run local` to run your services locally ([#5049](https:\u002F\u002Fgithub.com\u002Faws\u002Fcopilot-cli\u002Fpull\u002F5049), [#5201](https:\u002F\u002Fgithub.com\u002Faws\u002Fcopilot-cli\u002Fpull\u002F5201), [#5182](https:\u002F\u002Fgithub.com\u002Faws\u002Fcopilot-cli\u002Fpull\u002F5182))\r\n  > You can use `copilot run local` to test Copilot services on your local machine! To get started, deploy your service\r\nwith `copilot svc deploy`. Once your service is deployed, you can test changes to your code without waiting for a deployment by running `copilot run local`. Copilot will build or pull your service's images, inject secrets and environment variables defined in your manifest, grab your current IAM session credentials, and run Docker containers on your machine with that data.\r\n  > See the [blogpost](https:\u002F\u002Faws.github.io\u002Fcopilot-cli\u002Fblogs\u002Frelease-v130\u002F#copilot-run-local) for more info.\r\n* Pipeline Pre- and Post-Deployment Actions ([#5209](https:\u002F\u002Fgithub.com\u002Faws\u002Fcopilot-cli\u002Fpull\u002F5209), [#5109](https:\u002F\u002Fgithub.com\u002Faws\u002Fcopilot-cli\u002Fpull\u002F5109))\r\n  > In pipelines, you can now use `pre_deployments` and `post_deployments` to define actions for your pipeline to run before or after your services or environments are deployed. This is helpful for running database migrations from within your pipeline!\r\n* Use Ctrl-C to roll back in-progress deployments ([#5213](https:\u002F\u002Fgithub.com\u002Faws\u002Fcopilot-cli\u002Fpull\u002F5213))\r\n  > While waiting for `copilot [noun] deploy` to finish, if you hit Ctrl-C, Copilot will roll back the current CloudFormation deployment. This is especially helpful if your Service is failing and you're stuck waiting for a CloudFormation deployment to fail!\r\n* `copilot deploy` to `init`-alize _and_ `deploy` services _and_ environments ([#5168](https:\u002F\u002Fgithub.com\u002Faws\u002Fcopilot-cli\u002Fpull\u002F5168), [#5215](https:\u002F\u002Fgithub.com\u002Faws\u002Fcopilot-cli\u002Fpull\u002F5215))\r\n  > You can now use `copilot deploy` to deploy environments and initialize services and environments with local manifests. The guided workflow now includes uninitialized local workloads and environments. Getting started with Copilot is now as easy as `git clone . && copilot deploy`!\r\n* Update exit code of `copilot [noun] deploy` to 0 if there are no changes ([#5179](https:\u002F\u002Fgithub.com\u002Faws\u002Fcopilot-cli\u002Fpull\u002F5179))\r\n* Support `from_cfn` for importing an EFS ID ([#5156](https:\u002F\u002Fgithub.com\u002Faws\u002Fcopilot-cli\u002Fpull\u002F5156))\r\n* Set default Static Site alias if app has an imported domain ([#5191](https:\u002F\u002Fgithub.com\u002Faws\u002Fcopilot-cli\u002Fpull\u002F5191))\r\n* Fall back to default credentials if no AWS config is present on `copilot env init` ([#5202](https:\u002F\u002Fgithub.com\u002Faws\u002Fcopilot-cli\u002Fpull\u002F5202))\r\n\r\n### 🐛 Bug Fixes\r\n* Skip interpolating arrays of strings for nodes with a literal style ([#5157](https:\u002F\u002Fgithub.com\u002Faws\u002Fcopilot-cli\u002Fpull\u002F5157))\r\n* Better output when building a single image ([#5148](https:\u002F\u002Fgithub.com\u002Faws\u002Fcopilot-cli\u002Fpull\u002F5148))\r\n* Fix initializing jobs with `copilot deploy` ([#5183](https:\u002F\u002Fgithub.com\u002Faws\u002Fcopilot-cli\u002Fpull\u002F5183))\r\n* Empty Copilot-created S3 bucket for ALB Access Logs on `copilot env delete` ([#5184](https:\u002F\u002Fgithub.com\u002Faws\u002Fcopilot-cli\u002Fpull\u002F5184))\r\n* Fix searching for a cluster with the same name as a recently deleted cluster ([#5204](https:\u002F\u002Fgithub.com\u002Faws\u002Fcopilot-cli\u002Fpull\u002F5204))\r\n* Skip `http` validation if it's disabled ([#5198](https:\u002F\u002Fgithub.com\u002Faws\u002Fcopilot-cli\u002Fpull\u002F5198))\r\n* Block deleting an environment if it's currently used in a pipeline ([#5246](https:\u002F\u002Fgithub.com\u002Faws\u002Fcopilot-cli\u002Fpull\u002F5246))","2023-08-30T20:56:00",{"id":232,"version":233,"summary_zh":234,"released_at":235},351783,"v1.29.1","### 🐛 Bug Fixes\r\n* Filter out non-active ECS services ([#5152](https:\u002F\u002Fgithub.com\u002Faws\u002Fcopilot-cli\u002Fpull\u002F5125))\r\n  > The [`GetResources`](https:\u002F\u002Fdocs.aws.amazon.com\u002Fresourcegroupstagging\u002Flatest\u002FAPIReference\u002FAPI_GetResources.html) API for ECS recently changed to return non-active ECS services, causing an error when running Copilot commands after recently recreating a service. Copilot now validates that the service ARNs returned by `GetResources` are active.\r\n\r\n* Prevent app upgrade followed by downgrade from removing ECR Repos ([#5141](https:\u002F\u002Fgithub.com\u002Faws\u002Fcopilot-cli\u002Fpull\u002F5141))\r\n  > Copilot apps upgraded to v1.28 or v1.29 and subsequently downgraded to versions prior were running into an issue where ECR repos were getting removed from the app stack. After this fix, upgrading your app with v1.29.1+ and then downgrading will cause the older Copilot version to print out an error instead of removing any ECR repos.\r\n\r\n* Explicitly block S3 public access ([#5141](https:\u002F\u002Fgithub.com\u002Faws\u002Fcopilot-cli\u002Fpull\u002F5130))\r\n  > Though objects uploaded to Copilot-created S3 buckets have never been public, Copilot-created S3 buckets now explicitly block public access at the bucket level.\r\n\r\n* Fix `copilot init` when app name is not set via flags ([#5126](https:\u002F\u002Fgithub.com\u002Faws\u002Fcopilot-cli\u002Fpull\u002F5126))\r\n* Validate sidecar `image` configuration ([#5122](https:\u002F\u002Fgithub.com\u002Faws\u002Fcopilot-cli\u002Fpull\u002F5122))","2023-08-02T18:13:58",{"id":237,"version":238,"summary_zh":239,"released_at":240},351784,"v1.29.0","### ⚡️ Features and Enhancements\r\n- Pipeline CloudFormation template overrides (#5034)\r\n   > Copilot pipelines are much more nimble and extensible with CDK and YAML path overrides with `copilot pipeline override`! This feature provides a safe and easy way to modify your pipeline's CloudFormation template.\r\n   > A new `--diff` flag for `copilot pipeline deploy` enables you to preview changes to your CloudFormation template. (#4991)\r\n   > See the [blogpost](https:\u002F\u002Faws.github.io\u002Fcopilot-cli\u002Fblogs\u002Frelease-v129\u002F#static-site-service-type\u002F#pipeline-overrides) for more.\r\n- Static Site enhancements\r\n   > - For more dynamic development, Copilot will now invalidate the CloudFront edge cache each time you redeploy a Static Site workload, enabling you to see and deliver your updated content right away. (#5035)\r\n   > - `copilot svc show` for Static Site workloads includes a tree representation of your S3 bucket's contents. (#4966)\r\n   > \u003Cdetails>\r\n   >     \u003Csummary> View sample output \u003C\u002Fsummary>\r\n   >    \r\n   >    ```console\r\n   >    Service name: static-site\r\n   >    About\r\n   >    \r\n   >      Application  my-app\r\n   >      Name         static-site\r\n   >      Type         Static Site\r\n   >    \r\n   >    Routes\r\n   >    \r\n   >      Environment  URL\r\n   >      -----------  ---\r\n   >      test         https:\u002F\u002Fd399t9j1xbplme.cloudfront.net\u002F\r\n   >    \r\n   >    S3 Bucket Objects\r\n   >    \r\n   >      Environment  test\r\n   >    .\r\n   >    ├── ReadMe.md\r\n   >    ├── error.html\r\n   >    ├── index.html\r\n   >    ├── Images\r\n   >    │   ├── SomeImage.PNG\r\n   >    │   └── AnotherImage.PNG\r\n   >    ├── css\r\n   >    │   ├── Style.css\r\n   >    │   ├── all.min.css\r\n   >    │   └── bootstrap.min.css\r\n   >    └── images\r\n   >        └── bg-masthead.jpg\r\n   >    ```\r\n   > \u003C\u002Fdetails>\r\n   >\r\n   > - `copilot svc status` for Static Site workloads includes the S3 bucket's object count and total size. (#4985)\r\n- Prevent clashes between Copilot versions by disallowing downgrading (unless explicitly enabled with the new `--allow-downgrade` flag for `init`, `deploy`, and `package` commands) (#5064)\r\n- Support Yarn for CDK overrides (#5076)\r\n- Enable interpolation of lists of strings in Copilot manifests (#4993)\r\n- Allow passing an existing [permissions boundary](https:\u002F\u002Faws.github.io\u002Fcopilot-cli\u002Fblogs\u002Frelease-v122\u002F#iam-role-permissions-boundary)'s ARN when running `copilot app init` (as an alternative to the permissions boundary name (#4981)\r\n- Recommend splitting domains\u002Fconditions into different listener rules if the quota (five per rule) is detected. (#4961)\r\n\r\n### 🐛 Bug Fixes\u2028\r\n- `copilot svc package` now applies overrides for Static Site workload types (#4952)\r\n- prevent exceeding CloudWatch Logs Resource Policy size when running `copilot job logs` by adding policies to each environment (#4979)\r\n- Static Site CloudFormation manifests quote aliases so asterisks render properly in CloudFormation templates (#5003)\r\n- Distinguish between active and non-active ECS clusters to avoid clashes (#5062)\r\n\r\n### ❤️ Contributions\r\nThank you, contributors 🥰!\r\n- @tjhorner (#4980)\r\n- @build-with-aws-copilot  (#5063)\r\n","2023-07-19T19:31:23",{"id":242,"version":243,"summary_zh":244,"released_at":245},351785,"v1.28.0","### ⚡️ Features and Enhancements\r\n* Static Site service type (#4621)\r\n\r\n> With the new Static Site service type, you can now deploy and host static websites with Amazon S3. You can specify local files to be uploaded to an S3 bucket with the Static Site service manifest. \r\n> \r\n >```yaml\r\n> name: example\r\n> type: Static Site\r\n> http:\r\n>   alias: 'example.com'\r\n> files:\r\n>   - source: src\u002FsomeDirectory\r\n>     recursive: true\r\n>   - source: someFile.html\r\n> ```\r\n> To learn more on how to deploy your static website using the Static Site service, see the [manifest specification](https:\u002F\u002Faws.github.io\u002Fcopilot-cli\u002Fdocs\u002Fmanifest\u002Fstatic-site\u002F).\r\n> For the announcement, check out the [blog post](https:\u002F\u002Faws.github.io\u002Fcopilot-cli\u002Fblogs\u002Frelease-v128\u002F#static-site-service-type).\r\n\r\n* Add `--diff-yes` flag to `copilot [noun] deploy`(#4832)\r\n> Copilot [noun] deploy now has the new flag `--diff-yes`; you can specify the flag to automatically print the difference between your local changes and the latest deployed template.\r\n\r\n* Container Images Parallel Build (#4760)\r\n> Previously, Copilot built and pushed main container and sidecar container images sequentially.\r\n> You can now build main container and sidecar container images in parallel. With parallel build, you can reduce the \r\n> overall time it takes to build and push container images to Amazon ECR.\r\n\r\n### 🐛 Bug Fixes\u2028\r\n- Use LogicalID-safe name for sidecars env file parameter from the CloudFormation template (#4714)\r\n- Remove CloudWatch alarm-based rollbacks from ECS services in the GovCloud region (#4782)\r\n- Remove Docker runtime version from the buildspec in the pipeline CloudFormation template (#4723)\r\n- Keep parameter descriptions consistent across environment addons in the CloudFormation template (#4813)\r\n- Add Darwin ARM binary for Session Manager plugin installation (#4916)\r\n- Do not require a workspace summary when running `copilot app delete` (#4863)\r\n- Update custom domain records in parallel to fix the `CustomDomainFunction` lambda timeout (#4772).\r\n- Fix file not found error for CDK override ON Windows (#4807)\r\n- Use a more portable CDK executable for CDK overrides (#4808)\r\n- Separate out `grace_period` for ALB and NLB (#4734)\r\n- Separate out `deregistration_delay` for ALB and NLB (#4740)\r\n\r\n### ❤️ Contributions\r\nThank you, contributors 🥰!\r\n- @interu (#4816, #4741)\r\n- @0xO0O0 (#4723)\r\n- @andreas-bergstrom (#4873)","2023-05-25T16:53:12",{"id":247,"version":248,"summary_zh":249,"released_at":250},351786,"v1.27.0","### ⚡️ Features and Enhancements\r\n*  Extend Copilot-generated CloudFormation templates with the Cloud Development Kit (CDK) or YAML Patch overrides (#4208, #4209)\r\n\r\n   > With the new `copilot [noun] override` command, you can now fully customize your environment, service, or job AWS CloudFormation templates generated from Copilot manifests.\r\n   > You can override templates using the [CDK](https:\u002F\u002Fdocs.aws.amazon.com\u002Fcdk\u002Fv2\u002Fguide\u002Fhome.html) when you need the expressive power and safety of a programming language, alternatively you can apply YAML patches when you need only a handful modifications.\r\n   > \r\n   > To learn more about how to use overrides, checkout the [CDK guide](https:\u002F\u002Faws.github.io\u002Fcopilot-cli\u002Fdocs\u002Fdeveloping\u002Foverrides\u002Fcdk\u002F) or the [YAML patch guide](https:\u002F\u002Faws.github.io\u002Fcopilot-cli\u002Fdocs\u002Fdeveloping\u002Foverrides\u002Fyamlpatch\u002F).\r\n   > For the announcement, check out the [blog post](https:\u002F\u002Faws.github.io\u002Fcopilot-cli\u002Fblogs\u002Frelease-v127\u002F#extend-copilot-generated-aws-cloudformation-templates).\r\n\r\n* Add support for multiple listener rules for `http` and listeners for `nlb` for Load Balanced Web and Backend Services (#4170)\r\n\r\n  > You can now define multiple host-based or path listener rules for Application Load Balancers with the new `http.additional_rules` property. Similarly, you can define multiple listeners on different ports and protocols for Network Load Balancers with the `nlb.additional_listeners` field.\r\n  > \u003Cdetails>\r\n  >    \u003Csummary> Sample manifest file \u003C\u002Fsummary>\r\n  >\r\n  >   ```yaml\r\n  >   name: 'frontend'\r\n  >   type: 'Load Balanced Web Service'\r\n  >   \r\n  >   image:\r\n  >     build: 'path\u002Fto\u002FDockerfile'\r\n  >     port: 8080\r\n  >\r\n  >   sidecars:\r\n  >      docs:\r\n  >         port: 7000\r\n  >         build: 'path\u002Fto\u002FDockerfile'\r\n  >\r\n  >   http:\r\n  >     alias: 'example.com'\r\n  >     path: '\u002F'\r\n  >     additional_rules:\r\n  >       -  alias: 'admin.example.com'\r\n  >          path: '\u002F'\r\n  >          target_port: 9000\r\n  >       -  path: '\u002Fdocs'\r\n  >          target_container: docs\r\n  >   ```\r\n  > \u003C\u002Fdetails>\r\n  >\r\n  > To learn more on how to add additional listeners and listener rules, see the [manifest specification](https:\u002F\u002Faws.github.io\u002Fcopilot-cli\u002Fdocs\u002Fmanifest\u002Flb-web-service\u002F#http-additional-rules).\r\n  > For the announcement, check out the [blog post](https:\u002F\u002Faws.github.io\u002Fcopilot-cli\u002Fblogs\u002Frelease-v127\u002F#enable-multiple-listeners-and-listener-rules-for-load-balancers).\r\n\r\n* Preview CloudFormation template changes with the new `--diff` flag (#4259)\r\n\r\n  > You can now run `copilot [noun] package --diff` or `copilot [noun] deploy --diff` to view the difference between your local changes and the latest deployed template.\r\n  > \u003Cdetails>\r\n  >    \u003Csummary> View sample screenshot \u003C\u002Fsummary>\r\n  > \r\n  >    ![diff](https:\u002F\u002Fuser-images.githubusercontent.com\u002F879348\u002F228013575-9d1b5bbd-1f3a-410e-9363-caead0e5a76e.png)\r\n  > \u003C\u002Fdetails>\r\n  >\r\n  > For the announcement, check out the [blog post](https:\u002F\u002Faws.github.io\u002Fcopilot-cli\u002Fblogs\u002Frelease-v127\u002F#preview-aws-cloudformation-template-changes).\r\n\r\n* Enable building container images for sidecars (#4254)\r\n\r\n  > Previously, Copilot only supported taking a container image URL for sidecar containers. Now, you can use `image.build` for your sidecars just like your main container to build and push images from local Dockerfiles.\r\n  >\r\n  > To learn more see the guide for [sidecar containers](https:\u002F\u002Faws.github.io\u002Fcopilot-cli\u002Fdocs\u002Fdeveloping\u002Fsidecars\u002F#image-build).\r\n  > For the announcement, check out the [blog post](https:\u002F\u002Faws.github.io\u002Fcopilot-cli\u002Fblogs\u002Frelease-v127\u002F#build-and-push-container-images-for-sidecar-containers).\r\n\r\n* Enable uploading local environment files for sidecar containers (#4447)\r\n\r\n  > Previously, you could only specify an environment file (`env_file`) for your main container. You can now specify an environment file to upload for any sidecar container.\r\n  > To learn more see the guide for [sidecar containers](https:\u002F\u002Faws.github.io\u002Fcopilot-cli\u002Fdocs\u002Fdeveloping\u002Fsidecars\u002F#envFile).\r\n  > For the announcement, check out the [blog post](https:\u002F\u002Faws.github.io\u002Fcopilot-cli\u002Fblogs\u002Frelease-v127\u002F#upload-local-environment-files-for-sidecar-containers).\r\n\r\n\r\n### 🐛 Bug Fixes\r\n* Removing CloudWatch alarm based rollbacks from ECS services now disassociates the alarms (#4565)\r\n* Remove `!Sub` in environment storage addons causing the addon deployment failure (#4562)\r\n","2023-03-28T16:34:35",{"id":252,"version":253,"summary_zh":254,"released_at":255},351787,"v1.26.0","### ⚡️ Features and Enhancements\r\n\r\n- Add support for automating rollbacks for Amazon ECS services with CloudWatch alarms\r\n\r\n   > You can now [monitor your ECS deployments](https:\u002F\u002Faws.amazon.com\u002Fblogs\u002Fcontainers\u002Fautomate-rollbacks-for-amazon-ecs-rolling-deployments-with-cloudwatch-alarms\u002F) with custom [CloudWatch alarms](https:\u002F\u002Fdocs.aws.amazon.com\u002FAmazonECS\u002Flatest\u002Fuserguide\u002Fdeployment-alarm-failure.html)! Configure your services to roll back to the last completed deployment if your alarms go into `In alarm` state during deployment. With the [circuit breaker](https:\u002F\u002Fdocs.aws.amazon.com\u002FAmazonECS\u002Flatest\u002Fdeveloperguide\u002Fdeployment-circuit-breaker.html), Copilot has already been rolling back your failed deployments. Now, you can also roll back service deployments that aren't failing, but aren't performing in accordance with the metrics of your choice.\r\n  > \r\n  > For example, in your backend, worker, or load-balanced web service manifest, you may import your own existing CloudWatch alarms:\r\n  >\r\n  > ```yaml\r\n  > deployment:\r\n  >   rollback_alarms: [\"MyAlarm-ELB-4xx\", \"MyAlarm-ELB-5xx\"]\r\n  > ```\r\n  >\r\n  > Or have Copilot create a CPU and\u002For memory utilization alarm for you, with thresholds of your choice:\r\n  > ```yaml\r\n  > deployment:\r\n  >   rollback_alarms:\r\n  >     cpu_utilization: 70    \u002F\u002F Percentage value at or above which alarm is triggered.\r\n  >     memory_utilization: 50 \u002F\u002F Percentage value at or above which alarm is triggered.\r\n  > ```\r\n  > \r\n  > Read the [blog post](https:\u002F\u002Faws.github.io\u002Fcopilot-cli\u002Fblogs\u002Frelease-v126\u002F#service-alarm-based-rollback) for more!\r\n\r\n- Update `storage init` to support DynamoDB tables, S3 buckets or RDS clusters as environment storage\r\n  > Now, you can create [environment addons](https:\u002F\u002Faws.github.io\u002Fcopilot-cli\u002Fdocs\u002Fdeveloping\u002Faddons\u002Fenvironment\u002F) for your storage easily with `copilot storage init --lifecycle environment`. The storage is deployed when you run `copilot env deploy`, and isn't deleted until you delete the environment by running `copilot env delete`.\r\n  > \r\n  > Here is an example of prompts that you might see when you run `copilot storage init` without any flags.\r\n  > ```term\r\n  > $ copilot storage init\r\n  > What type of storage would you like to create?\r\n  >  > DynamoDB            (NoSQL)\r\n  >    S3                  (Objects)\r\n  >    Aurora Serverless   (SQL)\r\n  > Which workload needs access to the storage? \r\n  >  > api\r\n  >    backend\r\n  > What would you like to name this DynamoDB Table? movies\r\n  > Do you want the storage to be created and deleted with the api service?\r\n  >    Yes, the storage should be created and deleted at the same time as api\r\n  >  > No, the storage should be created and deleted at the environment level\r\n  > ```\r\n  > \r\n  > Read the [blog post](https:\u002F\u002Faws.github.io\u002Fcopilot-cli\u002Fblogs\u002Frelease-v126\u002F#storage-init-for-environment-addons) for more!\r\n\r\n- Support [Request-Driven Web Service secrets](https:\u002F\u002Fgithub.com\u002Faws\u002Fcopilot-cli\u002Fissues\u002F4506)\r\n  > You can now add your secrets (from SSM Parameter Store or AWS Secrets Manager) to your App Runner service as environment variables using Copilot.\r\n  > \r\n  > Similar to other service types such as Load-Balanced Web Service, you need to first add the following tags to your secrets:\r\n  > | Key                     | Value                                                       |\r\n  > | ----------------------- | ----------------------------------------------------------- |\r\n  > | `copilot-application`   | Application name from which you want to access the secret   |\r\n  > | `copilot-environment`   | Environment name from which you want to access the secret   |\r\n  >\r\n  > Then simply update your Request-Driven Web Service manifest with:\r\n  > ```yaml\r\n  > secrets:\r\n  >   GITHUB_TOKEN: GH_TOKEN_SECRET\r\n  > ```\r\n  > And deploy! Your service can now access the secret as an environment variable.\r\n  > \r\n  > Read the [blog post](https:\u002F\u002Faws.github.io\u002Fcopilot-cli\u002Fblogs\u002Frelease-v126\u002F#request-driven-web-service-secrets-support) for more!\r\n### 🐛 Bug Fixes\r\n- Require aws config file in `env init` only when needed (#4440)\r\n- `svc delete` should ignore Route53 A-record deletion error if not found (#4409)\r\n- Service Connect shouldn't affect gov cloud deployment (#4390)\r\n\r\n","2023-02-21T22:50:34",{"id":257,"version":258,"summary_zh":259,"released_at":260},351788,"v1.25.0","### ⚡️ Features and Enhancements\r\n\r\n- Support user-written [environment addons](https:\u002F\u002Fgithub.com\u002Faws\u002Fcopilot-cli\u002Fissues\u002F4219)\r\n\r\n   > You can now deploy addons associated with your environments. Addons are additional AWS resources that are not integrated in Copilot by default - for example, DynamoDB, RDS, etc.  Environment addons resources have their lifecycle managed at the environment level. Hence, resources can be shared across services or jobs and won't be deleted unless the environment is deleted.\r\n   > \r\n   > If you are already familiar with workload addons, then good news - the experience of managing environment addons is pretty similar. \r\n   > \r\n   > You just need to store your CFN templates under `copilot\u002Fenvironments\u002Faddons` folder, and then run `copilot env deploy` - your addons will the be deployed along with the environment. \r\n   > \r\n   > For an example walk-through, see [our blog post](https:\u002F\u002Faws.github.io\u002Fcopilot-cli\u002Fblogs\u002Frelease-v125\u002F#environment-addons) !\r\n\r\n- Support [static content delivery](https:\u002F\u002Fgithub.com\u002Faws\u002Fcopilot-cli\u002Fissues\u002F3701) through an existing S3 bucket\r\n  > You can now bring your own S3 bucket to work with CloudFront for faster static content delivery.\r\n  > You can use CloudFront with an S3 bucket as the origin by configuring the environment manifest as below:\r\n  > \r\n  > ```yaml\r\n  > cdn:\r\n  >   static_assets:\r\n  >     location: cf-s3-ecs-demo-bucket.s3.us-west-2.amazonaws.com\r\n  >     alias: example.com\r\n  >     path: static\u002F*\r\n  > ```\r\n  > \r\n  > Read the [blog post](https:\u002F\u002Faws.github.io\u002Fcopilot-cli\u002Fblogs\u002Frelease-v125\u002F#static-content-delivery-with-cloudfront) for more!\r\n\r\n### 🐛 Bug Fixes\r\n- Render CFN template with `SslPolicy` instead of `SSLPolicy` (https:\u002F\u002Fgithub.com\u002Faws\u002Fcopilot-cli\u002Fpull\u002F4278)\r\n\r\n","2023-01-17T20:24:27",{"id":262,"version":263,"summary_zh":264,"released_at":265},351789,"v1.24.0","### ⚡️ Features and Enhancements\r\n* ECS Service Connect Support (#4226)\r\n  > [ECS Service Connect](https:\u002F\u002Fdocs.aws.amazon.com\u002FAmazonECS\u002Flatest\u002Fdeveloperguide\u002Fservice-connect.html) enables a client service to connect to its downstream services in a load-balanced and resilient fashion. To enable Service Connect, you can simply add this configuration to your service manifest:\r\n  > ```yaml\r\n  > network:\r\n  >   connect: true\r\n  > ```\r\n  >  \r\n  > Check out our [blog post](https:\u002F\u002Faws.github.io\u002Fcopilot-cli\u002Fblogs\u002Frelease-v124#ecs-service-connect-support) for more! Also, check out the [network.connect](https:\u002F\u002Faws.github.io\u002Fcopilot-cli\u002Fdocs\u002Fmanifest\u002Flb-web-service\u002F#network-connect) field in the manifest specification.\r\n\r\n\r\n* Add `--no-rollback` flag to `env deploy` (#4168)\r\n  > Copilot `env deploy` now has a new flag `--no-rollback`; you can specify the flag to disable automatic env deployment rollback to help with debugging.\r\n\r\n* Add `AutoScalingConfiguration` to Request-Driven Web Service (RDWS)  (#4186)\r\n  > It is now possible to specify autoscaling configuration for your RDWS. For example, this can be configured in your service manifest:\r\n  >```yaml\r\n  > count: high-availability\u002F3\r\n  >```\r\n\r\n* Add log retention to VPC flow logs (#4164)\r\n  > The default value for VPC flow logs is now 14 days (2 weeks):\r\n  > ```yaml\r\n  > network:\r\n  >   vpc:\r\n  >     flow_logs: on\r\n  > ```\r\n  > Alternatively, you can customize the number of days for retention:\r\n  > ```yaml\r\n  > network:\r\n  >   vpc:\r\n  >     flow_logs:\r\n  >       retention: 30\r\n  > ```\r\n\r\n\r\n### 🐛 Bug Fixes\r\n* Access logs bucket policy should be applied after ALB update (#4169)\r\n* Set tasks fewer than `spot_from` to Fargate Capacity Provider when `min` and `spot_from` equal (#4187)\r\n* Check if an application exists globally before creating it (#4113)\r\n\r\n\r\n### ❤️ Contributions\r\nThank you, contributors 🥰!\r\n- @hkford  (#4144, #4128)\r\n- @isleys  (#4129)","2022-11-29T21:17:46",{"id":267,"version":268,"summary_zh":269,"released_at":270},351790,"v1.23.0","### ⚡️ Features and Enhancements\r\n* Restrict the ingress of a Request-Driven Web Service (RDWS) to environment only (#4137)\r\n  > Previously, a RDWS was always internet-facing. Now, you have the option of toggling the service to be private. Specify `http.private: true` in a RDWS manifest, and the service will accept traffic from within the environment only. \r\n  >  \r\n  > See our [blog post](https:\u002F\u002Faws.github.io\u002Fcopilot-cli\u002Fblogs\u002Frelease-v123\u002F#app-runner-private-services) for more! Also, check out the [http.private](https:\u002F\u002Faws.github.io\u002Fcopilot-cli\u002Fdocs\u002Fmanifest\u002Frd-web-service\u002F#http-private) field in the manifest specification.\r\n\r\n\r\n* Support Aurora Serverless v2 in `storage init` (#4075)\r\n  > `copilot storage init --storage-type Aurora` will now generate an addon template for Aurora Serverless v2 by default.\r\n  > To generate a template for v1, you can run `copilot storage init --storage-type Aurora --serverless-version v1`   \r\n  >\r\n  > Check out our [blog post](https:\u002F\u002Faws.github.io\u002Fcopilot-cli\u002Fblogs\u002Frelease-v123\u002F#support-aurora-serverless-v2-in-storage-init) for more!\r\n\r\n* Restrict ingress to the public ALB using source IPs (#4103)\r\n  >It is now possible to limit the ingress to your public ALB to up to 50 source IPs. This can be configured in your environment manifest:\r\n  >```yaml\r\n  >http:\r\n  >  public:\r\n  >    ingress:\r\n  >      source_ips:\r\n  >        - 10.0.0.0\u002F24\r\n  >        - 10.0.1.0\u002F24\r\n  >```\r\n  > Check out our [blog post](https:\u002F\u002Faws.github.io\u002Fcopilot-cli\u002Fblogs\u002Frelease-v123\u002F#http-public-ingress-source-ips) for more, as well as [`http.public.ingress.source_ips`](https:\u002F\u002Faws.github.io\u002Fcopilot-cli\u002Fdocs\u002Fmanifest\u002Fenvironment\u002F#http-public-ingress-source-ips) in the manifest specification !\r\n\r\n* Configure SSL policy for environment ALBs' HTTPS listener  (#4099)\r\n  > You can now specify the security policy applied on the HTTPS listener for your environment ALB(s) to comply with your organization's security requirements. This can be configured in your environment manifest:\r\n  >```yaml\r\n  >http:\r\n  >  public: \r\n  >    ssl_policy: ELBSecurityPolicy-FS-1-2-Res-2019-08\r\n  > \r\n  >  private: \r\n  >    ssl_policy: ELBSecurityPolicy-FS-1-2-Res-2019-08\r\n  >```\r\n  > Check out the [`ssl_policy`](https:\u002F\u002Faws.github.io\u002Fcopilot-cli\u002Fdocs\u002Fmanifest\u002Fenvironment\u002F#http-public-sslpolicy) field in the manifest specification.\r\n\r\n* Restrict container access to root file system to read-only (#4062)\r\n  >You can now give your containers read-only access to its root file system to comply with Security Hub's recommendation of [[ECS.5] ECS containers should be limited to read-only access to root filesystems](https:\u002F\u002Fdocs.aws.amazon.com\u002Fsecurityhub\u002Flatest\u002Fuserguide\u002Fsecurityhub-standards-fsbp-controls.html#fsbp-ecs-5). This can be configured in your service's manifest:\r\n  >```yaml\r\n  >storage:\r\n  >  readonly_fs: true\r\n  >```\r\n  > See [`storage.readononly_fs`](https:\u002F\u002Faws.github.io\u002Fcopilot-cli\u002Fdocs\u002Fmanifest\u002Flb-web-service\u002F#storage-readonlyfs) in the manifest specification or read the [blog post](https:\u002F\u002Faws.github.io\u002Fcopilot-cli\u002Fblogs\u002Frelease-v123\u002F#storage-readonlyfs).\r\n\r\n* Enable VPC flow logs for environments (#4088)\r\n  >You can now capture information about the IP traffic going in and out of your environment VPC by enabling VPC flow logs in your environment manifest:\r\n  >```yaml\r\n  >network:\r\n  >  vpc:\r\n  >    flow_logs: on\r\n  >```\r\n  >  See [`network.vpc.flow_logs`](https:\u002F\u002Faws.github.io\u002Fcopilot-cli\u002Fdocs\u002Fmanifest\u002Fenvironment\u002F#network-vpc-flowlogs) in the manifest specification.\r\n\r\n* Show permissions boundary policy name in `app show` (#4071)\r\n  > In [Copilot v1.22.0](https:\u002F\u002Fgithub.com\u002Faws\u002Fcopilot-cli\u002Freleases\u002Ftag\u002Fv1.22.0), we introduced permissions boundaries for all IAM roles in an application. Now you can see this configuration in `copilot app show`.\r\n  >```console\r\n  >$ copilot app show --name myapp\r\n  >\r\n  >About\r\n  >\r\n  >  Name                  myapp\r\n  >  Version               v1.1.0\r\n  >  URI                   N\u002FA\r\n  >  Permissions Boundary  myPermissionsBoundaries\r\n  >```\r\n\r\n\r\n### 🐛 Bug Fixes\r\n* Fix misplaced `http` fields in environment manifest (#4068). See our [blog post](https:\u002F\u002Faws.github.io\u002Fcopilot-cli\u002Fblogs\u002Frelease-v123\u002F#move-misplaced-http-fields-in-environment-manifest-backward-compatible) for more information on this manifest fix!\r\n* TLS termination does not require a certificate or domain for CDN (#4096)\r\n* Remove `sh`-unfriendly here string from the default buildspec (#4102)\r\n\r\n\r\n### ❤️ Contributions\r\nThank you, contributors 🥰!\r\n- @hkford  (https:\u002F\u002Fgithub.com\u002Faws\u002Fcopilot-cli\u002Fpull\u002F4075)","2022-11-01T17:29:20"]