Cloud Foundry的instance id不是GUID?使用Steeltoe获取vcap实例ID问题咨询
问题结论
这个情况属于预期内的正常行为,不属于Steeltoe库解析错误或者平台返回异常。
原因说明
- Cloud Foundry官方从未对
vcap:application:instance_id的格式做强制要求,仅约定该值为应用实例的全局唯一标识,不同厂商、不同版本的Cloud Foundry平台可能返回36位标准GUID、28位短标识或者其他格式的字符串,你获取到的28位字符串本身是合法的实例标识。 - 3.1.0版本的
Steeltoe.Extensions.Configuration.CloudFoundryCore库仅会原样读取、映射VCAP_APPLICATION环境变量中的字段值,不会对字段内容做任何格式校验、转换或补全操作,所以会直接透传平台返回的原始值。 - 你可以登录Cloud Foundry目标应用实例,执行
echo $VCAP_APPLICATION命令查看原生环境变量的instance_id字段值,和你通过Steeltoe配置拿到的值完全一致即可验证。
业务兼容建议
如果你的业务逻辑强依赖该值为标准GUID格式,可自行对拿到的字符串做适配处理,比如通过哈希算法生成标准GUID,不要依赖平台返回的标识格式。
内容的提问来源于stack exchange,提问作者Yuantai Wu
相关产品推荐
相关产品推荐

