当为 CodeBuild 编写 Python Boto3 单元测试时,是否可以先 start_build() 然后 wait() 等待构建完成,然后再评估我的测试是否通过?通常,我只使用服务员,但据我所知,CodeBuild 没有任何服务员(我执行了 client.waiter_names 并得到了一个空数组,并且 Boto3 文档没有列出 CodeBuild 客户端的任何服务员)。
我发现了这个(重复的)问题,但答案并没有解决如何实际解决等待问题 - 它只是说如何检查构建的状态。如果我能以某种方式 wait() 直到状态更改为某个值,那将很有用。
这些镜像可以用作我自己的 Dockerfile 中的基础镜像吗?
我正在尝试按照AWS 文档和此在我的 CodeBuild 进程中运行一个小型 bash 脚本。
deploy.sh可以在目录中找到src/:
#!/bin/bash
pwd=$PWD
for dir in */ ; do
target="$pwd/${dir%/}"
cd "$target"
npm install
sls deploy && sls s3deploy
done
Run Code Online (Sandbox Code Playgroud)
构建规范文件:
version: 0.2
phases:
install:
runtime-versions:
nodejs: 10
commands:
- cd backend/functions/src
- npm install serverless
build:
commands:
- ls
- ./deploy.sh
Run Code Online (Sandbox Code Playgroud)
ls在日志中执行上述命令之后,我可以看到deploy.sh当前目录中存在该命令。
错误:
/codebuild/output/tmp/script.sh: 4: /codebuild/output/tmp/script.sh: ./deploy.sh: 未找到
我也尝试过使用该命令,/bin/bash deploy.sh但这会导致另一个错误:
deploy.sh:第 2 行:$'\r':找不到命令
deploy.sh:第 4 行:$'\r':找不到命令
deploy.sh:第 7 行:$'\r':找不到命令
deploy.sh:第 8 …
我在 CodeCommmit 中有一个非常简单的 Hello World Java 项目,具有以下结构
\n\nThis is a sample template for sam-app - Below is a brief explanation of what we have generated for you:\n\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 README.md <-- This instructions file \n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 HelloWorldFunction <-- Source for HelloWorldFunction Lambda Function \n\xe2\x94\x82 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 pom.xml <-- Java dependencies \n\xe2\x94\x82 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 src \n\xe2\x94\x82 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 main \n\xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 java \n\xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 helloworld \n\xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 App.java <-- Lambda function code \n\xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 GatewayResponse.java <-- POJO for API Gateway Responses object …Run Code Online (Sandbox Code Playgroud) 在 CodeBuild 项目上配置的角色在运行时环境中运行良好,但在我们从容器内部运行命令时不起作用,它显示“无法找到凭据”。
让我知道我们如何在容器内开箱即用地使用角色。
amazon-web-services amazon-iam aws-codepipeline aws-codebuild
我正在尝试在 AWS CodePipeline 中设置管道,并在触发 CodeCommit 的更改后,CodeBuild 启动。它执行文件中所述的命令buildspec.yaml,但在将内容同步到 S3 存储桶时失败。
目前,我已将策略附加到相应的 CodeBuild 服务角色AmazonS3FullAccess,但它给出了以下错误:
[Container] 2020/03/20 16:13:22 Running command aws s3 sync ./dist/ProjectName/ s3://project-name-dev
fatal error: An error occurred (AccessDenied) when calling the ListObjectsV2 operation: Access Denied
Run Code Online (Sandbox Code Playgroud)
可能是什么问题?
amazon-s3 amazon-web-services aws-codepipeline aws-codebuild
所以我需要从我的工件中排除一个文件夹,但谷歌搜索找不到任何信息。
version: 0.2
phases:
install:
runtime-versions:
nodejs: 10
build:
commands:
- echo Build started on `date`
- echo Compiling the Node.js code
- mocha test.js
post_build:
commands:
- echo Build completed on `date`
artifacts:
files:
- '**/*'
Run Code Online (Sandbox Code Playgroud) 所以我有一个名为 backend 的 Typescript 项目,其 package.json 中具有这样的依赖关系:
"dependencies": {
"@the-couple-game/helpers": "^1.0.0",
}
Run Code Online (Sandbox Code Playgroud)
助手(也是 Typescript)位于另一个文件夹中,其 package.json 如下所示:
{
"name": "@the-couple-game/helpers",
}
Run Code Online (Sandbox Code Playgroud)
因此,运行lerna bootstrap应该链接两者,并在后端的 node_modules 中安装@the- Couple-game/helpers,这是在本地执行的。
但是,使用 Codebuild 使用下面的 buildspec.yml 执行相同的操作(使用 --no-ci 因为我不想要 npm ci)不会在后端的 node_modules 中添加 @the- Couple-game/helpers 。因此,如果我运行后端的转换后的index.js,它会抱怨缺少模块。
version: 0.1
phases:
install:
commands:
- npm install -g lerna
pre_build:
commands:
- lerna bootstrap --no-ci --concurrency 4
build:
commands:
- lerna run build --concurrency 4
artifacts:
files:
- "**/*"
Run Code Online (Sandbox Code Playgroud)
目前,我必须在部署到 CodeDeploy 后手动执行 lerna 引导程序(使用从 appspec.yml 调用的脚本),以便它安装缺少的模块,但 Codebuild 不应该覆盖该部分吗? …
aws-code-deploy aws-codepipeline lerna aws-codebuild aws-code-deploy-appspec
我一直在寻找一个示例构建规范,其中将 codeartifacts 与 mvn 集成。
这是我的buildpsec,以下是我的疑惑。
buildspec file
version: 0.2
phases:
install:
runtime-versions:
java: openjdk8
commands:
- pip3 install awscli --upgrade --user
- export CODEARTIFACT_TOKEN=`aws codeartifact get-authorization-token --domain $DOMAIN --domain-owner $ACCOUNT_ID --query authorizationToken --output text`
build:
commands:
- echo Build started on `date`
- mvn package
artifacts:
type: zip
files:
- '/target/launcher-0.0.1-SNAPSHOT.jar'
cache:
paths:
- '/root/.m2/**/*'.
Run Code Online (Sandbox Code Playgroud) 我有针对Dot net 5.0 的ASP.net 核心 API 。有没有人使用 CI/CD 方法和 AWS CodeBuild 在 Amazon Linux 平台上成功部署 dotnet 5 应用程序?
我尝试使用latest解析为 version 的dotnet 3.1。而且,当我使用5.0in 时buildspec.yml,它会出错。根据博客,它似乎受到支持。但不确定如何使用buildspec.yml.
phases:
install:
runtime-versions:
dotnet: 5.0
Run Code Online (Sandbox Code Playgroud)
amazon-web-services .net-core aws-codepipeline aws-codebuild
aws-codebuild ×10
.net-core ×1
amazon-iam ×1
amazon-s3 ×1
aws-lambda ×1
bash ×1
boto3 ×1
lerna ×1