如何从cloud_run获取instanceid?
How to get instanceid from cloud_run?
来自云 运行 的日志吐出一些好的 json resource.labels.revision_name = my_name-00046-kip。
json 路径 labels.instanceId 更像是这样
00bf4bf02d71261c0c1f55a601331b336a5d90d365cca1b28330dcf3e456fb7c07d5b72f1d3c9a971e391b5edc3512aea8559d172b24e639
根据这份文件,我能够得到 revision_name
https://cloud.google.com/run/docs/reference/container-contract#env-vars
但我无法获取实例 ID,并且必须按实例报告指标,否则两个实例在同一分钟内报告将被拒绝。如何获取实例 ID(最好通过 DockerFile,如果不通过 api 调用)。如果云 运行 在一个修订名称下启动 10 个实例,我必须确保向我计划用实例 ID 填写 job_id 的通用任务资源唯一地报告指标。
谢谢,
院长
Stackdriver中logging的条目如下
labels: {
instanceId: "00bf4bf02d4b374e91dda64bc4c4241a218302c4bcc73a01ecf85e582127e8c8076fcbe18b3cc934f5ed33e5dc1348c58cfd40cbecc0c9ae2a0b6d2356"
}
labels: {
configuration_name: "cloudrunservice"
location: "us-central1"
project_id: "xxxx-xxxx-000"
revision_name: "cloudrunservice-00002-leq"
service_name: "cloudrunservice"
}
type: "cloud_run_revision"
如您所述,每个都有实例 ID、修订名称和服务名称。这样,您就不必担心同一实例/时间在日志记录中被拒绝的条目。
我在 UI、managing Revisions 中看不到与实例 ID 相关的内容。从日志中处理此 JSON 您可以获得 InsanceID。
请尝试使用元数据服务器获取实例 ID:
http://metadata.google.internal/computeMetadata/v1/instance/id
请注意,"Metadata-Flavor: Google" header 也是必需的。
如果您正在使用 Java(如标签所示),以编程方式从“内部元数据服务器”获取实例 ID 的最简单方法可能是包含依赖项 com.google.cloud:google-cloud-core:1.93.5
(或更新)通过 Gradle/Maven 然后调用以下方法:
import com.google.cloud.MetadataConfig;
String instanceId = MetadataConfig.getInstanceId();
来自云 运行 的日志吐出一些好的 json resource.labels.revision_name = my_name-00046-kip。
json 路径 labels.instanceId 更像是这样
00bf4bf02d71261c0c1f55a601331b336a5d90d365cca1b28330dcf3e456fb7c07d5b72f1d3c9a971e391b5edc3512aea8559d172b24e639
根据这份文件,我能够得到 revision_name
https://cloud.google.com/run/docs/reference/container-contract#env-vars
但我无法获取实例 ID,并且必须按实例报告指标,否则两个实例在同一分钟内报告将被拒绝。如何获取实例 ID(最好通过 DockerFile,如果不通过 api 调用)。如果云 运行 在一个修订名称下启动 10 个实例,我必须确保向我计划用实例 ID 填写 job_id 的通用任务资源唯一地报告指标。
谢谢, 院长
Stackdriver中logging的条目如下
labels: {
instanceId: "00bf4bf02d4b374e91dda64bc4c4241a218302c4bcc73a01ecf85e582127e8c8076fcbe18b3cc934f5ed33e5dc1348c58cfd40cbecc0c9ae2a0b6d2356"
}
labels: {
configuration_name: "cloudrunservice"
location: "us-central1"
project_id: "xxxx-xxxx-000"
revision_name: "cloudrunservice-00002-leq"
service_name: "cloudrunservice"
}
type: "cloud_run_revision"
如您所述,每个都有实例 ID、修订名称和服务名称。这样,您就不必担心同一实例/时间在日志记录中被拒绝的条目。
我在 UI、managing Revisions 中看不到与实例 ID 相关的内容。从日志中处理此 JSON 您可以获得 InsanceID。
请尝试使用元数据服务器获取实例 ID:
http://metadata.google.internal/computeMetadata/v1/instance/id
请注意,"Metadata-Flavor: Google" header 也是必需的。
如果您正在使用 Java(如标签所示),以编程方式从“内部元数据服务器”获取实例 ID 的最简单方法可能是包含依赖项 com.google.cloud:google-cloud-core:1.93.5
(或更新)通过 Gradle/Maven 然后调用以下方法:
import com.google.cloud.MetadataConfig;
String instanceId = MetadataConfig.getInstanceId();