GCP infra会在“/ _ah / health”上点击您的应用,以确定它仍处于活动状态。我的应用是“Flex”类型,并且该网址上的很多:
除了其他任何东西之外,它使得日志难以导航:(
如何回拨测试健康终点的GCP频率?
答案 0 :(得分:2)
您可configure how App Engine performs health checks against your VM instances在health_check:
app.yaml
health_check:
enable_health_check: True
check_interval_sec: 5
timeout_sec: 4
unhealthy_threshold: 2
healthy_threshold: 2
配置中托管您的应用。
Health checks
定期运行状况检查请求用于确认VM实例 已成功部署,并检查正在运行的实例 保持健康的状态。必须在每个健康检查中回答 指定的时间间隔。当一个实例失败时,它就是不健康的 响应指定数量的连续健康检查请求。一个 不健康的实例不会收到任何客户请求,但健康 支票仍将发送。如果不健康的实例继续失败 它响应预定数量的连续健康检查 将重新启动。
默认情况下启用运行状况检查请求,默认阈值为 值。您可以通过添加可选项来自定义VM运行状况检查 健康检查部分到您的配置文件:
False
您可以使用以下选项进行运行状况检查:
enable_health_check - 启用/禁用运行状况检查。默认情况下启用运行状况检查。要禁用运行状况检查,请设置为
True
。 默认值:1 second
check_interval_sec - 检查之间的时间间隔。默认值:
1 second
timeout_sec - 运行状况检查超时间隔。默认值:
1 check
unhealthy_threshold - 连续检查次数失败后,实例运行状况不佳。默认值:
1 check
healthy_threshold - 成功响应此连续检查次数后,不健康的实例再次变为健康状态。 默认值:
300 checks
restart_threshold - 当连续运行状况检查失败次数超过此阈值时,将重新启动实例。默认:
check_interval_sec
默认情况下,运行状况检查已打开,建议不要仅关闭运行状况检查以确保App Engine不向未响应的VM发送请求。相反,您可以控制$it = "(a(am,bam),b(dam,cam))";
function iDelimiter( $str ) {
$count = 0;
$str = str_split( $str );
foreach( $str as &$value ) {
if( $value == "(" ) {
$count++;
} elseif( $value == ")" ) {
$count--;
}
if( $value == "," && ! $count ) {
$value = "|";
}
}
return explode( "|", implode( $str ) );
}
function iParser( $str, $_prefix = "" ) {
preg_match( "/^((?!(\(|\))).)*\((.*)\)$/", $str, $m );
if( count( $m ) < 4 ) {
return ( strlen( $_prefix ) ? $_prefix . "." : '' ) . $str;
}
$prefix = ( strlen( $_prefix ) ? $_prefix . "." : '' ) . $m[1];
$str = $m[3];
if( strpos( $str, "(" ) === false ) {
$return = explode( ",", $str );
$pad = preg_filter( '/^/', strlen( $prefix ) ? $prefix . '.' : '', $return );
return implode( $pad, "," );
} else {
$str = iDelimiter( $str );
$return = array_map( 'iParser', $str, array_pad( array(), count( $str ), $prefix ) );
return implode( $return, ", " );
}
}
print_r( iParser( $it ) );
来调整您希望检查VM运行状况的频率。
查看日志时,您始终可以从日志中过滤掉信息。查看Advanced Log filtering UI and syntax上的信息。
答案 1 :(得分:1)
正如其他人提到的那样app.yaml config page
截至发布日期,它并未说明默认值是什么。
以下是using System.Net;
...
WebClient client = new WebClient();
client.DownloadFile("Your url","download location");
var的超级奇怪 - 对于某些设置值,GCP部署者会阻止我的部署。
对于&#39; check_interval_sec&#39;设置为200,导致部署失败,并显示以下消息:
check_interval_sec
设置为20,导致部署失败,并显示以下消息:
"Invalid value for field 'resource.checkIntervalSec': '6000'.
Must be less than or equal to 300"
设置为10,并且在控制台中确实是10秒(尽管出于某种原因,JVM同时出现了一堆线程)。
TL; DR:秒数不是&#39; check_interval_sec&#39; - 至少对于&#39; flex&#39;应用