#oracle-cloud-infrastructure #oci-java-sdk
#oracle-облачная инфраструктура #oci-java-sdk
Вопрос:
Код выглядит следующим образом.
String instanceId = "ocid1.instance.oc1.eu-frankfurt-1.abtheljsmrq3yox36wukah52yaeswh6jc4vwjfkc46jxe4nwgnmga7nm7bpq";
String configurationFilePath = "~/.oci/config.txt";
String profile = "DEFAULT";
System.setProperty("sun.net.http.allowRestrictedHeaders", "true");
AuthenticationDetailsProvider provider =
new ConfigFileAuthenticationDetailsProvider(configurationFilePath, profile);
System.out.println(provider.toString());
RequestSigner requestSigner = DefaultRequestSigner.createRequestSigner(provider);
Client client =
ClientBuilder.newBuilder().build().register(new SigningFilter(requestSigner));
WebTarget target =
client.target("https://iaas.eu-frankfurt-1.oraclecloud.com")
.path("20160918")
.path("instances")
.path(UrlEscapers.urlPathSegmentEscaper().escape(instanceId));
Invocation.Builder ib = target.request();
ib.accept(MediaType.APPLICATION_JSON);
Response response = ib.get();
System.out.println(target.getUri());
Я дважды проверил ocid экземпляра в консоли.
Выходной ответ выглядит следующим образом
{ "code" : "NotAuthorizedOrNotFound", "message" : "instance ocid1.instance.oc1.eu-frankfurt-1.abtheljsmrq3yox36wukah52yaeswh6jc4vwjfkc46jxe4nwgnmga7nm7bpq not found"}
Какие-либо входные данные?
Комментарии:
1. Проверьте, истек ли срок действия — access_token? — у пользователя все еще есть доступ к экземпляру?
2. Зачем нам здесь нужен токен доступа? Для подписания API необходим закрытый файл pem.
3. Операция getInstance доступна в Java SDK как операция первого класса: docs.cloud.oracle.com/iaas/tools/java/latest/com/oracle/bmc /… — учитывая это, почему вы используете для этого необработанный подписчик запроса? Выполняется ли вызов успешно, если вместо этого используется обычная операция Java SDK? Вы упомянули, что проверили, виден ли экземпляр в консоли, но сделали ли вы это, используя того же пользователя, от имени которого вы используете приведенный выше код? В противном случае возможно, что пользователь, от имени которого вы запускаете код, не имеет разрешений на этот экземпляр.
4. Я попробовал с Java-SDK, и результат тот же. Да, я использовал одного и того же пользователя (администратора) для входа в консоль, а также в код (конфигурацию).
5. Срок действия файла pem истекает?