如何使用 aws cdk 列出所有部署的 aws 资源

问题描述 投票:0回答:2

我有一个 AWS Cdk 部署程序应用程序,它在 AWS 中部署了多个资源。该应用程序使用一个配置文件作为输入文件,并使用该文件在 Fargate 集群中部署多个 was ecs 任务,并将它们放置在应用程序负载均衡器后面。

有什么方法可以获取我运行时正在部署的所有组件/AWS 服务

cdk deploy --all
。我试图在不使用单独的 boto3 函数的情况下了解 cdk 是否提供了任何方法。

python amazon-web-services boto3 aws-cdk
2个回答
6
投票

合成后,来自

cdk.out
CloudAssembly

import aws_cdk.cx_api as cx_api

cloud_assembly = cx_api.CloudAssembly("cdk.out")
resources = [stack.template["Resources"] for stack in cloud_assembly.stacks]

部署后,使用 DescribeStackResourcesListStackResources API:

aws cloudformation describe-stack-resources --stack-name MyStack

两者都返回 CloudFormation 资源信息列表,但内容不同。

CloudAssembly
资源来自
cdk synth
生成的本地模板。 从 boto3 或 CLI 返回的资源是已部署的具有解析名称的云资源。


0
投票

第 1 步:获取

cdk deploy
将部署的所有 CloudFormation-TEMPLATES 的列表。

示例:bash:

ls cdk.out/*.template.json

示例:bash(对于 CodePipeline 阶段):
ls cdk.out/asset.*/*.template.json

第 2 步:使用 bash/gnu:

   for f in $(ls cdk.out/*.template.json); do grep '"Type": ' "${f}"; done

如果您是优秀的 python 开发人员,则可以轻松地用 python 重写上述 bash 命令并以更好的方式进行格式化。

© www.soinside.com 2019 - 2024. All rights reserved.