Идентификатор экземпляра.instance.oc1.eu-frankfurt-1.xxxxxxxxxxxxxxxxxxxxxxxxxx не найден

#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 истекает?