如何在 python 的变量中存储 aws 组织单位 ID 和 scp 策略 ID?

How to store aws organization unit ID and scp policy ID in variable in python?

我在 AWS 组织上工作:我已经通过 python 脚本分别创建了组织单元 (OU) 和策略...现在我想将创建的策略附加到 OU。

   response = client.attach_policy(
         PolicyId=policyID,
         TargetId=OUID
   )

我可以获得具有 organizationalunits-IDPolicy-ID

的策略和 OU 列表

我尝试如下存储要在 attach_policy 中使用的 ID 值,但出现错误:

      OUID=str(OUdetails['OrganizationalUnits']['Id'])
      policyID=str(listpolicy['Policies']['Id'])

ID示例 {'Id': 'ou-uwjh-radcf5d4'}

错误:

       OUID=str(OUdetails['OrganizationalUnits']['Id'])
       TypeError: list indices must be integers or slices, not str

       OUID=int(OUdetails['OrganizationalUnits']['Id'])
       TypeError: list indices must be integers or slices, not str

OUID 似乎被存储为列表而不是字典。因此,当您稍后尝试访问 OUdetails 时,您试图从列表而不是字典中提取元素的 python 东西。

尝试打印变量 OUdetails 并查看它是否显示为列表或字典。

感谢您的帮助 现在我可以将这两个值存储在变量中:

                OUdetails = client.list_organizational_units_for_parent(
                      ParentId='', 
                     # NextToken='string',
                     # MaxResults=123 
                   )
                print(OUdetails)

                 for key in OUdetails ['OrganizationalUnits']:
                   ouid=key['Id']
                   print("3[92m"+"OrganizationUnit's ID"+"3[0m",ouid)