AWS Boto3“类型错误:列表索引必须是整数或切片,而不是str”

2024-05-29 01:57:43 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试获取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)


Tags: inclientstringstack堆栈responseupdateboto3
3条回答

它应该是以下内容:

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

StackSummaries是一个数组

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

for stack in response['StackSummaries']:

    stack_summary = stack['StackName']

附言。 不要使用list作为变量名

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']

返回指定堆栈的描述;如果未指定堆栈名称,则返回描述(使用“descripe_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)
        } 
)

相关问题 更多 >

    热门问题