You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Boto3获取OpenSearch域的集群健康状态?

通过Boto3获取OpenSearch集群健康状态的解决方案

Boto3没有专门封装集群健康状态的调用方法,你需要借助Boto3生成签名请求,直接调用OpenSearch的_cluster/health REST API来实现,具体步骤如下:

1. 导入必要模块

先引入Boto3核心库、AWS签名工具和HTTP请求库:

import boto3
from requests_aws4auth import AWS4Auth
import requests

2. 生成AWS身份签名

根据你的AWS区域和账号凭证生成认证签名,用于访问OpenSearch域:

region = 'us-east-1'  # 替换为你的OpenSearch域所在区域
service = 'es'
credentials = boto3.Session().get_credentials()
awsauth = AWS4Auth(credentials.access_key, credentials.secret_key, region, service, session_token=credentials.token)

3. 调用集群健康API

构造请求URL并发送GET请求,替换为你的OpenSearch域端点:

host = 'https://your-opensearch-domain-endpoint'  # 替换为实际域端点
url = host + '/_cluster/health'

response = requests.get(url, auth=awsauth)
cluster_health = response.json()
print(cluster_health)

关键注意事项

  • 确保你的IAM身份(用户/角色)拥有es:ESHttpGet权限,且OpenSearch域的访问策略允许该身份调用API
  • 若为VPC内的OpenSearch域,需保证运行代码的环境(如EC2、Lambda)在同一VPC,或配置了VPC端点访问
  • 可添加查询参数获取更详细数据,比如/_cluster/health?level=indices查看各索引的健康状态

内容的提问来源于stack exchange,提问作者Chandan S

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 14:25:19