0

我试图编写代码,它将传递 AWS Organizations 中的账户列表,这些账户SUSPENDED将打印ACTIVE账户的逻辑输出。代码片段是:

def get_accounts(role_arn) -> list:
    '''Appends all the accounts listed in operations into ACCOUNTS'''
    accounts = []
    creds = get_aws_key_and_token(role_arn)
    sess = session.Session(
        aws_access_key_id=creds['AccessKeyId'],
        aws_secret_access_key=creds['SecretAccessKey'],
        aws_session_token=creds['SessionToken']
    )
    accounts = {}
    org = sess.client('organizations')
    paginator = org.get_paginator('list_accounts')
    page_iterator = paginator.paginate()
    for page in page_iterator:
        for acct in page['Accounts']:
            accounts[acct['Id']] = acct['Name']            
    return accounts

有人可以帮我添加该功能吗?

谢谢

4

2 回答 2

0

因此,这段代码忽略了属于 AWS 组织的暂停账户,并且只针对 ACTIVE 账户运行。这样做的好处是它将用作任何其他 AWS 服务的模块。

def get_accounts(role_arn) -> list:
    '''Appends all the accounts listed in operations into ACCOUNTS'''
    accounts = []
    creds = get_aws_key_and_token(role_arn)
    sess = session.Session(
        aws_access_key_id=creds['AccessKeyId'],
        aws_secret_access_key=creds['SecretAccessKey'],
        aws_session_token=creds['SessionToken']
    )
    accounts = {}
    org = sess.client('organizations')
    paginator = org.get_paginator('list_accounts')
    page_iterator = paginator.paginate()
    for page in page_iterator:
        for acct in page['Accounts']:
            if acct['Status'] == 'ACTIVE':
                accounts[acct['Id']] = acct['Name']
    return accounts
于 2021-05-05T14:57:36.910 回答
0

list_accounts()文档将输出显示为:

{
    'Accounts': [
        {
            'Id': 'string',
            'Arn': 'string',
            'Email': 'string',
            'Name': 'string',
            'Status': 'ACTIVE'|'SUSPENDED',
            'JoinedMethod': 'INVITED'|'CREATED',
            'JoinedTimestamp': datetime(2015, 1, 1)
        },
    ],
    'NextToken': 'string'
}

因此,您可以使用:

    for page in page_iterator:
        for acct in page['Accounts']:
            if acct['Status'] == 'ACTIVE':    # <---- This line added
                accounts[acct['Id']] = acct['Name']            
于 2021-05-02T22:37:51.270 回答