我已经阅读了发布说明https://steeltoe.io/reference/reference-release-notes/#2-2-0,并且有兴趣通过http公开/health端点(我指的是在PCF Apps manager之外)。我在appsettings.json中有以下设置
{
"management": {
"endpoints": {
"path": "/cloudfoundryapplication",
"cloudfoundry": {
"validateCertificates": false
},
"health": {
"showdetails": "always",
"claim": {
"type": "health_actuator",
"value": "see_details"
}
}
}
}
}
我的项目引用了Steeltoe.Management.CloudFoundryCore V2.2.0,我的启动如下所示
public void ConfigureServices(IServiceCollection services)
{
// Add health actuator
services.AddHealthActuator(configuration);
services.AddCloudFoundryActuators(Configuration);
}
public void Configure(IApplicationBuilder app)
{
if (HostingEnvironment.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
app.UseCloudFoundryActuators();
app.UseHealthChecks();
app.UseMvc();
}
现在,当我试图调用url时,我得到了一个401错误,说{"security_error":"Authorization header is missing or invalid"}。知道这里可能出了什么问题。
发布于 2019-04-10 01:41:15
以下是在cloudfoundry中运行时在应用程序管理器之外访问健康端点所需的步骤:
management:endpoints:path
或将其设置为/cloudfoundryapplication以外的任何值。默认情况下,您的外部端点将在/actuator/**下可用。例如,您可以将其设置为管理(只是不是cloudfoundryapplication,因为apps man使用该路由,并且它是安全的)。services.AddCloudFoundryActuators(Configuration, MediaTypeVersion.V2, ActuatorContext.ActuatorAndCloudFoundry);
这包括健康执行器,因此您不需要另一个AddHealthActuator app.UseCloudFoundryActuators( MediaTypeVersion.V2, ActuatorContext.ActuatorAndCloudFoundry);
"claim": { "type": "health_actuator", "value": "see_details" }
..。您需要在您的请求中提供这些信息。但看起来你不是。此配置是保护端点安全的一种方法。要在没有安全性的情况下查看它,您可以删除配置的该部分。另外,默认设置是show details,因此您可以完全删除"health“下的配置。
https://stackoverflow.com/questions/55596494
复制相似问题