标签: aws-codestar

在AWS Codestar中,如何配置分支部署到特定环境?

我刚刚创建了一个全新的AWS Codestar项目。

据我所知,Codestar只是一个集成了多个AWS产品的仪表板。

我还不知道如何配置,这是分支部署。

在我的git仓库,我有3个分支:masterdevelopstaging

在理想的世界中,master部署到生产,develop开发环境和stagingQA环境。

我不知道如何使用AWS配置该管道,也无法在其开发人员门户中找到相关文档。

这是我的buildspec.yml文件,以防万一可以在此处配置:

version: 0.2

phases:
  install:
    commands:
      - echo Installing NPM Packages...
      - npm install
  build:
    commands:
      - aws cloudformation package --template template.yml --s3-bucket $S3_BUCKET --output-template template-export.yml

artifacts:
  type: zip
  files:
    - template-export.yml
Run Code Online (Sandbox Code Playgroud)

这是一个使用AWS API Gateway将请求路由到AWS Lambda函数的项目。

amazon-web-services aws-cloudformation aws-api-gateway aws-codestar

8
推荐指数
1
解决办法
910
查看次数

AWS CodeBuild中的Python 3.6不可用,AWS Lambda中的Python 3.5不可用

我有一个Python 3项目,我试图通过AWS Codestar部署到AWS Lambda - > Codepipeline - > Codebuild - > Cloudformation.

我的项目(实际上只包含一个简单的API网关处理程序方法)导入了Python 3(需要3个)项目(报纸).我在家用电脑上使用Virtualenv 15.1.0,如果我使用Python 3.5安装Newspaper然后上传到Lambda(Python 3.6运行时),它会抛出与PIL/Pillow相关的错误.

首先它说它找不到_image,这似乎是通过删除site-packages中的PIL目录来解决的,但这只会导致它抛出无法找到PIL的错误.

但是,如果我使用Python 3.6构建然后上传到Lambda,它可以正常工作(无论我是否删除PIL).

所以,在我看来,我无法使用3.5安装Newspaper并尝试在3.6运行时执行.

所以,现在我试图通过Codestar进行部署,但Codestar似乎默认为aws/codebuild/eb-nodejs-4.4.6-amazonlinux-64:2.1.3,即使对于Python项目,它似乎都可用于Yum存储库是Python 3.5,当然Lambda只有3.6运行时.

即使我在Codebuild本身内切换图像,似乎也没有使用Python3.6运行时构建的任何图像(根据文档).甚至Docker图像似乎也缺乏Python 3.6.

所以,我试图在我的buildspec.yml文件的INSTALL阶段在Codebuild中安装Python 3.6,但是在安装后我找不到python3*可执行文件.

我能想到的唯一另一件事是创建Codestar项目,编辑codebuild以使用Ubuntu然后安装所有东西(就像我在本地做的那样),但是没有办法在Codestar中做到这一点,我觉得这可能带来我在一个兔子洞里,这很难自动化.有没有办法将该配置作为我项目中的代码?

编辑 尝试从源代码构建和安装Python 3.6,但是当尝试安装Pip时,我收到错误,说没有安装SSL.回顾构建日志时,似乎还没有安装其他"位".

所以,我的问题是:

  • 如何将Python 3.6引入Codestar项目中的Codebuild环境?
  • 我应该继续尝试从源代码构建它还是切换到Ubuntu环境?
  • 如何在代码/项目中自动配置图像/环境?

编辑1对于其他任何人,我的完整的buildspec.yml用于安装和使用Python3.6如下.请注意,它可以使一切尽可能安静,以减少日志消息,降低Cloudwatch成本并加快流程.通过这样做(安装Python并构建我的应用程序),我最终在整个过程中大约缩短了90秒.由于CodeBuild根据花费的时间收费,因此这一点至关重要.

version: 0.2

phases:
  install:
    commands:
      - yum -qye 0 update
      - yum -qye 0 groupinstall development
      - yum -y install python-devel
      - yum -qye 0 install libxml2-devel libxslt-devel libjpeg-devel zlib-devel libpng-devel openssl-devel sqlite-devel
      - export HOME_DIR=`pwd`
      # I would recommend hosting …
Run Code Online (Sandbox Code Playgroud)

python amazon-web-services aws-lambda aws-codebuild aws-codestar

7
推荐指数
2
解决办法
2890
查看次数

buildspec、appspec 和滚动我自己的 AMI 之间有什么区别?

