问题标签 [aws-codepipeline]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
amazon-web-services - AWS CodeBuild + CodePipeline:“找不到匹配的工件路径”
我正在尝试让 CodePipeline 从 GitHub 获取我的代码并使用 CodeBuild 构建它。第一个(源)步骤工作正常。但是第二个(构建)步骤在“UPLOAD_ARTIFACTS”部分失败。以下是相关的日志语句:
我的应用程序在其根文件夹中有一个 buildspec.yml。看起来像:
看起来我的 buildspec.yml 中的“MyApp”应该有所不同,但我翻遍了所有 AWS 文档都无济于事(还有什么新东西?)。我怎样才能让它正确上传工件?
amazon-web-services - AWS CodePipeline 可以很好地识别我的新 GitHub 提交 - 但如何?
我目前是第一次摆弄 AWS CodePipeline,并使用演示项目设置了 Source 和 Build 步骤。
我已将 Source Step 与 GitHub 帐户(我们使用的系统帐户)连接,并具有对所有 Repos 的管理员访问权限。正如文档所述,使用 OAuth 范围admin:repo_hook
和repo
是必需的;这是被授予的并且连接很好。
正如这个问题的标题已经说明的那样:集成工作得很好 - 当我将 master 上的新提交推送到 GitHub 时,管道开始工作并顺利运行。
然而,我的问题是:如何?正如文档所述:
为了与 GitHub 集成,AWS CodePipeline 使用 OAuth 令牌
但是,在查看我的 GitHub 设置时,我希望直接在存储库或组织“OAuth 应用程序”上找到列为“OAuth 应用程序”的应用程序,但事实并非如此!
因此,我想知道 CodePipeline 如何识别我的新提交。是轮询 SCM 还是其他某种魔法?我也没有找到任何 WebHooks。
先感谢您!
amazon-web-services - 如何在 CodePipeline 中处理多个环境?
我正在使用代码管道来部署我的基础架构,并且我希望能够将它部署在不同的环境中(开发、登台、产品......)。
我目前有一个 buildspec.yml 文件,其中包含一些“pip install”指令和“aws cloudformation package”命令。我还创建了 2 个管道,一个用于生产,另一个用于开发,指向 github 上的 2 个不同分支。我遇到的问题是,由于两个分支中的文件都包含相似的资源,例如,我在 S3 存储桶上存在名称冲突。
使用 AWS CLI 和 cloudformation 创建或更新堆栈时,您可以使用 --parameters 选项传递参数。我想在我创建的 2 个管道中做类似的事情。
解决这个问题的最佳解决方案是什么?
最终目标是自动化我们基础设施的部署。我们的基础设施由用户、KMS 密钥、Lamdbas(在 python 中)、组和存储桶组成。
我按照教程创建了两个管道:http: //docs.aws.amazon.com/lambda/latest/dg/automating-deployment.html
第一个管道链接到包含代码的 repo 的主分支,第二个管道链接到暂存分支。我的目标是使用第一个管道在生产环境中自动部署主分支,并使用第二个管道在暂存环境中自动部署暂存分支。
我的 buildspec.yml 文件如下所示:
image_processing_sam.yml 文件如下所示:
我在两个管道中添加了一个部署操作,以执行在 beta 操作期间计算的更改集。
第一个管道就像一个魅力,可以完成我期望它做的所有事情。每次我在主分支中推送代码时,它都会被部署。
我面临的问题是,当我在暂存分支中推送代码时,一切都在管道中运行,直到达到部署操作。部署操作尝试创建一个新堆栈,但由于它与 buildspec.yml 和已处理的 image_processing_sam.yml 完全相同,因此我会遇到如下所示的名称冲突。
有没有办法对 buildspec.yml 进行参数化,以便能够为 image_processing_sam.yml 中的资源名称添加后缀?欢迎任何其他实现这一目标的想法。
此致。
amazon-web-services - 我正在尝试将 Bitbucket 集成到 AWS Code Pipeline 中?最好的方法是什么?
我想将我的代码从 Bitbucket 集成到 AWS Code Pipeline。我无法找到相同的适当示例。我的源代码在.Net 中。有人可以指导我。谢谢。
aws-codepipeline - AWS 将变量从 CodePipeline 传入 buildspec.yml
我有一个在构建阶段调用 CodeBuild 的 AWS CodePipeline。
问题是如何从 CodePipeline 中传递一个可以在 CodeBuild 的 buildspec.yml 中读取的环境变量?
我知道我可以在 CodeBuild 中设置环境变量,但我想为 dev、qa 和 prod 环境使用相同的 CodeBuild 项目。我看不到如何将环境变量从 CodePipeline 传递到 buildspec.yml
示例 buildspec.yml
其中 CURRENT_ENVIRONMENT 将是我在 CodePipeline Stage 操作中设置的变量。
amazon-cloudformation - 根据 CloudFormation 条件有条件地创建 CodePipeline 操作
使用条件启用/禁用 CodePipeline 的 CloudFormation 部分:
一旦构建了暂存并通过了 Runscope 测试,这将创建一个手动通知操作:
如何像其他具有 Condition: 的 CloudFormation 资源一样启用/禁用它。
操作步骤无法识别 Condition: param
我可以制作整个管道代码的 2 个副本,一个有一个没有,然后切换我创建的管道,但似乎应该有更好的方法。
amazon-web-services - AWS CodePipeline 能否在不劫持 CodeBuild 的工件设置的情况下触发 AWS CodeBuild?
我设置 AWS CodeBuild 以将大量工件文件写入 S3。CodeBuild yaml 文件定义了哪些文件和 CodeBuild 项目设置定义了 S3 存储桶。一切正常。
看来,当您从 AWS CodePipeline 触发 AWS CodeBuild 时,CodePipeline 会忽略 AWS CodeBuild 的工件设置,而是将工件强制放入 codepipline S3 存储桶中的 zip 文件中。
有没有办法使用 CodePipeline 但它尊重 AWS CodeBuild 的工件设置?
amazon-web-services - CodePipeline 需要哪些 GitHub 权限才能使用存储库?
我注意到 AWS CodeBuild 只需要只读权限即可依赖 GitHub 存储库。AWS CodePipeline 没有出现实质性错误。相反,存储库不会出现。
CodePipeline 需要哪些权限才能使用 GitHub 存储库?
amazon-web-services - Cloudformation 的最低权限 AWS IAM 策略
对于小型 CloudFormation 和 CodePipeline 模板,我们可以“尝试 - 测试”以获得所需角色的最低权限 IAM 策略。
这通常涉及:
- 从最低限度的政策开始
- 创建堆栈
- 它失败了 - 堆栈没有权限访问 someService:someAction
- 将服务操作添加到策略
- 更新堆栈并重试
这种方法对于较大的 CloudFormation 模板来说太耗时了。
您如何制定最低权限 IAM 策略?
想法:
允许“*”,然后为事件抓取 cloudtrail 并将列出的事件映射到其等效角色 - 然后将角色减少到仅在 cloudtrail 日志中列出的角色。
如果您可以将操作隔离到用户名,这会有所帮助
访问顾问