gpt4 book ai didi

amazon-elastic-beanstalk - 使用 CodePipeline 在另一个 AWS 账户中部署 ElasticBeanstalk 应用程序

转载 作者:行者123 更新时间:2023-12-05 07:07:38 25 4
gpt4 key购买 nike

我们为每个环境(devtestprod)设置了不同的 AWS 账户,然后是一个共享构建账户,其中有一个 AWS CodePipeline,它通过承担 devtestprod 中的角色部署到每个环境中。

这适用于我们使用 Codebuild 脚本的无服务器应用程序。

我们能否为使用部署操作提供程序的 Elastic Beanstalk 应用程序做类似的事情?或者什么是 Elastic Beanstalk

的最佳方法

最佳答案

我们通过使用在每个 stage 帐户(devtestprod),它使用 AWS CLI 将 CodePipeline 工件(在构建作业的环境变量中作为 CODEBUILD_SOURCE_VERSION 提供)部署到 Elastic Beanstalk。我们在共享构建帐户中将此作业作为 CodePipeline 的一部分运行。

这些是 CodeBuild 部署 作业运行的 AWS CLI 命令:

aws elasticbeanstalk create-application-version --application-name ... --version-label ... --source-bundle S3Bucket="codepipeline-artifacts-us-east-1-123456789012",S3Key="application/deployable/XXXXXXX"
aws elasticbeanstalk update-environment --environment-name ... --version-label ...

您可以使用此处概述的策略从 CodePipeline 中的另一个帐户指定 CodeBuild 作业:https://docs.aws.amazon.com/codepipeline/latest/userguide/pipelines-create-cross-account.html。它涉及设置对用于 CodeBuild deploy 作业的 role_arn 的跨账户访问和管道的客户管理 KMS key (具有跨账户访问策略)。

此方法的一个缺陷是,CodeBuild 部署作业将在部署开始后立即完成,而不像 native CodePipeline EB 部署操作那样等到 ElasticBeanstalk 部署成功或失败。您应该能够在作业的循环中调用 aws elasticbeanstalk describe-environments 以复制此行为,但我尚未尝试过此操作。 (示例脚本在这里:https://blog.cyplo.net/posts/2018/04/wait-for-beanstalk/)

关于amazon-elastic-beanstalk - 使用 CodePipeline 在另一个 AWS 账户中部署 ElasticBeanstalk 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62062631/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com