AWS CodeBuild 不在断点处暂停

发布于 2025-01-10 13:52:13 字数 2595 浏览 0 评论 0原文

使用此处提供的步骤,我启动了 CodeBuild选中以下高级选项:

  • 启用会话连接
  • 允许 AWS CodeBuild 修改此服务角色,以便它可以与此构建项目一起使用

构建规范包含一个代码构建断点:

version: 0.2
phases:
  pre_build:
    commands:
      - ls -al
      - codebuild-breakpoint
      - cd "${SERVICE_NAME}"
      - ls -al
      - $(aws ecr get-login)
      - TAG="$SERVICE_NAME"
  build:
    commands:
      - docker build --tag "${REPOSITORY_URI}:${TAG}" .
  post_build:
    commands:
      - docker push "${REPOSITORY_URI}:${TAG}"
      - printf '{"tag":"%s"}' $TAG > ../build.json
artifacts:
  files: build.json

构建开始并生成以下日志没有暂停

[Container] 2022/02/28 13:49:03 Entering phase PRE_BUILD
[Container] 2022/02/28 13:49:03 Running command ls -al
total 148
drwxr-xr-x 2 root root  4096 Feb 28 13:49 .
drwxr-xr-x 3 root root  4096 Feb 28 13:49 ..
-rw-rw-rw- 1 root root  1818 Feb 28 10:54 user-manager\Dockerfile
-rw-rw-rw- 1 root root   140 Feb 28 10:34 user-manager\body.json
-rw-rw-rw- 1 root root     0 Feb 28 10:54 user-manager\shared-modules\
-rw-rw-rw- 1 root root  4822 Feb 21 14:52 user-manager\shared-modules\config-helper\config.js
-rw-rw-rw- 1 root root  2125 Feb 21 14:52 user-manager\shared-modules\config-helper\config\default.json
-rw-rw-rw- 1 root root   366 Feb 21 14:52 user-manager\shared-modules\config-helper\package.json
-rw-rw-rw- 1 root root  9713 Feb 21 14:52 user-manager\shared-modules\dynamodb-helper\dynamodb-helper.js
-rw-rw-rw- 1 root root   399 Feb 21 14:52 user-manager\shared-modules\dynamodb-helper\package.json
-rw-rw-rw- 1 root root   451 Feb 21 14:52 user-manager\shared-modules\token-manager\package.json
-rw-rw-rw- 1 root root 13885 Feb 21 14:52 user-manager\shared-modules\token-manager\token-manager.js
-rw-rw-rw- 1 root root 44372 Feb 28 10:34 user-manager\src\cognito-user.js
-rw-rw-rw- 1 root root   706 Feb 28 10:34 user-manager\src\package.json
-rw-rw-rw- 1 root root 32734 Feb 28 10:34 user-manager\src\server.js

[Container] 2022/02/28 13:49:03 Running command codebuild-breakpoint
2022/02/28 13:49:03 Build is paused temporarily and you can use codebuild-resume command in the session to resume this build

[Container] 2022/02/28 13:49:03 Running command cd "${SERVICE_NAME}"
/codebuild/output/tmp/script.sh: 4: cd: can't cd to user-manager

我的主要问题是:为什么构建暂停和会话管理器链接不可用?

支线任务:我尝试调试会话的原因是尝试确定为什么该进程无法 CD 到 user-manager 文件夹(该文件夹显然存在)。有什么想法吗?

Using steps provided here, I kicked off a CodeBuild with the following advanced options checked:

  • Enable session connection
  • Allow AWS CodeBuild to modify this service role so it can be used with this build project

The buildspec included a codebuild-breakpoint:

version: 0.2
phases:
  pre_build:
    commands:
      - ls -al
      - codebuild-breakpoint
      - cd "${SERVICE_NAME}"
      - ls -al
      - $(aws ecr get-login)
      - TAG="$SERVICE_NAME"
  build:
    commands:
      - docker build --tag "${REPOSITORY_URI}:${TAG}" .
  post_build:
    commands:
      - docker push "${REPOSITORY_URI}:${TAG}"
      - printf '{"tag":"%s"}' $TAG > ../build.json
artifacts:
  files: build.json

The build started and produced the following logs without pausing:

