【问题标题】:CI / CD using Bitbucket repository for resource provisioning in AWSCI / CD 使用 Bitbucket 存储库在 AWS 中进行资源配置
【发布时间】:2019-07-10 17:57:18
【问题描述】:

我想实现使用 Bitbucket 和 AWS 配置 AWS 资源的持续交付。我的用例是创建一个目标为 Elastic Search 的 kinesis Firehose Delivery 流。我希望通过使用 AWS cloudformation 模板来实现这一点(记住 dev、uat、prod 的不同阶段)。每当我更新我的 bitbucket 存储库时,都应该创建构建,并且堆栈将在 AWS 中更新。任何帮助将不胜感激。

我在互联网上搜索了很多,但找不到任何清楚描述我的用例的相关示例。

在 bitbucket 中提交的 Cloudformatiom 模板将在云中预置 AWS 资源

【问题讨论】:

    标签: amazon-web-services bitbucket amazon-cloudformation


    【解决方案1】:

    您可以为此目的使用 AWS CodePipeline。唯一的问题是 Code Pipeline 不能直接使用 Bitbucket,只能使用 AWS CodeCommit or GitHub 作为触发 repo。

    但是有一个解决方法。您可以设置从 Bitbucket 到 GitHub 的同步,然后将 GitHub 存储库设置为您将在 AWS CodePipeline 上创建的管道的源存储库。您可以找到许多同步指南,所以我不会在这里解释。管道本身可以定义为模板。

    我已经在另一个答案here 中解释了设置 AWS CodePipeline,您可以按照该答案进行操作。希望这会有所帮助!

    【讨论】:

    • 感谢您的回复,但我的问题是我必须仅使用 bitbucket 来实现这一点,不能使用 git。我认为 AWS Codebuild 可以与 bitbucket 存储库集成,因此可以用作替代解决方案。即 Bitbucket Repo -> AWS CodeBuild -> AWS CodeDeploy -> AWS CodePipeline
    • AWS CodeBuild 不是 git 服务,对于源存储库,您应该使用 AWS Code Commit。如果您要求将应用程序代码与基础架构 (CloudFormation) 一起部署,那么可以,您可以通过在同一管道中部署代码来部署应用程序部分。但是你问的问题是关于 AWS 上的资源配置。
    • 在这种情况下,例如,在成功部署 EC2 实例之后,您可以触发代码部署操作以在实例上部署应用程序。这将是我的部署阶段。代码管道中的所有内容都是一个阶段,您可以在其中找到操作。我建议您阅读这些服务的文档,然后如果您对实施某些东西有疑问,我很乐意提供帮助。
    • 感谢您的回复。我不会部署任何应用程序代码,而只会部署云转换模板来预置 AWS 资源。我想将这些模板存储在 bitbucket 存储库中,并且每当有人向 master 分支提交更改时,应该会触发构建并且应该在 AWS 中更新堆栈。这就是我想通过 bitcucket 和 cloudformation 模板实现的目标。让我知道您是否有任何方法。提前致谢
    • 那么上面的答案正是你所需要的。 AWS CodePipeline 是执行此操作的最佳选择,我已经在生产中使用它。但唯一需要注意的是,Code Pipeline 不允许我们使用 bitbucket 存储库作为源来触发管道,因此您可以在管道源中使用 AWS Codecommit 并设置您的 CodeCommit/Github 存储库以与 bitbucket 同步。因此,每当有人对比特桶进行更改并提交时,这将立即反映在 CodeCommit 或 GitHub(无论您选择什么)上,然后将触发管道。
    猜你喜欢
    • 2021-12-22
    • 2020-04-11
    • 1970-01-01
    • 2022-12-24
    • 2021-01-10
    • 1970-01-01
    • 2018-04-03
    • 2015-04-21
    • 2022-11-23
    相关资源
    最近更新 更多