我在 CodePipeline 中的 CodeBuild 如何解析由之前的 CloudFormation 步骤创建的资源?
How can my CodeBuild in a CodePipeline resolve resources created by the previous CloudFormation step?
我已将我的 CodePipeline 设置为:
- 来源:Github
- CodeBuild:打包 SAM 应用程序(CloudFormation 资源,如 DB)
- 部署 CloudFormation:是否创建和执行变更集
- CodeBuild:我想 运行 为 CloudFormation 创建的数据库进行数据库迁移……但我该如何获取它……CodeBuild 不支持来自我的管道的参数
也许我创建的管道有误?
CloudFormation 操作可以输出堆栈参数,但目前 CodePipeline 中的 CodeBuild 操作不能同时接受代码工件和具有 CloudFormation 输出的工件。
现在我将从构建脚本中的 CLI 调用 aws cloudformation describe-stacks 以从 CloudFormation 堆栈中检索数据库信息。
也许在第 3 步中。您以这种方式设置您的 cloudformation:
1- 创建数据库...导出为数据库名称的输出
Outputs:
DataBaseName:
Description: "Name of the Database"
Value: !Ref DataBaseName
2- 在代码构建中使用 Boto3 并使用 Describe Stacks 并获取输出(数据库的名称和有关它的其他信息),现在您可以利用 Python您的代码构建并使用 Boto3 开始迁移。
response = client.describe_stacks(
StackName='string',
NextToken='string'
)
我已将我的 CodePipeline 设置为:
- 来源:Github
- CodeBuild:打包 SAM 应用程序(CloudFormation 资源,如 DB)
- 部署 CloudFormation:是否创建和执行变更集
- CodeBuild:我想 运行 为 CloudFormation 创建的数据库进行数据库迁移……但我该如何获取它……CodeBuild 不支持来自我的管道的参数
也许我创建的管道有误?
CloudFormation 操作可以输出堆栈参数,但目前 CodePipeline 中的 CodeBuild 操作不能同时接受代码工件和具有 CloudFormation 输出的工件。
现在我将从构建脚本中的 CLI 调用 aws cloudformation describe-stacks 以从 CloudFormation 堆栈中检索数据库信息。
也许在第 3 步中。您以这种方式设置您的 cloudformation:
1- 创建数据库...导出为数据库名称的输出
Outputs:
DataBaseName:
Description: "Name of the Database"
Value: !Ref DataBaseName
2- 在代码构建中使用 Boto3 并使用 Describe Stacks 并获取输出(数据库的名称和有关它的其他信息),现在您可以利用 Python您的代码构建并使用 Boto3 开始迁移。
response = client.describe_stacks(
StackName='string',
NextToken='string'
)