mcpField
A
arch-cloud

arch-cloud

github.com/alphaonedev云与 DevOps41 次安装
代码仓库

关于 arch-cloud

arch-cloud 是用于设计云架构的软件技能,侧重无服务器、边缘计算和基于 Terraform 的基础设施即代码。它面向构建低延迟或多区域服务的团队。

主要功能

  1. 01部署 Lambda 和 Workers
  2. 02配置边缘缓存与路由
  3. 03设计多区域故障转移
  4. 04使用 Terraform 配置资源
  5. 05分析云成本模式

适用场景

  1. 01部署无服务器 API
  2. 02增加多区域冗余
  3. 03通过边缘 CDN 分发媒体
  4. 04自动配置云资源

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/alphaonedev/openclaw-graph --skill arch-cloud

安装后在 Claude Code 中输入/arch-cloud确认已加载。

详细介绍

arch-cloud

用途

此技能有助于设计和实现专注于无服务器技术(例如 AWS Lambda、Cloudflare Workers)、边缘计算、CDN、多区域高可用性(HA)部署,以及使用 Terraform 实现基础设施即代码(IaC)的云架构。它通过指导精确的配置和部署,确保解决方案具备可扩展性且经济高效。

使用场景

当应用需要低延迟边缘交付、无服务器后端以降低成本、多区域冗余以实现 HA,或 IaC 自动化时,请使用此技能。示例包括构建全球 API、迁移到无服务器架构,或优化 CDN 以交付媒体内容。简单的单体应用或本地部署不适用。

主要功能

  • 部署无服务器函数:创建 AWS Lambda 或 Cloudflare Workers,用于事件驱动处理。
  • 边缘与 CDN 集成:配置 Cloudflare,实现边缘缓存和路由以降低延迟。
  • 多区域 HA 模式:使用 AWS Route 53 或 Cloudflare 负载均衡器设置自动故障转移。
  • 使用 Terraform 实现 IaC:以声明方式定义和配置云资源,确保可复现性。
  • 成本优化:分析如何使用 Lambda 的预留并发或 Terraform 成本模块等模式。

使用模式

  1. 无服务器 API 部署:使用 Terraform 定义 Lambda 函数和 API Gateway,然后部署以实现快速扩展。添加 Route 53 实现故障转移,确保多区域部署。
  2. 边缘计算 CDN 设置:将 Cloudflare Workers 与 CDN 集成,以缓存资源并在边缘处理请求,从而减少源站服务器负载。结合 Terraform,在各区域自动配置资源。

常用命令/API

  • Terraform 命令:使用 terraform init 初始化;使用 terraform plan -out=plan.tfplan 规划变更;使用 terraform apply plan.tfplan 应用变更。使用 -var="region=us-east-1" 设置特定区域的变量。
  • 用于 Lambda 的 AWS CLI:使用 aws lambda create-function --function-name myLambda --zip-file fileb://function.zip --handler index.handler --runtime nodejs14.x --role arn:aws:iam::123456789012:role/lambdaRole 创建函数。使用 aws lambda invoke --function-name myLambda out.txt 调用函数。
  • Cloudflare API 端点:使用 $CLOUDFLARE_API_KEY 环境变量进行身份验证。通过 POST 请求向 https://api.cloudflare.com/client/v4/accounts/{account_id}/workers/scripts 发送 JSON 请求体,以创建 Worker 脚本:{"id": "myWorker", "content": "addEventListener('fetch', event => event.respondWith(new Response('Hello')));"}。
  • 配置格式:在 Terraform 文件中使用 HCL,例如:resource "aws_lambda_function" "example" { function_name = "myFunction" runtime = "nodejs14.x" handler = "index.handler" filename = "function.zip" }。对于 API 密钥,将其设置为环境变量,例如 export AWS_ACCESS_KEY_ID=$AWS_API_KEY。

集成说明

通过在工作流步骤中于 GitHub Actions 运行 terraform plan,将 Terraform 集成到 CI/CD 中:run: terraform plan -out=plan.out。对于无服务器架构,使用 Terraform 将 Lambda 关联到 S3 触发器:resource "aws_lambda_permission" "allow_s3" { action = "lambda:InvokeFunction" function_name = aws_lambda_function.example.function_name principal = "s3.amazonaws.com" source_arn = aws_s3_bucket.example.arn }。使用 $TERRAFORM_STATE_BUCKET 存储远程状态。对于边缘服务,通过将 Cloudflare 的源站设置配置为使用 Gateway 端点,将流量从 Cloudflare 路由到 AWS API Gateway。

错误处理

通过检查 terraform plan 的输出以查看差异来处理 Terraform 错误;只有在审核后,才运行 terraform apply --auto-approve。常见问题包括依赖循环——可通过调整 .tf 文件中资源的顺序来修复。对于 Lambda,使用 aws lambda invoke --function-name myLambda out.txt 捕获调用错误,并通过 CloudWatch 解析日志:使用 aws logs get-log-events --log-group /aws/lambda/myLambda --log-stream latest。如果 Cloudflare API 返回 401,请验证 $CLOUDFLARE_API_KEY,然后使用指数退避重试。在代码中,用 try-catch 包装 API 调用:try { const response = await fetch('https://api.cloudflare.com/...'); } catch (error) { console.error(error.message); }。始终验证区域配置,以避免出现“region not supported”错误。

具体使用示例

  1. 部署多区域无服务器函数:首先,设置环境变量:export AWS_REGION=us-east-1 和 export AWS_ACCESS_KEY_ID=$AWS_API_KEY。创建一个 Terraform 文件:resource "aws_lambda_function" "globalFn" { ... } resource "aws_route53_record" "failover" { zone_id = "Z1234567890" name = "api.example.com" type = "A" failover_routing_policy { ... } }。运行 terraform init && terraform apply,在 us-east-1 部署 Lambda,并设置 Route 53 以实现高可用性。
  2. 使用 Workers 设置边缘 CDN:使用 export CLOUDFLARE_API_KEY=your_key 验证 Cloudflare。使用 Terraform 配置资源:resource "cloudflare_worker_script" "edgeScript" { name = "edgeWorker" content = "addEventListener('fetch', event => { ... }); } resource "cloudflare_zone" "example" { zone = "example.com" }。运行 terraform apply 部署,然后通过 curl Worker 端点进行测试。

图关系

  • 相关内容:se-architecture 集群(例如,'design-patterns' 提供架构蓝图,'deployment-strategies' 提供发布技术)。
  • 通过标签关联:'cloud' 关联到 'aws-services' 技能;'serverless' 关联到 'lambda-optimizations';'terraform' 关联到 'iac-best-practices'。

评论

支持 Markdown