0

我正在尝试获取带有首选项目“堆栈名称”、“堆栈状态”和“漂移信息”的 CF 堆栈列表。

我尝试了以下,它抛出了一个错误

“TypeError:列表索引必须是整数或切片,而不是 str”


import boto3
client = boto3.client('cloudformation')

response = client.list_stacks(
    )

list = response['StackSummaries']['StackName']

print(list)

这是响应语法。

   'StackSummaries': [
        {
            'StackId': 'string',
            'StackName': 'string',
            'TemplateDescription': 'string',
            'CreationTime': datetime(2015, 1, 1),
            'LastUpdatedTime': datetime(2015, 1, 1),
            'DeletionTime': datetime(2015, 1, 1),
            'StackStatus': 'CREATE_IN_PROGRESS'|'CREATE_FAILED'|'CREATE_COMPLETE'|'ROLLBACK_IN_PROGRESS'|'ROLLBACK_FAILED'|'ROLLBACK_COMPLETE'|'DELETE_IN_PROGRESS'|'DELETE_FAILED'|'DELETE_COMPLETE'|'UPDATE_IN_PROGRESS'|'UPDATE_COMPLETE_CLEANUP_IN_PROGRESS'|'UPDATE_COMPLETE'|'UPDATE_ROLLBACK_IN_PROGRESS'|'UPDATE_ROLLBACK_FAILED'|'UPDATE_ROLLBACK_COMPLETE_CLEANUP_IN_PROGRESS'|'UPDATE_ROLLBACK_COMPLETE'|'REVIEW_IN_PROGRESS',
            'StackStatusReason': 'string',
            'ParentId': 'string',
            'RootId': 'string'
        },
    ],
    'NextToken': 'string'
}

我只想列出带有以下项目的堆栈。“堆栈名称”、“堆栈状态”和“漂移信息”。请对此进行指导。

谢谢!

更新:

import boto3
client = boto3.client('cloudformation')

response = client.list_stacks(
    )

for stack in response['StackSummaries']:

    stack_summary = stack['StackName']

    print(stack_summary)

4

3 回答 3

1

它应该是以下内容:

list = response['StackSummaries'][0]['StackName']

StackSummaries是一个数组。

对于完整记录,如何在循环中进行:

for stack in response['StackSummaries']:

    stack_summary = stack['StackName']

ps 不要list用作变量名。

于 2020-05-11T06:05:07.540 回答
1
import boto3
client = boto3.client('cloudformation')

response = client.list_stacks()

for stack in response['StackSummaries']:

    stack_summary = stack['StackName']
    stack_status = stack['StackStatus']
    stack_drift_status = stack['DriftInformation']['StackDriftStatus']
    stack_drift_timestamp = stack['DriftInformation']['LastCheckTimestamp']
于 2020-05-11T06:40:27.110 回答
0

返回指定堆栈的描述;如果未指定堆栈名称,则返回描述(使用“describe_stacks”)。

import boto3
client = boto3.client('cloudformation')

response = client.describe_stacks(
  StackName='string',
  StackStatus= 'string',
  DriftInformation': {
            'StackDriftStatus': 'DRIFTED'|'IN_SYNC'|'UNKNOWN'|'NOT_CHECKED',
            'LastCheckTimestamp': datetime(2015, 1, 1)
        } 
)
于 2020-05-11T06:21:55.843 回答