การบันทึกเป็นเครื่องมือสำคัญสำหรับการดีบักและการตรวจสอบโค้ด Cloud Functions ให้ตัวเลือกแก่คุณในการใช้ logger SDK, Google Cloud Logging แบบกำหนดเอง หรือมาตรฐานวัตถุ console
สำหรับการพัฒนาสำหรับเว็บ
การเขียนบันทึก
ในขณะที่แนะนำให้ใช้ SDK ตัวบันทึก Cloud Functions สำหรับสถานการณ์ส่วนใหญ่ คุณอาจเลือกหนึ่งในตัวเลือกอื่นๆ ด้วยเหตุผลเหล่านี้:
- คุณมีโค้ดฐานอยู่แล้วและไม่ต้องการรีแฟคเตอร์จาก
console.log
- คุณคุ้นเคยกับการบันทึกบนคลาวด์ (เดิมคือการบันทึก StackDriver) และต้องการใช้สำหรับการบันทึกแบบกำหนดเอง
การใช้ SDK ตัวบันทึก Cloud Functions
SDK ตัวบันทึก Cloud Functions มีอินเทอร์เฟซมาตรฐานที่มี api คล้ายกับคำสั่ง console.log
และรองรับระดับการบันทึกอื่นๆ คุณสามารถใช้ SDK นี้เพื่อบันทึกเหตุการณ์ด้วย ข้อมูลที่มีโครงสร้าง ทำให้สามารถวิเคราะห์และตรวจสอบได้ง่ายขึ้น
SDK logger รองรับรายการบันทึกซึ่งเป็นส่วนหนึ่งของการนำเข้าไวด์การ์ด ตัวอย่างเช่น:
const functions = require("firebase-functions");
functions.logger.log("Hello from info. Here's an object:", someObj);
หรือคุณสามารถใช้การส่งออกทีละรายการ ตัวอย่างนี้แสดงข้อมูลที่มีโครงสร้างที่แนบมากับบันทึกเป็นอาร์กิวเมนต์สุดท้าย:
const { warn } = require("firebase-functions/logger");
// Attach structured data to the log as the last argument.
warn("This is a 'WARNING' severity message with some metadata.", {
key1: 'val1',
key2: 'val2'
});
- คำสั่ง
logger.log()
มีระดับบันทึก INFO - คำสั่ง
logger.info()
มีระดับบันทึก INFO - คำสั่ง
logger.warn()
มีระดับ การบันทึกคำเตือน - คำสั่ง
logger.error()
มีระดับการบันทึก ERROR - ข้อความระบบภายในมีระดับบันทึก DEBUG
ด้วย logger.write()
คุณสามารถเขียนรายการบันทึกโดยเพิ่มระดับความรุนแรงของบันทึกเป็น CRITICAL
, ALERT
และ EMERGENCY
ดู LogSeverity
บันทึก Cloud Logging แบบกำหนดเอง
บันทึก Cloud Functions ที่มี SDK logger ได้รับการสนับสนุนโดย Cloud Logging คุณสามารถใช้ ไลบรารี Cloud Logging สำหรับ Node.js เพื่อบันทึกเหตุการณ์ด้วยข้อมูลที่มีโครงสร้าง ทำให้สามารถวิเคราะห์และตรวจสอบได้ง่ายขึ้น
const { Logging } = require('@google-cloud/logging');
// ...
// Instantiate the logging SDK. The project ID will
// be automatically inferred from the Cloud Functions environment.
const logging = new Logging();
const log = logging.log('my-custom-log-name');
// This metadata is attached to each log entry. This specifies a fake
// Cloud Function called 'Custom Metrics' in order to make your custom
// log entries appear in the Cloud Functions logs viewer.
const METADATA = {
resource: {
type: 'cloud_function',
labels: {
function_name: 'CustomMetrics',
region: 'us-central1'
}
}
};
// ...
// Data to write to the log. This can be a JSON object with any properties
// of the event you want to record.
const data = {
event: 'my-event',
value: 'foo-bar-baz',
// Optional 'message' property will show up in the Firebase
// console and other human-readable logging surfaces
message: 'my-event: foo-bar-baz'
};
// Write to the log. The log.write() call returns a Promise if you want to
// make sure that the log was written successfully.
const entry = log.entry(METADATA, data);
log.write(entry);
ใช้ console.log
วิธีแก้ปัญหาที่แนะนำสำหรับการบันทึกจากฟังก์ชันคือการใช้ logger SDK คุณสามารถใช้การเรียกการบันทึก JavaScript มาตรฐาน เช่น console.log
และ console.error
แทนได้ แต่ก่อนอื่นคุณต้องมีโมดูลพิเศษเพื่อแพตช์วิธีการมาตรฐานเพื่อให้ทำงานได้อย่างถูกต้อง:
require("firebase-functions/logger/compat");
เมื่อคุณต้องการโมดูลความเข้ากันได้ของ logger แล้ว คุณสามารถใช้เมธอด console.log()
ได้ตามปกติในโค้ดของคุณ:
exports.helloError = functions.https.onRequest((request, response) => {
console.log('I am a log entry!');
response.send('Hello World...');
});
- คำสั่ง
console.log()
มีระดับบันทึกของ INFO - คำสั่ง
console.info()
มีระดับล็อก INFO - คำสั่ง
console.warn()
มีระดับบันทึก ข้อผิดพลาด - คำสั่ง
console.error()
มีระดับการบันทึก ERROR - ข้อความระบบภายในมีระดับบันทึก DEBUG
การดูบันทึก
บันทึกสำหรับ Cloud Functions สามารถดูได้ใน Google Cloud Console , Cloud Logging UI หรือผ่านเครื่องมือบรรทัดคำสั่ง firebase
การใช้ Firebase CLI
หากต้องการดูบันทึกด้วยเครื่องมือ firebase
ให้ใช้คำสั่ง functions:log
:
firebase functions:log
หากต้องการดูบันทึกสำหรับฟังก์ชันเฉพาะ ให้ระบุชื่อฟังก์ชันเป็นอาร์กิวเมนต์:
firebase functions:log --only <FUNCTION_NAME>
สำหรับตัวเลือกการดูบันทึกทั้งหมด ดูวิธีใช้สำหรับ functions:log
:
firebase help functions:log
การใช้ Google Cloud Console
คุณสามารถดูบันทึกสำหรับฟังก์ชันต่างๆ ได้ใน Google Cloud Console
การใช้ UI การบันทึกบนคลาวด์
คุณสามารถ ดูบันทึกสำหรับ Cloud Functions ได้ ใน Cloud Logging UI
การวิเคราะห์บันทึก
Cloud Logging มีชุดเครื่องมือวิเคราะห์บันทึกอันทรงพลังที่คุณสามารถใช้ตรวจสอบฟังก์ชันคลาวด์ของคุณได้
แผนภูมิและการแจ้งเตือน
เมื่อคุณสร้างเมตริกตามบันทึกเพื่อตรวจสอบการทำงานของคุณแล้ว คุณสามารถสร้างแผนภูมิและการแจ้งเตือนตามเมตริกเหล่านี้ได้ ตัวอย่างเช่น คุณสามารถสร้างแผนภูมิเพื่อแสดงภาพเวลาแฝงเมื่อเวลาผ่านไป หรือสร้างการแจ้งเตือนเพื่อแจ้งให้คุณทราบหากเกิดข้อผิดพลาดบางอย่างบ่อยเกินไป
ดู การสร้างแผนภูมิและการแจ้งเตือน สำหรับข้อมูลโดยละเอียดเกี่ยวกับวิธีใช้เมตริกตามบันทึกในแผนภูมิและนโยบายการแจ้งเตือน
, การบันทึกเป็นเครื่องมือสำคัญสำหรับการดีบักและการตรวจสอบโค้ด Cloud Functions ให้ตัวเลือกแก่คุณในการใช้ logger SDK, Google Cloud Logging แบบกำหนดเอง หรือมาตรฐานวัตถุ console
สำหรับการพัฒนาสำหรับเว็บ
การเขียนบันทึก
ในขณะที่แนะนำให้ใช้ SDK ตัวบันทึก Cloud Functions สำหรับสถานการณ์ส่วนใหญ่ คุณอาจเลือกหนึ่งในตัวเลือกอื่นๆ ด้วยเหตุผลเหล่านี้:
- คุณมีโค้ดฐานอยู่แล้วและไม่ต้องการรีแฟคเตอร์จาก
console.log
- คุณคุ้นเคยกับการบันทึกบนคลาวด์ (เดิมคือการบันทึก StackDriver) และต้องการใช้สำหรับการบันทึกแบบกำหนดเอง
การใช้ SDK ตัวบันทึก Cloud Functions
SDK ตัวบันทึก Cloud Functions มีอินเทอร์เฟซมาตรฐานที่มี api คล้ายกับคำสั่ง console.log
และรองรับระดับการบันทึกอื่นๆ คุณสามารถใช้ SDK นี้เพื่อบันทึกเหตุการณ์ด้วย ข้อมูลที่มีโครงสร้าง ทำให้สามารถวิเคราะห์และตรวจสอบได้ง่ายขึ้น
SDK logger รองรับรายการบันทึกซึ่งเป็นส่วนหนึ่งของการนำเข้าไวด์การ์ด ตัวอย่างเช่น:
const functions = require("firebase-functions");
functions.logger.log("Hello from info. Here's an object:", someObj);
หรือคุณสามารถใช้การส่งออกทีละรายการ ตัวอย่างนี้แสดงข้อมูลที่มีโครงสร้างที่แนบมากับบันทึกเป็นอาร์กิวเมนต์สุดท้าย:
const { warn } = require("firebase-functions/logger");
// Attach structured data to the log as the last argument.
warn("This is a 'WARNING' severity message with some metadata.", {
key1: 'val1',
key2: 'val2'
});
- คำสั่ง
logger.log()
มีระดับบันทึก INFO - คำสั่ง
logger.info()
มีระดับบันทึก INFO - คำสั่ง
logger.warn()
มีระดับ การบันทึกคำเตือน - คำสั่ง
logger.error()
มีระดับการบันทึก ERROR - ข้อความระบบภายในมีระดับบันทึก DEBUG
ด้วย logger.write()
คุณสามารถเขียนรายการบันทึกโดยเพิ่มระดับความรุนแรงของบันทึกเป็น CRITICAL
, ALERT
และ EMERGENCY
ดู LogSeverity
บันทึก Cloud Logging แบบกำหนดเอง
บันทึก Cloud Functions ที่มี SDK logger ได้รับการสนับสนุนโดย Cloud Logging คุณสามารถใช้ ไลบรารี Cloud Logging สำหรับ Node.js เพื่อบันทึกเหตุการณ์ด้วยข้อมูลที่มีโครงสร้าง ทำให้สามารถวิเคราะห์และตรวจสอบได้ง่ายขึ้น
const { Logging } = require('@google-cloud/logging');
// ...
// Instantiate the logging SDK. The project ID will
// be automatically inferred from the Cloud Functions environment.
const logging = new Logging();
const log = logging.log('my-custom-log-name');
// This metadata is attached to each log entry. This specifies a fake
// Cloud Function called 'Custom Metrics' in order to make your custom
// log entries appear in the Cloud Functions logs viewer.
const METADATA = {
resource: {
type: 'cloud_function',
labels: {
function_name: 'CustomMetrics',
region: 'us-central1'
}
}
};
// ...
// Data to write to the log. This can be a JSON object with any properties
// of the event you want to record.
const data = {
event: 'my-event',
value: 'foo-bar-baz',
// Optional 'message' property will show up in the Firebase
// console and other human-readable logging surfaces
message: 'my-event: foo-bar-baz'
};
// Write to the log. The log.write() call returns a Promise if you want to
// make sure that the log was written successfully.
const entry = log.entry(METADATA, data);
log.write(entry);
ใช้ console.log
วิธีแก้ปัญหาที่แนะนำสำหรับการบันทึกจากฟังก์ชันคือการใช้ logger SDK คุณสามารถใช้การเรียกการบันทึก JavaScript มาตรฐาน เช่น console.log
และ console.error
แทนได้ แต่ก่อนอื่นคุณต้องมีโมดูลพิเศษเพื่อแพตช์วิธีการมาตรฐานเพื่อให้ทำงานได้อย่างถูกต้อง:
require("firebase-functions/logger/compat");
เมื่อคุณต้องการโมดูลความเข้ากันได้ของ logger แล้ว คุณสามารถใช้เมธอด console.log()
ได้ตามปกติในโค้ดของคุณ:
exports.helloError = functions.https.onRequest((request, response) => {
console.log('I am a log entry!');
response.send('Hello World...');
});
- คำสั่ง
console.log()
มีระดับบันทึกของ INFO - คำสั่ง
console.info()
มีระดับล็อก INFO - คำสั่ง
console.warn()
มีระดับบันทึก ข้อผิดพลาด - คำสั่ง
console.error()
มีระดับการบันทึก ERROR - ข้อความระบบภายในมีระดับบันทึก DEBUG
การดูบันทึก
บันทึกสำหรับ Cloud Functions สามารถดูได้ใน Google Cloud Console , Cloud Logging UI หรือผ่านเครื่องมือบรรทัดคำสั่ง firebase
การใช้ Firebase CLI
หากต้องการดูบันทึกด้วยเครื่องมือ firebase
ให้ใช้คำสั่ง functions:log
:
firebase functions:log
หากต้องการดูบันทึกสำหรับฟังก์ชันเฉพาะ ให้ระบุชื่อฟังก์ชันเป็นอาร์กิวเมนต์:
firebase functions:log --only <FUNCTION_NAME>
สำหรับตัวเลือกการดูบันทึกทั้งหมด ดูวิธีใช้สำหรับ functions:log
:
firebase help functions:log
การใช้ Google Cloud Console
คุณสามารถดูบันทึกสำหรับฟังก์ชันต่างๆ ได้ใน Google Cloud Console
การใช้ UI การบันทึกบนคลาวด์
คุณสามารถ ดูบันทึกสำหรับ Cloud Functions ได้ ใน Cloud Logging UI
การวิเคราะห์บันทึก
Cloud Logging มีชุดเครื่องมือวิเคราะห์บันทึกอันทรงพลังที่คุณสามารถใช้ตรวจสอบฟังก์ชันคลาวด์ของคุณได้
แผนภูมิและการแจ้งเตือน
เมื่อคุณสร้างเมตริกตามบันทึกเพื่อตรวจสอบการทำงานของคุณแล้ว คุณสามารถสร้างแผนภูมิและการแจ้งเตือนตามเมตริกเหล่านี้ได้ ตัวอย่างเช่น คุณสามารถสร้างแผนภูมิเพื่อแสดงภาพเวลาแฝงเมื่อเวลาผ่านไป หรือสร้างการแจ้งเตือนเพื่อแจ้งให้คุณทราบหากเกิดข้อผิดพลาดบางอย่างบ่อยเกินไป
ดู การสร้างแผนภูมิและการแจ้งเตือน สำหรับข้อมูลโดยละเอียดเกี่ยวกับวิธีใช้เมตริกตามบันทึกในแผนภูมิและนโยบายการแจ้งเตือน