如果AWS系统管理器中的托管实例未显示在群集管理器中,可能是由于以下原因:
未启用系统管理器:确保已启用AWS系统管理器的功能。您可以在AWS管理控制台的“系统管理器”服务页面上检查系统管理器是否已启用。
缺少必要的IAM权限:确保您的IAM用户或角色具有执行系统管理器操作所需的必要权限。这包括“ssmmessages:CreateControlChannel”、“ssmmessages:CreateDataChannel”和“ssmmessages:OpenControlChannel”等权限。您可以为您的IAM用户或角色添加这些权限。
以下是使用AWS SDK for Python(Boto3)的示例代码,用于启用系统管理器并检查托管实例是否显示在群集管理器中:
import boto3
# 创建AWS Systems Manager客户端
ssm_client = boto3.client('ssm')
# 启用AWS Systems Manager
response = ssm_client.update_managed_instance_role(ManagedInstanceRole='arn:aws:iam::123456789012:role/YourManagedInstanceRole')
# 检查托管实例是否显示在群集管理器中
response = ssm_client.describe_instance_information(Filters=[{'Key': 'InstanceIds', 'Values': ['i-1234567890abcdef0']}])
if 'InstanceInformationList' in response:
for instance_info in response['InstanceInformationList']:
print(f"实例ID: {instance_info['InstanceId']}")
print(f"实例状态: {instance_info['PingStatus']}")
print(f"实例上次通信时间: {instance_info['LastPingDateTime']}")
else:
print("未找到托管实例")
请注意,上述代码中的arn:aws:iam::123456789012:role/YourManagedInstanceRole
应替换为您的实际托管实例角色的ARN,i-1234567890abcdef0
应替换为您要检查的实例的实际ID。此代码将启用系统管理器并检查指定实例是否显示在群集管理器中,并打印出实例的相关信息。
您可以根据需要适当修改上述代码,并确保您的代码具有足够的IAM权限来执行所需的操作。