gpt4 book ai didi

amazon-web-services - AWS Batch 与 AWS CodeBuild

转载 作者:行者123 更新时间:2023-12-04 00:00:04 25 4
gpt4 key购买 nike

我是 AWS 的新手,当我搜索一些东西以从 GitHub(一个 python 项目)下载代码、运行它并将输出保存在 s3 中时,我发现的第一个服务是 CodeBuild。

所以我使用 CodeBuild 实现了这种工作流。

但现在我看到 AWS 有一项名为 AWS Batch 的服务,我想知道是否应该将我的架构迁移到 AWS Batch。

您能否解释一下哪一个(AWS CodeBuild 或 AWS Batch)更适合我的案例?何时使用 AWS Batch 而不是 AWS CodeBuild?

非常感谢。

最佳答案

TLDR 摘要:AWS Codebuild 是简单作业的更好选择。


我的(反向)经历...

我需要运行一个简单的作业,从外部 api 提取数据、读取/写入外部数据库并生成 CSV 报告。

该作业需要大约 1 小时才能运行,因此 AWS Lambda 不在考虑范围内。

经过一番谷歌搜索,我找到了 AWS Batch 并决定给 Creating a Simple “Fetch & Run” AWS Batch Job试一试。

完成这项“简单”工作所需的步骤:

  • 使用 fetch & run 脚本构建 Docker 镜像
  • 为图像创建一个 Amazon ECR 存储库
  • 将构建好的镜像推送到 ECR
  • 创建一个简单的作业脚本并将其上传到 S3
  • 创建一个 IAM 角色以供作业用于访问 S3
  • 配置计算环境
  • 创建作业队列
  • 创建使用构建图像的作业定义
  • 提交并运行从 S3 执行作业脚本的作业

在花费时间创建所有这些资源之后,它并没有开箱即用。我发现自己在调试我不应该调试的随机事物,例如:

  • Dockerfile
  • 入口点脚本
  • ECS 集群
  • EC2 实例和自动扩缩组

在未能找到简单的实际示例并意识到需要付出大量努力后,我决定探索其他解决方案。

我偶然发现了 Using AWS CodeBuild to execute administrative tasks还有这篇文章。

我过去曾将 AWS Codebuild 用于 CI/CD 管道,并想“到底是什么,让我们试一试吧”。在更短的时间内,我能够在 cloudwatch 调度程序上运行“codebuild 作业”并添加了 codebuild slack 通知,而且工作量更少:

  • 将构建项目连接到您的源代码
  • 选择运行时环境
  • 创建 IAM 角色
  • 创建 buildspec.yml 并添加运行时命令

一个主要优势是 CodeBuild 在成熟的 Linux 环境中运行任务。

缺点:

  • 最长执行时间为 8 小时

AWS Codebuild 让我的简单工作更容易上手。

抱歉发了这么长的帖子,只是想分享一下我对这两个服务的体验。

关于amazon-web-services - AWS Batch 与 AWS CodeBuild,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63242887/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com