簡體   English   中英

Azure容器實例(Windows)是否支持對表存儲的訪問

[英]Do Azure Container Instances (Windows) support access to Table Storage

我有一個容器實例(Windows),該容器實例運行一個spring-boot應用程序,該應用程序從spring-boot CommandLineRunner中訪問azure表存儲。 該容器在本地運行良好(Docker / Win10 Pro)。

當我部署到容器實例時,在試圖從表中檢索DynamicTableEntity時將拋出StorageException。 與存儲帳戶和表的連接似乎成功,但是檢索操作失敗。 Tomcat服務器正在運行並且響應迅速(我捕獲到異常並准備了基本的錯誤信息,以供管理請求的servlet返回)。 我無法找到有關在容器中使用Java Azure存儲庫的任何示例或權威性聲明,因此我想知道是否存在任何限制,或在必要時進行解決。

以下是指示異常發生位置的日志。 我的代碼生成帶有“ CommandLineRunner”的日志條目。 我的應用程序中的397行是我嘗試從表中檢索DynamicTableEntity的行(進入日志的14行)。 在此之前,將正確解析連接字符串,並生成對表的引用而不會出錯。 盡管未顯示,但我對partitionKey和RowKey是正確的感到滿意(並且例外是因為該表不存在-但是它存在,並且在容器本地運行時可以訪問)。 線562是spring-boot 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大概都會解決后面的圖像問題。

請參閱上面的UPDATE。 盡管最新的Windows容器映像尚未解決基本問題,但jakaruna- MSFT在另一個論壇中做出了回應,並指出較舊的映像mcr.microsoft.com/windows/servercore:1607-KB4505052-amd64

會起作用,而且會起作用。 根本的問題顯然與DNS服務有關,在過渡到較新的映像時已被破壞或忽略。 無論有沒有解釋,MS大概都會解決后面的圖像問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM