Возможность подключения AWS Opensearch с помощью io.searchbox jest в приложении весенней загрузкиJAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Возможность подключения AWS Opensearch с помощью io.searchbox jest в приложении весенней загрузки

Сообщение Anonymous »

Я пытаюсь подключиться к opensearch, развернутому на экземпляре aws EC2. Я создал роли IAM и использую их для доступа к ОС.
Я пытаюсь подключиться к opensearch, развернутому на AWS. Я создал роль IAM, которая будет использоваться для аутентификации, когда я отправляю любой запрос в opensearch. Когда я пытаюсь выполнить любой запрос через jestclient, я получаю несанкционированную ошибку 401, не знаю, где я ошибаюсь. Пожалуйста, изучите это и дайте мне знать, что я могу сделать, чтобы это исправить. Также дайте мне знать, если вам нужны какие-либо другие подробности.
А также поделюсь фрагментом кода и журналами для анализа.
@Configuration
public class OpenSearchConfig {
private static final Logger logger = LoggerFactory.getLogger(OpenSearchService.class);

private static final String SERVICE_NAME = "es"; // Elasticsearch service name for AWS
private static final String REGION = "XXXX"; // Replace with your OpenSearch region
private static final String OPEN_SEARCH_ENDPOINT = "END_POINT URL"; // Replace with your OpenSearch endpoint

@Bean
public JestClient jestClient() {
// Create a signer
AWS4Signer signer = new AWS4Signer();
signer.setServiceName(SERVICE_NAME);
signer.setRegionName(REGION);

// Interceptor for signing requests
HttpRequestInterceptor interceptor = new AWSRequestSigningApacheInterceptor(SERVICE_NAME, signer, new DefaultAWSCredentialsProviderChain());

// Jest client configuration
HttpClientConfig clientConfig = new HttpClientConfig.Builder(OPEN_SEARCH_ENDPOINT)
.multiThreaded(true)
.build();

// Jest client factory
JestClientFactory factory = new JestClientFactory() {
@Override
protected HttpAsyncClientBuilder configureHttpClient(HttpAsyncClientBuilder builder) {
return builder.addInterceptorLast(interceptor);
}
};
factory.setHttpClientConfig(clientConfig);
logger.info("connection successful");

return factory.getObject();
}
}


public class OpensearchApplication implements CommandLineRunner {

@Autowired
private JestClient jestClient;

private static final Logger logger = LoggerFactory.getLogger(OpensearchApplication.class);

public static void main(String[] args) {
SpringApplication.run(OpensearchApplication.class, args);
}

@Override
public void run(String... args) throws Exception {
Search search = new Search.Builder(query)
.addIndex(index)
.build();

try {
SearchResult result = jestClient.execute(search);
logger.info("Search response: {}", result.getJsonString());
if (!result.isSucceeded()) {
logger.error("Search failed: {}", result.getErrorMessage());
}
System.out.println(result.getJsonString());
} catch (IOException e) {
logger.error("Search request failed", e);
}
}


Подробнее здесь: https://stackoverflow.com/questions/785 ... pplication
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «JAVA»