[Container] 2022/02/28 13:49:03 Entering phase PRE_BUILD
[Container] 2022/02/28 13:49:03 Running command ls -al
total 148
drwxr-xr-x 2 root root  4096 Feb 28 13:49 .
drwxr-xr-x 3 root root  4096 Feb 28 13:49 ..
-rw-rw-rw- 1 root root  1818 Feb 28 10:54 user-manager\Dockerfile
-rw-rw-rw- 1 root root   140 Feb 28 10:34 user-manager\body.json
-rw-rw-rw- 1 root root     0 Feb 28 10:54 user-manager\shared-modules\
-rw-rw-rw- 1 root root  4822 Feb 21 14:52 user-manager\shared-modules\config-helper\config.js
-rw-rw-rw- 1 root root  2125 Feb 21 14:52 user-manager\shared-modules\config-helper\config\default.json
-rw-rw-rw- 1 root root   366 Feb 21 14:52 user-manager\shared-modules\config-helper\package.json
-rw-rw-rw- 1 root root  9713 Feb 21 14:52 user-manager\shared-modules\dynamodb-helper\dynamodb-helper.js
-rw-rw-rw- 1 root root   399 Feb 21 14:52 user-manager\shared-modules\dynamodb-helper\package.json
-rw-rw-rw- 1 root root   451 Feb 21 14:52 user-manager\shared-modules\token-manager\package.json
-rw-rw-rw- 1 root root 13885 Feb 21 14:52 user-manager\shared-modules\token-manager\token-manager.js
-rw-rw-rw- 1 root root 44372 Feb 28 10:34 user-manager\src\cognito-user.js
-rw-rw-rw- 1 root root   706 Feb 28 10:34 user-manager\src\package.json
-rw-rw-rw- 1 root root 32734 Feb 28 10:34 user-manager\src\server.js

[Container] 2022/02/28 13:49:03 Running command codebuild-breakpoint
2022/02/28 13:49:03 Build is paused temporarily and you can use codebuild-resume command in the session to resume this build

[Container] 2022/02/28 13:49:03 Running command cd "${SERVICE_NAME}"
/codebuild/output/tmp/script.sh: 4: cd: can't cd to user-manager

My primary question is: Why didn't the build pause and session manager link become available?

Side-quest: The reason I'm trying to debug the session is to try to determine why the process can't CD to the user-manager folder (which clearly exists). Any ideas why?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

黎歌 2025-01-17 13:52:13

TLDR:构建机器上的镜像太旧了。

主要任务

模板指定aws/codebuild/ubuntu-base:14.04 作为 CodeBuild 映像。据推测,该映像早于会话管理器功能(需要安装特定版本的 SSM 代理)。

我将代理更新为 aws/codebuild/standard:5.0 并能够成功在断点处暂停并连接到会话。

支线任务

连接后,我能够调查无法将 CD 写入文件夹的原因。我可以确认 Tim 的在黑暗中拍摄正确的!所有条目实际上都是文件 - 没有文件夹。

本快速入门是一份持续赠送的礼物!当/如果我解决了所有问题,我将提交 PR 来更新项目。对文件/文件夹问题的原因感兴趣的人可以在那里跟进。

支线任务更新
奇怪的扁平化行为是由于在 Windows 计算机上创建 zip 文件并在 unix 计算机上解压缩(构建代理使用 Ubuntu 映像)造成的。只需使用 7-Zip 对其进行压缩即可完成工作。

TLDR: The image on the build machine was too old.

Main quest

The template specified aws/codebuild/ubuntu-base:14.04 as the CodeBuild image. Presumably that image pre-dated the Session Manager functionality (which requires a specific version of the SSM agent to be installed).

I update the agent to aws/codebuild/standard:5.0 and was able to successfully pause on the breakpoint and connect to the session.

Side quest

Once I connected I was able to investigate the cause of the inability to CD to the folder. I can confirm that Tim's shot in the dark was correct! All the entries were in fact files - no folders.

This QuickStart is the gift that keeps on giving! When/if I get all the issues resolved I'll submit a PR to update the project. Those interested in the cause of the file/folder issue can follow up there.

Side quest update
The strange flattening behaviour was due to creating the zip file on a Windows machine and unzipping it on a unix machine (the build agent uses an Ubuntu image). Just zipped it using 7-Zip and that did the job.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文