除了结构之外,我对buildspec.yml和文件之间的区别感到相当困惑。appspec.yml我的构建规范中的阶段命令似乎对部署环境没有太大影响,并且在运行过程(例如安装)时使用哪个 appspec 挂钩之间也存在类似的模糊性。只要该过程发生在需要它的阶段之前,我就看不到阶段之间的差异。(我已阅读规范参考文档;他们大多确认这些阶段的标题是出于其目的,但并不是真正的目的。)

举个例子,为什么每次我必须进行部署时,我不直接使用 Packer 烘焙自己的 AMI,然后启动一个新主机并附加 AMI?

packer aws-code-deploy aws-codepipeline aws-codestar cicd

7
推荐指数
1
解决办法
3778
查看次数

如何使用 CodeStar 连接将 git 标签推送到 AWS Pipeline 中的 GitHub?

我有一个通过 CodeStar Connection 连接到 GitHub 的 AWS Pipeline。该过程如下所示:

  1. 从 GitHub 获取源代码
  2. 构建项目
  3. 运行测试
  4. 部署

在步骤 4 之前(或作为步骤 4 的一部分),我希望 AWS Pipeline 使用 git 标签标记代码,然后将其推回 GitHub 中的存储库。

我怎样才能做到这一点?

git github aws-codepipeline aws-codestar

6
推荐指数
1
解决办法
3859
查看次数

AWS Connector for GitHub 如何使用写入权限?

我正在尝试寻找解释为什么适用于 GitHub 的 AWS CodeStar 连接器需要管理、代码和拉取请求的写入权限。官方文档中没有提到它

我感到不舒服,因为我无法选择退出。

amazon-web-services aws-codepipeline aws-codebuild aws-codestar

6
推荐指数
0
解决办法
374
查看次数

如何将 AWS CodeStar 用于 Angular 应用程序?

谁能告诉我我们如何为 Angular 应用程序配置 AWS CodeStar 项目?

目前没有针对 angular 的特定项目模板。但我看到 Node.js + Lambda 项目模板在那里。

我不知道它是如何工作的,因为每当我进行一些更改时,我都会将 dist/ 文件夹下的文件部署到服务器。

是否可以将 CodeStar 用于 angular 项目?

提前致谢!

continuous-integration amazon-web-services continuous-deployment angular aws-codestar

5
推荐指数
1
解决办法
1327
查看次数

将 CodeStar Spring MVC 项目改为 Spring Boot

我有一个在 IDE 中运行时完美运行的 Spring Boot 项目。我想通过 AWS CodeStar 运行它。不幸的是,CodeStar 创建的默认 Spring 模板使用的是 Spring MVC。

我不能只用我的 Spring Boot 项目覆盖默认的 Spring MVC 项目(它不起作用)。我可以将我的一些资源复制到 MVC 项目中,例如 index.html 并且有效。但是,像 Thymeleaf 这样的功能就不起作用了。由于这个和其他原因,我想将提供的 Spring MVC 更改为我已经拥有的 Spring Boot 结构。

我按照这里的说明操作:https : //www.baeldung.com/spring-boot-migration

不幸的是,这没有帮助。我可以创建应用程序入口点并添加 Spring Boot 依赖项而不会破坏应用程序。但是当我删除默认依赖项或与 MVC 关联的配置时,应用程序会中断。尝试访问 URL 时,我收到 404 错误描述:

源服务器没有找到目标资源的当前表示,或者不愿意透露一个存在。

