Summary
Google 建议可以使用具有“initialData”属性的 JSON 对象将 App 脚本参数(以及其他数据)写入 Stackdriver。
但这似乎不起作用。
问题示例
这个谷歌页面 https://developers.google.com/apps-script/guides/logging#stackdriver_logging包含一个示例函数,演示了将信息写入 Stackdriver 的不同方式。
他们自己的代码摘录如下:
var parameters = {
isValid: true,
content: 'some string',
timestamp: new Date()
};
console.log({message: 'Function Input', initialData: parameters});
当他们的 App Script 函数运行时,它应该将这些参数值写入 Stackdriver 日志消息中。
但在运行并检查 Stackdriver 后,消息(下面的示例)中的任何位置都不包含该参数:
{
insertId: "s14ubwdkw81"
jsonPayload: {
message: "Function Input"
serviceContext: {
service: "AKfycbwcG7JGj9z-yomue0m_bOVdIVyFgDasdsasdsadngdCkk_l"
}
}
labels: {
script.googleapis.com/deployment_id: "AKfycbwcG7JGj9z-yomue0m_bOVdsadsad7x7pHYngdCkk_l"
script.googleapis.com/process_id: "EAEA1GOzkIp_aAfasdsadsadsazTnDWNA_ureP83_A8Agfr4IQ9pzSfRzfj1wnw8U_lCUUA4O9afoxyZuCCHYlB5ryBpu0LxfcibIITaoFqdbiVjprxDC5sVIXUAdpnQX3ud0-Xp8t9awJPH484YyeQRsassadZzksNSXYxl4VwcOw"
script.googleapis.com/project_key: "MtcDasfdsfsfsfsfsaduYD4VaIEGs0Nwta"
script.googleapis.com/user_key: "ANbVsadsadasdadashbqPEennz6PO1tasdsadasdfsddg+PjGhPshrkLV1SGwofeIcgpw0"
}
logName: "projects/project-id-416855555555555555559030426/logs/script.googleapis.com%2Fconsole_logs"
receiveTimestamp: "2019-05-22T15:14:53.355673423Z"
resource: {
labels: {
function_name: "measuringExecutionTime"
invocation_type: "editor"
project_id: "project-id-416855555555555530426"
}
type: "app_script_function"
}
severity: "DEBUG"
timestamp: "2019-05-22T15:14:52.844Z"
}
我认为这是 Stackdriver 或 App Script 错误,但我想确保我没有犯错误或遗漏某些内容。有任何想法吗?
Update
进一步调查表明这可能是一个错误,因为云函数中的相同代码确实按预期工作,Stackdriver 摘录如下:
{
insertId: "000000-7e143986-76f1-5555-b167-8186214f7739"
labels: {
execution_id: "o8r9555cli0j"
}
logName: "projects/my-project/logs/cloudfunctions.googleapis.com%2Fcloud-functions"
receiveTimestamp: "2019-05-16T10:34:26.503211511Z"
resource: {
labels: {
function_name: "gcf_htp_function_name"
project_id: "my-project"
region: "us-central1"
}
type: "cloud_function"
}
severity: "INFO"
textPayload: "{ message: 'Function Input',
initialData:
{ isValid: true,
content: 'some string'}"
timestamp: "2019-05-23T10:34:21.084Z"
trace: "projects/my-project/traces/a4df23072bfef15269947eaecf3a8f44"
}