2017-01-03 141 views
1

我试图从控制台将应用程序部署到Swisscom App Cloud。它报告进度,直到年底,一个504,没有进一步解释报道:部署失败,出现504

Updating app helloclass-fe-develop in org UCID-Bern Team/space HELLOCLASS-TEST as [email protected] 
OK 

Uploading helloclass-fe-develop... 
FAILED 
Error processing app files: Error uploading application. 
Server error, status code: 504, error code: 0, message: 

该应用程序已被更新的应用报告日志:

2017-01-03 09:37:39 [RTR/0] OUT helloclass-develop.scapp.io - [03/01/2017:08:37:39.584 +0000] "GET/HTTP/1.1" 200 0 594 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.75 Safari/537.36 Google Favicon" 66.249.93.201:50868 10.0.18.35:64341 x_forwarded_for:"83.76.152.96" x_forwarded_proto:"https" vcap_request_id:8a8adcc7-9e97-4bd9-4492-68e92883ee3d response_time:0.001739219 app_id:310166b4-f3a6-4168-a9ac-530e45dbfb10 app_index:0 
2017-01-03 09:37:39 [APP/PROC/WEB/0] OUT 83.76.152.96, 66.249.93.201, 66.249.93.201 - - - [03/Jan/2017:08:37:39 +0000] "GET/HTTP/1.1" 200 606 
2017-01-03 10:05:50 [API/2] OUT Updated app with guid 310166b4-f3a6-4168-a9ac-530e45dbfb10 ({"name"=>"helloclass-fe-develop"}) 
2017-01-03 10:57:15 [API/1] OUT Updated app with guid 310166b4-f3a6-4168-a9ac-530e45dbfb10 ({"state"=>"STOPPED"}) 
2017-01-03 10:57:15 [CELL/0] OUT Exit status 0 
2017-01-03 10:57:15 [APP/PROC/WEB/0] OUT Exit status 0 
2017-01-03 10:57:15 [CELL/0] OUT Destroying container 
2017-01-03 10:57:15 [CELL/0] OUT Successfully destroyed container 
2017-01-03 10:57:16 [API/1] OUT Updated app with guid 310166b4-f3a6-4168-a9ac-530e45dbfb10 ({"state"=>"STARTED"}) 
2017-01-03 10:57:16 [CELL/0] OUT Creating container 
2017-01-03 10:57:16 [CELL/0] OUT Successfully created container 
2017-01-03 10:57:17 [CELL/0] OUT Starting health monitoring of container 
2017-01-03 10:57:19 [CELL/0] OUT Container became healthy 

尽管那些会消息表示该应用已更新,但我仍然可以看到应用的旧版本正在投放。


编辑

-v参数运行此命令后,我看到了失败的原因是网关超时:

RESPONSE: [2017-01-03T13:32:39+01:00] 
HTTP/1.1 504 Gateway Timeout 
Connection: close 
Content-Length: 176 
Cache-Control: no-cache, no-store, max-age=0, must-revalidate 
Content-Type: text/html 
Date: Tue, 03 Jan 2017 12:32:39 GMT 
Expires: 0 
Pragma: no-cache 
Strict-Transport-Security: max-age=15768000; includeSubDomains 
X-Content-Type-Options: nosniff 
X-Frame-Options: DENY 
X-Vcap-Request-Id: 3ac831ef-e70b-4f4e-7c56-e308806f039e 
X-Xss-Protection: 1; mode=block 

<html> 
<head><title>504 Gateway Time-out</title></head> 
<body bgcolor="white"> 
<center><h1>504 Gateway Time-out</h1></center> 
<hr><center>nginx</center> 
</body> 
</html> 

FAILED 
Error processing app files: Error uploading application. 
Server error, status code: 504, error code: 0, message: 

难道这cloudfoundry特定的或者说什么与Swisscom AppCloud有关?是否有cloudfoundry固有超时限制?

+0

你的应用程序有多大,在'上传helloclass-fe-develop ...'上挂了多久?你测试了你的带宽给你的CF提供商吗?这可能只是您的应用上传时间过长。正如@dkoper提到的那样,所有传入的请求都会导致超时。它默认为900s,但您的提供商可能会将它设置为更大/更小。如果您从跟踪输出的请求/响应日期标头中进行一些数学计算,您应该能够看到等待的时间以及是否可能会超时。 –

+0

非常感谢您的支持!我从根目录而不是build/dist文件夹上传。这导致超时.. – paweloque

回答

2

您可以使用-v运行cf push或启用CF_TRACE以查看CLI与CF端点的更多交互。
错误消息类似于https://github.com/cloudfoundry/cli/issues/1042:云控制器无法及时完成请求,并且将API请求路由到云控制器的路由器不再等待,并将504(网关超时)返回给CLI。

跟踪应该告诉你哪个API调用超时。
CLI终止了该操作,而云控制器最终可能已成功完成操作。

我还以为运作的CLI将在这里执行是:

  1. 发在你的应用程序文件及其校验和资源匹配的列表,(所以它可以跳过上传未经修改的应用程序位的CC缓存从以前的推)
  2. 上传应用程序文件
  3. (重新)启动的应用程序(包括分期)
  4. 调查&等待,直到应用程序实例返回它的运行

从您的CLI输出中我假设第一次操作超时,所以不清楚您的应用程序是如何重新启动的。

+0

非常感谢。详尽程度揭示了来源。请参阅我的问题中的编辑。 – paweloque

+0

我们已经知道从原始消息返回504网关超时。接下来会看到有趣的是接收到504的API请求。您没有将它包含在跟踪中:在504响应之前记录的请求是什么? (如果它是对与API匹配的资源调用,则可以排除长负载) – dkoper

+0

非常感谢您的支持!我从根目录而不是build/dist文件夹上传。这导致了超时。 – paweloque