ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

使用 AWS SDK for Ruby 调用 CodeBuild:列出构建项目、查询构建状态与启动构建

使用 AWS SDK for Ruby 调用 CodeBuild:列出构建项目、查询构建状态与启动构建 示例工程教程后端【免费下载链接】aws-doc-sdk-examplesWelcome to the AWS Code Examples Repository. This repo contains code examples used in the AWS documentation, AWS SDK Developer Guides, and more. For more information, see the Readme.md file below.项目地址https://gitcode.com/gh_mirrors/aw/aws-doc-sdk-examples点击查看免费下载AWS CodeBuild 是亚马逊云科技AWS提供的全托管持续集成CI服务用于编译源代码、运行单元测试并产出可部署的构建产物。本指南以 aws-doc-sdk-examples 仓库中 ruby/example_code/codebuild 目录下的官方示例为骨架讲解如何通过 AWS SDK for Ruby 完成三类最常见的 CodeBuild 编程操作列出全部构建项目list_projects、查询历史构建及其状态list_builds与batch_get_builds、以及触发一次构建start_build。读完本文你将能够配置好 Ruby 开发环境运行官方示例并理解这些 API 调用的返回结构从而在自己的 Ruby 脚本或流水线中直接复用。一、示例目录总览仓库中 ruby/example_code/codebuild 目录下共包含 4 个文件文件作用README.md本目录官方说明文档列出前置条件、运行方式与测试状态aws-ruby-sdk-codebuild-example-list-projects.rb调用list_projects列出账户下所有 CodeBuild 项目名称aws-ruby-sdk-codebuild-example-list-builds.rb调用list_buildsbatch_get_builds列出构建记录并展示项目名、当前阶段与构建状态aws-ruby-sdk-codebuild-example-build-project.rb接收命令行参数指定的项目名调用start_build立即触发一次构建这三个 Ruby 脚本是典型的单服务动作Single-service actions示例每个脚本只调用 CodeBuild 服务的少数几个 API聚焦展示单个函数的具体用法。按 ruby/README.md 的分类说明这类示例与单服务场景Scenarios多次调用同服务不同函数完成一个任务以及跨服务示例相区别是最适合快速学习和复制的最小可运行代码。二、前置条件根据 codebuild/README.md 与 ruby/README.md运行示例前需要完成以下准备。2.1 AWS 账户与凭证需要一个可用的 AWS 账户运行示例会产生 API 调用部分操作如真实触发构建可能产生费用。必须先在本地配置 AWS 凭证Access Key / Secret KeySDK 才能完成身份认证。配置方式与全局前置要求见仓库根目录的 README.md 中 Prerequisites for all AWS SDKs 一节。强烈建议遵循最小权限原则least privilege只为执行脚本所用的 IAM 身份授予必要权限。本文三个示例实际用到的 API 权限大致为codebuild:ListProjects、codebuild:ListBuilds、codebuild:BatchGetBuilds与codebuild:StartBuild可按需收敛。2.2 Ruby 版本与依赖管理ruby/Gemfile 中声明了 Ruby 版本约束ruby 3.3.7而 ruby/README.md 记录该示例集曾在 Ruby 3.1.2 上进行过测试。实践中建议使用与仓库声明一致或更高的 3.x 版本可用ruby -v检查当前版本。SDK for Ruby 相关依赖通过 ruby/Gemfile 中的gem aws-sdk引入。从 ruby/Gemfile.lock 可以看到锁定的aws-sdk-codebuild (1.91.0)版本第 204 行以及aws-sdk对aws-sdk-codebuild (~ 1)的版本约束第 909 行。也就是说aws-sdk-codebuild采用 1.x 语义化版本aws-sdk聚合宝石会自动带入该服务 SDK。进入 ruby 目录后执行gem install bundler bundle install若本地 Ruby 版本与 Gemfile 约束不一致可修改或删除 ruby/Gemfile 中的ruby 3.3.7声明。2.3 代码风格仅贡献时需要若希望向仓库贡献 Ruby 代码ruby/README.md 说明项目使用 Rubocop 进行代码风格检查配置见.ruby-lint.yml。日常运行示例本身无需 lint。三、示例一列出所有构建项目list_projects文件 aws-ruby-sdk-codebuild-example-list-projects.rb 的完整代码如下# snippet-start:[codebuild.Ruby.listProjects] require aws-sdk-codebuild # v2: require aws-sdk client Aws::CodeBuild::Client.new resp client.list_projects({ sort_by: NAME, # accepts NAME, CREATED_TIME, LAST_MODIFIED_TIME sort_order: ASCENDING # accepts ASCENDING, DESCENDING }) if resp.projects.empty? puts No projects found! else resp.projects.each { |p| puts p } end # snippet-end:[codebuild.Ruby.listProjects]要点解读客户端初始化Aws::CodeBuild::Client.new会从环境变量、~/.aws/credentials或 IAM 角色等凭证链自动读取凭证与区域配置无需显式传参。参数说明sort_by指定排序字段合法值为NAME、CREATED_TIME、LAST_MODIFIED_TIME默认按名称sort_order指定排序方向合法值为ASCENDING或DESCENDING。返回结构list_projects返回对象的projects字段是一个项目名称字符串数组同时包含next_token用于分页此示例未处理分页。输出行为账户下没有任何项目时打印No projects found!否则逐行打印项目名。值得注意的是源码注释中保留了 v2 兼容写法# v2: require aws-sdk——即旧版 SDK for Ruby v2 时代只需require aws-sdk而 SDK v3 推荐按服务引入require aws-sdk-codebuild以减小加载体积。四、示例二列出构建记录并查看状态list_builds batch_get_builds文件 aws-ruby-sdk-codebuild-example-list-builds.rb 展示了如何先列表、后取详情的两步式调用# snippet-start:[codebuild.Ruby.listBuilds] require aws-sdk-codebuild # v2: require aws-sdk client Aws::CodeBuild::Client.new build_list client.list_builds({ sort_order: ASCENDING }) if build_list.ids.empty? puts No builds found! else builds client.batch_get_builds({ ids: build_list.ids }) builds.builds.each do |build| puts Project: #{build.project_name} puts Phase: #{build.current_phase} puts Status: #{build.build_status} end end # snippet-end:[codebuild.Ruby.listBuilds]要点解读list_builds只返回构建 ID 列表ids字段不返回完整构建详情sort_order同样接受ASCENDING/DESCENDING。batch_get_builds接收构建 ID 数组返回builds数组每个元素是完整的构建对象。示例提取了三个最常用的构建属性project_name该构建所属的 CodeBuild 项目名current_phase当前所处阶段如SUBMITTED、PROVISIONING、BUILD、FINALIZING等build_status构建最终状态如SUCCEEDED、FAILED、FAULT、TIMED_OUT等。空结果时输出No builds found!避免对空数组迭代产生误解。这一列表 批量查询详情的组合是 CodeBuild 编程中的典型模式列表接口轻量、适合分页遍历详情接口信息丰富适合需要渲染状态面板或做告警判断的场景。五、示例三触发一次构建start_build文件 aws-ruby-sdk-codebuild-example-build-project.rb 演示了从命令行接收项目名并立即启动构建# snippet-start:[codebuild.Ruby.buildProject] require aws-sdk-codebuild # v2: require aws-sdk project_name if ARGV.length ! 1 puts You must supply the name of the project to build exit 1 else project_name ARGV[0] end client Aws::CodeBuild::Client.new begin client.start_build(project_name: project_name) puts Building project #{project_name} rescue StandardError e puts Error building project: #{e.message} end # snippet-end:[codebuild.Ruby.buildProject]要点解读命令行参数校验脚本要求恰好 1 个参数项目名参数数量不符时输出提示并以退出码 1 终止属于健壮的 CLI 脚本写法。start_build只需传入project_name即可按该项目的构建配置构建环境、构建命令、artifact 设置等启动一次构建。异常处理使用begin/rescue StandardError捕获调用失败例如项目不存在、IAM 权限不足、超出并发配额等打印Error building project: ...而不是让脚本直接崩溃。执行方式ruby aws-ruby-sdk-codebuild-example-build-project.rb my-codebuild-projectstart_build属于会产生实际构建消耗的写操作请在确认目标项目配置正确后再运行。六、运行与验证所有示例脚本都在 ruby/example_code/codebuild 目录下直接以 Ruby 执行不需要编译# 列出构建项目 ruby aws-ruby-sdk-codebuild-example-list-projects.rb # 列出构建记录及状态 ruby aws-ruby-sdk-codebuild-example-list-builds.rb # 启动指定项目的构建 ruby aws-ruby-sdk-codebuild-example-build-project.rb PROJECT_NAME建议的验证顺序先运行list_projects确认凭证与区域配置正确、能看到已有项目再运行list_builds观察历史构建最后仅在有意触发构建时运行build-project脚本。关于测试按 codebuild/README.md 的说明本目录的示例代码目前未包含自动化测试。对比仓库中其他 Ruby 服务示例例如 ruby/README.md 所述测试统一使用 RSpec单元测试通过 stubbed responses 不产生真实 AWS 请求、可用rspec --tag ~integ运行集成测试会真实创建/销毁资源、可用rspec --tag integ运行本目录既没有spec文件夹也没有测试脚本。因此验证本目录示例的唯一途径就是直接运行脚本观察输出并注意运行示例可能对 AWS 账户产生费用的官方提醒。七、费用与安全注意事项codebuild/README.md 的 ⚠ Important 部分明确提醒费用运行这些代码可能对你的 AWS 账户产生费用尤其是start_build会真实消耗 CodeBuild 构建时长具体计费以 AWS Pricing 与 Free Tier 为准。运行测试同样可能产生费用本目录虽无测试但这是该仓库所有示例的通用约定。最小权限只授予完成任务所需的最低 IAM 权限。区域差异CodeBuild 并非在每个 AWS 区域都可用示例代码也未在全部区域逐一测试部署前请确认目标区域支持该服务。八、进一步学习继续阅读仓库内的 ruby/README.md 了解 SDK for Ruby v3 示例的整体组织方式、依赖解析与测试约定查看本仓库其他语言如 go 、dotnetv3 等目录中 CodeBuild 的示例做横向对比若希望参与完善这些示例可参考 CONTRIBUTING.md 了解贡献流程官方文档CodeBuild 用户指南、CodeBuild API Reference 与 SDK for Ruby 的Aws::CodebuildAPI 参考链接见 codebuild/README.md 的 Additional resources 小节。三个脚本加在一起覆盖了 CodeBuild 编程中最核心的读与写两类操作list_projects/list_builds/batch_get_builds用于读取项目与构建状态start_build用于写入新的构建请求。掌握了它们你就具备了用 Ruby 搭建 CI 监控脚本、触发按需构建的完整基础。赞分享示例工程教程后端【免费下载链接】aws-doc-sdk-examplesWelcome to the AWS Code Examples Repository. This repo contains code examples used in the AWS documentation, AWS SDK Developer Guides, and more. For more information, see the Readme.md file below.项目地址https://gitcode.com/gh_mirrors/aw/aws-doc-sdk-examples点击查看免费下载相关推荐AWS SDK for C CodeBuild 代码示例构建列表、项目查询与构建启动实战AWS SDK for C CodeBuild 代码示例构建列表、项目查询与构建启动实战 导读 本指南围绕 AWS Code Examples 仓库中 c示例工程教程后端AWS CodeBuild 的 AWS SDK for GoV1实战示例构建项目、列出构建与项目AWS CodeBuild 的 AWS SDK for GoV1实战示例构建项目、列出构建与项目 导读 本文基于 AWS 文档代码示例仓库中的 go/co示例工程教程后端使用 AWS CLI list-builds-for-project 查看 CodeBuild 项目构建列表使用 AWS CLI list builds for project 查看 CodeBuild 项目构建列表 导读 aws codebuild list bui开发工具云原生运维上一篇logos-in-pure-css Dropbox Logo技术解析CSS负空间艺术下一篇OpenAlphaDiffract核心功能揭秘从PXRD图谱到晶体系统的AI黑箱解析创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表