调试此错误消息(例如https://www.codejava.net/java-ee/servlet/solved-tomcat-error-http-status-404-not-found)没有帮助。

该消息似乎已连接到网络资源。我在文件夹资源以及 webapp/resources 中有我的网络资源。而且 Spring Boot 不需要任何位置配置,对吧?它默认使用此位置。

有人可以告诉我要删除哪些内容以及添加哪些内容才能使用我现有的 Spring Boot 项目吗?

编辑:

这是 AWS CodeStar Spring Web 应用程序默认模板的链接:https : //github.com/JanHorcicka/AWS-codestar-template

这是我的 Spring Boot 项目结构:

结构

java spring-mvc thymeleaf spring-boot aws-codestar

5
推荐指数
1
解决办法
387
查看次数

将 AWS CodeStar 连接信息与 CodeBuild 结合使用

我正在使用 CodePipeline 进行 CI/CD 流程。目前,我正在从 CodeCommit 迁移到私有 GitHub 存储库,我希望继续自动化我的标签和发布流程。问题是我需要一个个人令牌才能这样做。然而,话虽这么说,我们确实对同一个存储库使用 CodeStar 连接。现在我的问题是,是否可以提取 CodeBuild 连接中提供的令牌?

TIA

amazon-web-services aws-codepipeline aws-codebuild aws-codestar

5
推荐指数
0
解决办法
1684
查看次数

CodeStar / CodeBuild Role X信任过多的服务,仅预期1

我正在使用默认的NodeJS和无服务器模板测试CodeStar。由于某种原因,此模板对于运行时环境默认为nodejs 8.11,对于构建环境默认为6.10。

为了同步它们,我尝试覆盖构建映像以使其匹配。不幸的是,我遇到了一个错误:

在此处输入图片说明

奇怪的是,我没有这个名字的任何角色。与AWS没有太多关系,所以很可能我在这里忽略了明显的事情?

node.js aws-codebuild aws-codestar

4
推荐指数
1
解决办法
1060
查看次数

使用 Lambda 在 AWS Codestar 中安装 Python 依赖项

我正在尝试 AWS Codestar。我的目标是部署一个重要的 lambda 端点,即处理程序具有依赖项的位置。理想情况下,我希望能够在requirements.txt某个文件中指定它们,但这似乎并不那么简单。具体来说,我想部署一个依赖于 nltk 的 lambda 处理程序,并且 nltk 分词器“punkt”的文件作为 Codebuild 过程的一部分下载并打包用于 Lambda。

如何通过buildspec.ymland来完成此操作template.yml?下面,我尝试将pip依赖项安装到子目录lib并将其包含在 zip 工件中。

运行时,Codebuild 能够安装依赖项、导入 nltk 并运行测试,部署到 Lambda 成功,并且正确的文件正在打包到子lib文件夹中(我下载了 ZIP 文件进行检查),但我在 Lambda 日志中看到错误unable to import module 'index': No module named 'nltk': 。

这是我的buildspec.yml

    版本:0.2

    阶段:
      安装:
        命令:
          -pip install -r 要求.txt -t lib
          # 将AWS CLI升级到最新版本
          - pip install --升级 awscli

      预构建:
        命令:
          - 蟒蛇-V
          - 导出 PYTHONPATH=$PYTHONPATH:./lib
          - 导出 …

amazon-web-services aws-lambda aws-codestar

3
推荐指数
1
解决办法
2663
查看次数

为 Elastic beanstalk 创建 A/B 测试

最近我在 AWS 中创建了一个 codestar Web 服务。这在内部使用弹性 beanstalk 环境与负载平衡器、代码管道、代码部署服务进行端到端工作。我现在可以做的是在本地进行一些代码更改并将其部署到 codestar。我现在想做的是设置额外的环境,比如 alpha-environment 并首先将其部署到我的生产环境中以进行更好的测试。我可以做的一种方法是为 alpha 阶段创建一个额外的环境,对其进行一些更改部署,然后手动部署到 prod 阶段。但这将在 AWS 中创建两个不同的存储库,我不知道如何将更改从 alpha-environment 复制到 prod-environment。请告诉我首先部署到 alpha 阶段然后自动部署到 beta 阶段的最佳方法。

amazon-ec2 amazon-web-services amazon-elastic-beanstalk aws-codepipeline aws-codestar

2
推荐指数
1
解决办法
1137
查看次数

AWS CodePipeline 自定义 Lambda 函数永远运行且永不返回

我有一个简单的 AWS CodePipeline,其标准“源”->“构建”->“部署”管道阶段工作正常,我正在尝试添加我自己的自定义最终管道阶段,它是单个 AWS Lambda 函数。问题是我的最后一个自定义 Lambda 函数多次运行,很长时间后,出现以下消息错误:

在此处输入图片说明

请参阅随附的整个管道的屏幕截图:

在此处输入图片说明

当管道到达最后一步时,它会以“蓝色(进行中)”状态旋转很长时间,然后显示错误,如下所示:

在此处输入图片说明

这是我的 Lambda 函数代码:

from __future__ import print_function
import hashlib
import time
import os
import boto3
import json
from botocore.exceptions import ClientError

def lambda_handler(event, context):

    # Test
    AWS_ACCESS_KEY = ASDF1234
    AWS_SECRET_KEY = ASDF1234
    SQS_TESTING_OUTPUT_STATUS_QUEUE_NAME = 'TestingOutputQueue'

    # Get the code pipeline
    code_pipeline = boto3.client('codepipeline')

    # Get the job_id
    for key, value in event.items():
        print(key,value)
    job_id = event['CodePipeline.job']['id']
    DATA = json.dumps(event)

    # Create a connection the SQS Notification service
    sqs_resource_connection = boto3.resource( …
Run Code Online (Sandbox Code Playgroud)

amazon-web-services boto3 aws-lambda aws-codepipeline aws-codestar

2
推荐指数
1
解决办法
1524
查看次数