我是AWS CodePipeline的新手,从未有过像Jenkins等任何持续集成工具的经验.我创建了一个新的AWS CodePipeline 作为AWS CodeCommit(代码库) - > CodeBuild(不是docker,环境是NodeJS 7) - > AWS CodeDeploy.一切都在AWS上.它是一个Angular2项目,最终部署在EC2实例上(Windows server 2008).从我的本地机器,我能够通过活动的IAM用户(Git访问)将我的代码提交到AWS CodeCommit,然后我可以看到CodePipleline开始运行,其中Source很好(绿色)但下一步即构建失败(红色颜色).当我点击它的详细信息时,我可以看到以下错误日志: -
https://forums.aws.amazon.com/ 2016/12/23 18:21:16等待代理商 https://forums.aws.amazon.com/ 2016/12/23 18:21:36阶段是DOWNLOAD_SOURCE https://forums.aws.amazon.com/ 2016/12/23 18:21:38阶段完成:DOWNLOAD_SOURCE成功:false https://forums.aws.amazon.com/ 2016/12/23 18:21: 38阶段上下文状态代码:YAML_FILE_ERROR消息:YAML文件不存在 https://forums.aws.amazon.com/ 2016/12/23 18:21:38运行时错误(YAML文件不存在)
有人可以指导我这个错误吗?我不知道这个YAML文件意味着什么.我用谷歌搜索,但在我的NodeJS Angular项目中找不到任何相关内容.
谢谢你,Vinod Kumar
git amazon-ec2 aws-codecommit aws-codepipeline aws-codebuild
我正在使用AWS CodeBuild和Terraform自动部署基于Lambda的服务.我有一个非常简单的buildscript.yml完成以下内容:
"获取信用档案"这一步骤是我遇到困难的地方.我有一个简单的bash单行程序,它抓取AWS容器信誉curl 169.254.170.2$AWS_CONTAINER_CREDENTIALS_RELATIVE_URI,然后按以下格式将它们保存到文件中:
export AWS_ACCESS_KEY_ID=SOMEACCESSKEY
export AWS_SECRET_ACCESS_KEY=MYSECRETKEY
export AWS_SESSION_TOKEN=MYSESSIONTOKEN
Run Code Online (Sandbox Code Playgroud)
当然,显而易见的一步就是简单地source将这些变量添加到我的环境中以供Terraform使用.但是,当我这样做时source /path/to/creds_file.txt,CodeBuild返回:
[Container] 2017/06/28 18:28:26 Running command source /path/to/creds_file.txt
/codebuild/output/tmp/script.sh: 4: /codebuild/output/tmp/script.sh: source: not found
Run Code Online (Sandbox Code Playgroud)
我试图安装source通过,apt但后来我得到一个错误,说source无法找到(是的,我已经运行apt update等).我在CodeBuild的Python 2.7环境中使用标准的Ubuntu映像.如何在Codebuild中为源凭据文件获取Terraform工作凭据.
谢谢!
所以我有一个相当简单的堆栈我正在尝试设置由一个订阅SNS主题的Lambda函数组成.我想使用CodePipeline有三个阶段:Source(GitHub) - > Build(CodeBuild) - > Deploy(CloudFormation).
我设法凑齐了一个模板和buildspec文件,这是有效的,除了我失去了我应该如何引用CodeBuild在CloudFormation模板中产生的输出工件; 现在我只有占位符内联代码.
基本上,Code:为了获得CodeBuild文件(这是我在CodePipeline中的输出工件),我应该放在Lambda函数的属性中?
template.yml:
AWSTemplateFormatVersion: 2010-09-09
Resources:
SNSTopic:
Type: 'AWS::SNS::Topic'
Properties:
Subscription:
- Endpoint: !GetAtt
- LambdaFunction
- Arn
Protocol: lambda
LambdaFunction:
Type: 'AWS::Lambda::Function'
Properties:
Runtime: python3.6
Handler: main.lamda_handler
Timeout: '10'
Role: !GetAtt
- LambdaExecutionRole
- Arn
Code:
ZipFile: >
def lambda_handler(event, context):
print(event)
return 'Hello, world!'
LambdaExecutionRole:
Type: 'AWS::IAM::Role'
Properties:
AssumeRolePolicyDocument:
Version: 2012-10-17
Statement:
- Effect: Allow
Principal:
Service:
- lambda.amazonaws.com
Action:
- 'sts:AssumeRole'
ManagedPolicyArns:
- 'arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole'
LambdaInvokePermission:
Type: 'AWS::Lambda::Permission' …Run Code Online (Sandbox Code Playgroud) amazon-web-services aws-cloudformation aws-codepipeline aws-codebuild
我正在尝试CodeBuild,但已经达到了死胡同.我的构建总是失败并显示错误消息:
Build没有互联网连接.请检查子网网络配置.
我检查了VPC配置(子网,安全组),它们似乎没问题.为了测试互联网连接,我在同一个子网中启动了一个EC2实例,它能够与外部服务进行通信(我尝试了ping和一些HTTP GET).
如何解决此"互联网连接"问题?
我正在一个项目中运行CodeBuild,该项目具有存储在CodeCommit中的私有要求.
我需要添加一个命令buildspec.yml来加载https git凭据,以便git clone在CodeBuild运行时起作用pip install.
构建失败了 fatal: could not read Username for 'https://git-codecommit.us-west-2.amazonaws.com': No such device or address
我正在尝试在 AWS CodeBuild 中创建一个新项目。每次我尝试收到以下错误时:
Not authorized to perform DescribeSecurityGroups
任何帮助将不胜感激。
我用非常简单的代码创建了一个代码管道并连接到 codecommit。试图构建它,但它在代码构建步骤失败,说明执行 npm install 时出错我是不是遗漏了什么。对不起,我是这个代码构建/代码管道的新手
下面是代码构建失败的日志
[Container] 2019/02/15 11:47:39 Waiting for agent ping
[Container] 2019/02/15 11:47:40 Waiting for DOWNLOAD_SOURCE
[Container] 2019/02/15 11:47:40 Phase is DOWNLOAD_SOURCE
[Container] 2019/02/15 11:47:40 CODEBUILD_SRC_DIR=/codebuild/output/src501317273/src
[Container] 2019/02/15 11:47:40 YAML location is /codebuild/output/src501317273/src/buildspec.yml
[Container] 2019/02/15 11:47:40 Processing environment variables
[Container] 2019/02/15 11:47:40 Moving to directory /codebuild/output/src501317273/src
[Container] 2019/02/15 11:47:40 Registering with agent
[Container] 2019/02/15 11:47:40 Phases found in YAML: 1
[Container] 2019/02/15 11:47:40 BUILD: 2 commands
[Container] 2019/02/15 11:47:40 Phase complete: DOWNLOAD_SOURCE Success: true
[Container] 2019/02/15 11:47:40 …Run Code Online (Sandbox Code Playgroud) 基本上,我需要使用ECS容器的Bitbucket源代码配置CI / CD。我想使用CodePipline将新的ECR映像部署到ECS。
当前,AWS CodePipline中没有选项将bitbucket指定为源。但是,我设法通过Webhooks配置CodeBuild,因此它会构建docker文件,并在每次发布发布分支时将其推送到ECR。
我想将ECR配置为CodePipline中的“源”阶段,并将其部署到现有的ECS群集/服务中,因此部署将自动进行。
不幸的是,如果在部署步骤中出现以下错误,则会导致基本配置和工件链接:
Invalid action configuration
The image definition file imageDetail.json contains invalid JSON format
Run Code Online (Sandbox Code Playgroud)
尽管“ Amazon ECR”阶段将imageDetail.json作为输出工件提供,但“ Amazon ECS”部署提供程序似乎并不期望这样做。有什么合理的方法解决这个问题吗?
我知道,可以使用bitbucket + API Gateway / Lambda + CodePipeline配置CI / CD,我也考虑使用CodeCommit代替bitbucket作为源存储库-仍然,希望有一种可能的优雅解决方案,将bitbucket与直接使用CodePipeline。
UPD: 我得到的配置非常好,如本博文所述:总体思路是允许CodeBuild将源代码从bitbucket上传到S3,然后使用CodePipeline和S3作为源将新的docker映像部署到ECR并发布ECS集群中新的任务定义修订。S3仍在开销中,我正在为该任务寻找更优雅的解决方案。
使用 AWS CodeBuild,您可以将 GitHub 定义为源。如果您的回购是私有的,您可以传递个人令牌。我已经构建了一个 CodeBuild 过程并确认这有效。
我想要做的不是使用个人令牌,而是使用 GitHub 部署密钥对私有存储库进行身份验证。我已经在 GitHub 中设置了 Deploy Key。如何在 AWS CodeBuild 控制台或 YAML 脚本中进行配置?
我正在尝试为我的 golang 项目在本地运行 CodeBuild。我已经拉取amazon/aws-codebuild-local:latest了 docker镜像并运行了 CodeBuild 脚本./codebuild_build.sh -i aws/codebuild/standard:2.0 -s "/project/src",什么也没发生。然后我捕获了脚本中生成的 docker 命令:docker run -it -v //var/run/docker.sock:/var/run/docker.sock -e "IMAGE_NAME=aws/codebuild/standard:2.0" -e "SOURCE=/project/src" -e "INITIATOR=me" amazon/aws-codebuild-local:latest.
当我运行 docker 命令时,出现以下错误:
Removing network agent-resources_default
Removing volume agent-resources_source_volume
Removing volume agent-resources_user_volume
Creating network "agent-resources_default" with the default driver
Creating volume "agent-resources_source_volume" with local driver
Creating volume "agent-resources_user_volume" with local driver
Pulling build (aws/codebuild/standard:2.0)...
ERROR: The image for the service you're trying to recreate has been removed. If you continue, …Run Code Online (Sandbox Code Playgroud) aws-codebuild ×10
git ×2
amazon-ec2 ×1
amazon-ecs ×1
aws-ecr ×1
bash ×1
deploy-keys ×1
docker ×1
git-config ×1
github ×1
go ×1
npm ×1
terraform ×1