在OpenSearch的API URL后添加索引名称即可解决该问题,即将URL中的“/{opensearch}/”更改为“/{index}/”。以下是一个Python示例代码:
import requests
import json
def lambda_handler(event, context):
headers = {
'Content-Type': 'application/json'
}
# 替换您的AWS OpenSearch endpoint
opensearch_endpoint = 'https://YOUR-OPENSEARCH-ENDPOINT'
# 替换您的索引名称
index_name = 'my-index'
# 替换您的文档ID
document_id = '1'
put_url = f'{opensearch_endpoint}/{index_name}/_doc/{document_id}'
# 替换您的文档内容
document_body = {
'name': 'John Doe',
'age': 30,
'gender': 'male'
}
response = requests.put(put_url, headers=headers, data=json.dumps(document_body))
if response.status_code == 200:
return {
'statusCode': 200,
'body': json.loads(response.content)
}
else:
return {
'statusCode': response.status_code,
'body': json.loads(response.content)
}
在上面的代码示例中,我们将{opensearch} URL部分替换为实际的索引名称my-index,以便放置正确的URL。 请注意,我们还从URL中删除了_tenants和_endpoints这两个路径参数,因为它们不适用于Serverless OpenSearch服务。最后,我们通过PUT方法将文档内容作为JSON数据发送到OpenSearch。