Поддерживают ли экземпляры контейнера Azure (Windows) доступ к хранилищу таблиц - PullRequest
1 голос
/ 13 мая 2019

У меня есть экземпляр контейнера (Windows), на котором запущено приложение с загрузочной пружиной, которое обращается к хранилищу таблицы Azure из командной строки с пружинной загрузкой CommandLineRunner.Контейнер работает нормально локально (Docker / Win10 Pro).

При развертывании на экземпляр контейнера выдается исключение StorageException в тот момент, когда делается попытка извлечь DynamicTableEntity из таблицы.Соединение с учетной записью хранения и таблицей кажется успешным, но операция получения завершается неудачно.Сервер Tomcat работает и реагирует (я перехватываю исключение и подготавливаю основную информацию об ошибках, которая будет возвращена сервлетами, управляющими запросами).Мне не удалось найти каких-либо примеров или окончательных утверждений об использовании библиотек хранилища Java Azure в контейнерах, поэтому я хотел бы знать, есть ли какие-либо ограничения или обходные пути, если это необходимо.

Ниже приведены журналы, которыеукажите, где выдается исключение.Записи журнала с "CommandLineRunner" генерируются моим кодом.Строка 397 в моем приложении - это строка, в которой я пытаюсь извлечь DynamicTableEntity из таблицы (14 строк в журнале).До этого строка соединения анализируется без ошибок, а ссылка на таблицу генерируется без ошибок.Хотя это и не показано, я удовлетворен тем, что partitionKey и RowKey верны (и исключение состоит в том, что таблица не существует - но она существует и доступна, когда контейнер запускается локально).Линия 562 - это точка входа в подпружиненный загрузчик CommandLineRunner.

    **2019-05-13 00:57:44.632  INFO 3060 --- [           main] a.c.n.sbtest.demo.DemoApplication        : CommandLineRunner: Engine Intialization Ready (status: 0)**
2019-05-13 00:57:44.670  INFO 3060 --- [           main] a.c.n.sbtest.demo.DemoApplication        : CommandLineRunner: Deployment table <Deployments> accessible
2019-05-13 00:57:44.687  INFO 3060 --- [           main] a.c.n.sbtest.demo.DemoApplication        : CommandLineRunner: User <e7c6163e-8c06-4146-b0e4-78fec93e6cce> Container accessible
2019-05-13 01:00:17.755  INFO 3060 --- [nio-8080-exec-7] o.a.c.c.C.[Tomcat].[localhost].[/]       : Initializing Spring DispatcherServlet 'dispatcherServlet'
2019-05-13 01:00:17.755  INFO 3060 --- [nio-8080-exec-7] o.s.web.servlet.DispatcherServlet        : Initializing Servlet 'dispatcherServlet'
2019-05-13 01:00:17.768  INFO 3060 --- [nio-8080-exec-7] o.s.web.servlet.DispatcherServlet        : Completed initialization in 13 ms
com.microsoft.azure.storage.StorageException:
        at com.microsoft.azure.storage.StorageException.translateException(StorageException.java:87)
        at com.microsoft.azure.storage.core.ExecutionEngine.executeWithRetry(ExecutionEngine.java:209)
        at com.microsoft.azure.storage.table.QueryTableOperation.performRetrieve(QueryTableOperation.java:178)
        at com.microsoft.azure.storage.table.TableOperation.execute(TableOperation.java:694)
        at com.microsoft.azure.storage.table.CloudTable.execute(CloudTable.java:529)
        at com.microsoft.azure.storage.table.CloudTable.execute(CloudTable.java:496)
        at **ai.com.neuralstudio.sbtest.demo.DemoApplication.lambda$commandLineRunner$0(DemoApplication.java:562)**
        at org.springframework.boot.SpringApplication.callRunner(SpringApplication.java:813)
        at org.springframework.boot.SpringApplication.callRunners(SpringApplication.java:797)
        at org.springframework.boot.SpringApplication.run(SpringApplication.java:324)
        at org.springframework.boot.SpringApplication.run(SpringApplication.java:1260)
        at org.springframework.boot.SpringApplication.run(SpringApplication.java:1248)
        at **ai.com.neuralstudio.sbtest.demo.DemoApplication.main(DemoApplication.java:397)**
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at org.springframework.boot.loader.MainMethodRunner.run(MainMethodRunner.java:48)
        at org.springframework.boot.loader.Launcher.launch(Launcher.java:87)
        at org.springframework.boot.loader.Launcher.launch(Launcher.java:50)
        at org.springframework.boot.loader.JarLauncher.main(JarLauncher.java:51)
Caused by: java.net.UnknownHostException: neuralstudiotest002.table.core.windows.net
        at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:184)
        at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
        at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
        at java.net.Socket.connect(Socket.java:589)
        at sun.security.ssl.SSLSocketImpl.connect(SSLSocketImpl.java:673)
        at sun.net.NetworkClient.doConnect(NetworkClient.java:175)
        at sun.net.www.http.HttpClient.openServer(HttpClient.java:463)
        at sun.net.www.http.HttpClient.openServer(HttpClient.java:558)
        at sun.net.www.protocol.https.HttpsClient.<init>(HttpsClient.java:264)
        at sun.net.www.protocol.https.HttpsClient.New(HttpsClient.java:367)
        at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.getNewHttpClient(AbstractDelegateHttpsURLConnection.java:191)
        at sun.net.www.protocol.http.HttpURLConnection.plainConnect0(HttpURLConnection.java:1156)
        at sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:1050)
        at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:177)
        at sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1564)
        at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1492)
        at java.net.HttpURLConnection.getResponseCode(HttpURLConnection.java:480)
        at sun.net.www.protocol.https.HttpsURLConnectionImpl.getResponseCode(HttpsURLConnectionImpl.java:347)
        at com.microsoft.azure.storage.core.ExecutionEngine.executeWithRetry(ExecutionEngine.java:115)
        ... 19 more
2019-05-13 01:00:29.420 ERROR 3060 --- [           main] a.c.n.sbtest.demo.DemoApplication        : CommandLineRunner: StorageException com.microsoft.azure.storage.StorageException:  (status: -3)

Я был бы очень признателен за понимание того, что может происходить.Джек

ОБНОВЛЕНИЕ : Хотя основная проблема не решена для последних образов контейнеров Windows, jakaruna-MSFT ответил на другом форуме и указал, что старое изображение

mcr.microsoft.com/windows/servercore:1607-KB4505052-amd64

будет работать, и это делает.Основная проблема, по-видимому, связана со службами DNS и была либо повреждена, либо пропущена при переходе к более поздним изображениям.Предположительно MS найдет способ исправить более поздние изображения с объяснениями или без них.

1 Ответ

0 голосов
/ 27 мая 2019

См. ОБНОВЛЕНИЕ выше. Хотя основная проблема не решена для последних образов контейнеров Windows, jakaruna-MSFT ответил на другом форуме и указал, что более старое изображение mcr.microsoft.com/windows/servercore:1607-KB4505052-amd64

будет работать, и это работает. Основная проблема, по-видимому, связана со службами DNS и была либо повреждена, либо пропущена при переходе к более поздним изображениям. Предположительно MS найдет способ исправить более поздние изображения с объяснениями или без них.

...