当前位置: 首页 > 知识库问答 >
问题:

AWS CodeDeploy可以为lambdas进行跨帐户部署吗?

钱展
2023-03-14

我还没有找到任何信息,如何设置CodePipeline与CodeDeploy操作,部署一个新的版本的现有lambda部署到另一个AWS帐户部署CloudForm堆栈。即跨帐户部署,管道在一个帐户中部署到开发、测试和产品中。

我希望使用CodeDeploy,因为我希望它能够简单地部署现有的lambda,无论是否在堆栈中。这是正确的假设吗?

是否可以使用CodeDeploy部署lambda跨帐户?

我已经用这样的管道进行了测试:

DeployApplication:
  Type: AWS::CodeDeploy::Application
  Properties:
    ComputePlatform: Lambda
LambdaDeploymentGroup:
  Type: AWS::CodeDeploy::DeploymentGroup
  Properties:
    ApplicationName: !Ref DeployApplication
    ServiceRoleArn: !ImportValue delivery-pipeline-foundation-codedeploy-role
    DeploymentStyle:
      DeploymentOption: WITH_TRAFFIC_CONTROL
      DeploymentType: BLUE_GREEN

…在这样的舞台/动作中:

- Name: Deploy_to_Dev
  Actions:
    - Name: CreateChangeSet
      ActionTypeId:
        Category: Deploy
        Owner: AWS
        Provider: CodeDeploy
        Version: 1
      Configuration:
        ApplicationName: !Ref DeployApplication
        DeploymentGroupName: !Ref LambdaDeploymentGroup
      InputArtifacts:
        - Name: !Sub ${AWS::StackName}-build-output
      RunOrder: 1

第一个问题是,我不知道如何设置跨帐户部署的权限!我知道在使用具有三个权限级别的CloudFormation时如何做到这一点:CodePipeline、Stage/action和CloudFormation,其中最后一个在目标帐户中,两个在管道帐户中。

如果管道帐户具有CodePipeline和CodeDeploy,那么他们似乎需要该帐户中的角色,而不是目标帐户中的角色。要部署,显然还必须具有在该帐户中部署的权限。

如何设置CodeDeploy部署lambda跨帐户的权限?

另一个问题是,我不知道CodeDeploy到底需要什么作为工件来运行。我在网上读了很多东西,但似乎没有人知道,而且有一种混合使用buildspec.ymlaws云形成命令或移动到使用云形成。

CodeDeploy需要什么输入工件来部署lambda?

非常感谢!

共有1个答案

海信鸥
2023-03-14

使用CodePipeline部署Lambda-首选的方法是使用CloudFormation作为部署提供程序,而不是CodeDeploy服务,因为CodeDeploy服务如何接受appspec文件存在一些未决问题(CodePipeline将工件压缩,而CD需要解压缩的appspec文件

推荐方法如下所述:https://docs.aws.amazon.com/lambda/latest/dg/build-pipeline.html

云形成支持跨帐户操作,因此它应该很好地服务于您的用例。详细信息:https://docs.aws.amazon.com/codepipeline/latest/userguide/pipelines-create-cross-account.html

 类似资料:
  • 问题内容: 我正在使用Node.js在JavaScript中实现客户端应用程序。因为我将在许多计算机上部署该软件,所以我希望最小化我分发的软件包的大小。特别是,我想从node_modules中删除所有不必要的文件。 对于初学者来说,这意味着对依赖项树进行重复数据删除和修剪,这对我来说可以做。但我也想删除所有文件,尤其是部署不需要的其他文件。在我使用的许多程序包中,都有大量的测试,文件的多个版本(最

  • 如果我们使用azure connect DirSync与azure active directory进行本地AD同步,并且没有选择密码同步,那么 > 部署是针对大规模用户还是批量用户? 用户迁移到Azure后,他们是否必须手动更改 凭据才能登录到他们的Office 365帐户(他们现在和之后使用他们的电子邮件凭据登录 Office 365 Azure AD, 他们将使用他们的AD凭据登录? 是否可

  • 我有两个桶: “source-bucket”(在AWS帐户88888888中)。 “目的地-桶”(在AWS帐户99999999中) 两个桶都启用了版本控制,并且位于同一区域(eu-west-1)。 在源桶中,我创建了一个具有以下设置的复制规则: 我选择了自动角色创建,它使用以下策略创建了一个角色: 根据这里找到的文档https://docs.aws.amazon.com/amazons3/late

  • 问题内容: 我有2个Google App Engine帐户。一种是个人帐户。另一个是工作帐户。 将应用程序部署到Google App Engine。第一次,我使用“ goapp deploy”,它要求我提供电子邮件和密码。现在我被卡住了。我无法切换到其他帐户。 我试图重新启动Mac,但无法正常工作。我应该怎么做才能使用另一个帐户进行部署? 问题答案: 您是否尝试过在命令行中使用 --email 选

  • AWS CodeStar允许您启动代码管道和CodeCommit回购,以支持您的项目。如果我想在CodeStar中构建一个项目,然后获取结果包,那么如何将该包部署到另一个帐户中? 例如,基本的“Python Web Service Lambda”CodeStar模板生成了这些文件, 这明显缺少用于设置部署代码的代码管道的模板。因此,我需要自己去弄清楚如何部署它。 如何将CodeStar模板部署到不

  • 问题内容: 我确实使用单个pod进行了部署,并使用了我的自定义docker映像,例如: 在开发过程中,我想推送新的最新版本并更新Deployment。如果没有显式定义标签/版本并为每个版本增加它,就找不到方法。 问题答案: 您可以为Pod配置宽限期(例如30秒或更长时间,具体取决于容器启动时间和图像大小)并进行设置。并使用。将创建一个新容器,并自动下载最新的映像,然后终止旧容器。 例: 我目前正在