選取您的 Cookie 偏好設定

我們使用提供自身網站和服務所需的基本 Cookie 和類似工具。我們使用效能 Cookie 收集匿名統計資料,以便了解客戶如何使用我們的網站並進行改進。基本 Cookie 無法停用,但可以按一下「自訂」或「拒絕」以拒絕效能 Cookie。

如果您同意,AWS 與經核准的第三方也會使用 Cookie 提供實用的網站功能、記住您的偏好設定,並顯示相關內容,包括相關廣告。若要接受或拒絕所有非必要 Cookie,請按一下「接受」或「拒絕」。若要進行更詳細的選擇,請按一下「自訂」。

記錄和監控 C# Lambda 函數

焦點模式
記錄和監控 C# Lambda 函數 - AWS Lambda

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

AWS Lambda 會自動監控 Lambda 函數,並將日誌項目傳送至 Amazon CloudWatch。您的 Lambda 函數隨附有 CloudWatch Logs 日誌群組,且函數的每一執行個體各有一個日誌串流。Lambda 執行期環境會將每次調用的詳細資訊和函數程式碼的其他輸出,傳送至日誌串流。如需 CloudWatch Logs 的詳細資訊,請參閱將 CloudWatch Logs 與 Lambda 搭配使用

建立傳回日誌的函數

若要由您的函數程式碼輸出日誌,您可以使用主控台物件中的 ILambdaLogger主控台類別的方法,或任何能寫入 stdoutstderr 的記錄程式庫。

.NET 執行期會記錄每次調用的 STARTENDREPORT 行。報告明細行提供下列詳細資訊。

REPORT 行資料欄位
  • RequestId - 進行調用的唯一請求 ID。

  • 持續時間 - 函數的處理常式方法處理事件所花費的時間量。

  • 計費持續時間 - 調用的計費時間量。

  • 記憶體大小 - 分配給函數的記憶體數量。

  • 使用的記憶體上限 - 函數所使用的記憶體數量。當調用共用執行環境時,Lambda 會報告所有調用使用的記憶體上限。此行為可能會導致報告值高於預期值。

  • 初始化持續時間 - 對於第一個提供的請求,這是執行期載入函數並在處理常式方法之外執行程式碼所花費的時間量。

  • XRAY TraceId - 對於追蹤的請求,這是 AWS X-Ray 追蹤 ID

  • SegmentId - 對於追蹤的請求,這是 X-Ray 區段 ID。

  • 已取樣 - 對於追蹤的請求,這是取樣結果。

搭配 .NET 使用 Lambda 進階日誌控制項

為了讓您更妥善地控制擷取、處理和使用函數日誌的方式,您可以針對支援的 .NET 執行時期設定下列記錄選項:

  • 日誌格式 - 在純文字和結構化 JSON 格式之間為您的日誌進行選擇

  • 日誌層級 - 對於 JSON 格式的日誌,請選擇 Lambda 傳送到 CloudWatch 的日誌之詳細等級,例如 ERROR、DEBUG 或 INFO

  • 日誌群組 - 選擇您的函數將日誌傳送到的 CloudWatch 日誌群組

如需這些日誌選項的詳細資訊,以及如何設定函數以使用這些選項的說明,請參閱 設定 Lambda 函數的進階日誌記錄控制項

若要使用日誌格式和日誌層級選項與 .NET Lambda 函數搭配使用,請參閱以下各章節中的指引。

搭配 .NET 使用結構化 JSON 日誌格式

如果您為函數的日誌格式選取 JSON,Lambda 會以結構化 JSON 形式使用 ILambdaLogger 來傳送日誌輸出。每個 JSON 日誌物件都包含至少五個鍵值對,其中包含下列索引鍵:

  • "timestamp" - 產生日誌訊息的時間

  • "level" - 指派給訊息的日誌層級

  • "requestId" - 進行調用的唯一請求 ID。

  • "traceId" - _X_AMZN_TRACE_ID 環境變數

  • "message" - 日誌訊息的內容

ILambdaLogger 執行個體可以新增其他鍵值對,例如記錄例外狀況時。您也可以提供自己的其他參數,如 客戶提供的日誌參數 章節中所述。

注意

如果程式碼已使用另一個日誌程式庫來產生 JSON 格式的日誌,請確定函數的日誌格式設定為純文字。將日誌格式設定為 JSON 將導致日誌輸出進行雙重編碼。

下列記錄命令範例示範如何使用 INFO 層級來撰寫日誌訊息。

範例 .NET 日誌程式碼
context.Logger.LogInformation("Fetching cart from database");

也可以使用一般日誌方法,將日誌層級作為引數,如下列範例所示。

context.Logger.Log(LogLevel.Information, "Fetching cart from database");

會在 CloudWatch Logs 中擷取這些範例程式碼片段所輸出的日誌,如下所示:

範例 JSON 日誌記錄
{ "timestamp": "2023-09-07T01:30:06.977Z", "level": "Information", "requestId": "8f711428-7e55-46f9-ae88-2a65d4f85fc5", "traceId": "1-6408af34-50f56f5b5677a7d763973804", "message": "Fetching cart from database" }
注意

如果將函數的日誌格式設定為使用純文字而非 JSON,則訊息中擷取的日誌層級會遵循使用四字元標籤的 Microsoft 慣例。例如,Debug 的日誌層級在訊息中表示為 dbug

將函數設定為使用 JSON 格式的日誌時,日誌中擷取的日誌層級會使用完整標籤,如範例 JSON 日誌記錄所示。

如果您沒有為日誌輸出指派層級,Lambda 會自動為其指派層級 INFO。

在 JSON 中記錄例外狀況

搭配使用結構化 JSON 日誌與 ILambdaLogger 時,您可以在程式碼中記錄例外狀況,如下列範例所示。

範例 例外狀況日誌的使用情況
try { connection.ExecuteQuery(query); } catch(Exception e) { context.Logger.LogWarning(e, "Error executing query"); }

此程式碼輸出的日誌格式會顯示在下列範例 JSON 中。請注意,使用 LogWarning 呼叫中提供的訊息引數來填充 JSON 中的 message 屬性,而 errorMessage 屬性來自例外狀況本身的 Message 屬性。

範例 JSON 日誌記錄
{ "timestamp": "2023-09-07T01:30:06.977Z", "level": "Warning", "requestId": "8f711428-7e55-46f9-ae88-2a65d4f85fc5", "traceId": "1-6408af34-50f56f5b5677a7d763973804", "message": "Error executing query", "errorType": "System.Data.SqlClient.SqlException", "errorMessage": "Connection closed", "stackTrace": ["<call exception.StackTrace>"] }

如果函數的日誌格式設定為 JSON,則當您的程式碼擲出未攔截的例外狀況時,Lambda 也會輸出 JSON 格式的日誌訊息。下列程式碼片段和日誌訊息範例顯示如何記錄未攔截的例外狀況。

範例 例外狀況代碼
throw new ApplicationException("Invalid data");
範例 JSON 日誌記錄
{ "timestamp": "2023-09-07T01:30:06.977Z", "level": "Error", "requestId": "8f711428-7e55-46f9-ae88-2a65d4f85fc5", "traceId": "1-6408af34-50f56f5b5677a7d763973804", "message": "Invalid data", "errorType": "System.ApplicationException", "errorMessage": "Invalid data", "stackTrace": ["<call exception.StackTrace>"] }

客戶提供的日誌參數

使用 JSON 格式的日誌訊息,可以提供額外的日誌參數,並將這些參數包含在日誌 message 中。下列程式碼片段範例顯示一個命令,它可新增兩個使用者提供的參數,分別標記為 retryAttempturi。在此範例中,這些參數的值來自傳遞至日誌命令的 retryAttempturiDestination 引數。

範例 具有其他參數的 JSON 日誌命令
context.Logger.LogInformation("Starting retry {retryAttempt} to make GET request to {uri}", retryAttempt, uriDestination);

此命令輸出的日誌訊息會顯示在下列範例 JSON 中。

範例 JSON 日誌記錄
{ "timestamp": "2023-09-07T01:30:06.977Z", "level": "Information", "requestId": "8f711428-7e55-46f9-ae88-2a65d4f85fc5", "traceId": "1-6408af34-50f56f5b5677a7d763973804", "message": "Starting retry 1 to make GET request to http://example.com/", "retryAttempt": 1, "uri": "http://example.com/" }
提示

在指定其他參數時,也可以使用位置屬性而非名稱。例如,上一個範例中的日誌命令也可以編寫如下:

context.Logger.LogInformation("Starting retry {0} to make GET request to {1}", retryAttempt, uriDestination);

請注意,當您提供額外的日誌參數時,Lambda 會將它們擷取為 JSON 日誌記錄中的頂層屬性。此方法與一些熱門的 .NET 日誌程式庫 (例如 Serilog) 不同,它會擷取個別子物件中的其他參數。

如果您為其他參數提供的引數是複雜物件,根據預設,Lambda 會使用 ToString() 方法提供值。若要指出引數應該是 JSON 序列化,請使用 @ 字首,如下列程式碼片段所示。在此範例中,User 是具有 FirstNameLastName 屬性的物件。

範例 具有 JSON 序列化物件的 JSON 日誌命令
context.Logger.LogInformation("User {@user} logged in", User);

此命令輸出的日誌訊息會顯示在下列範例 JSON 中。

範例 JSON 日誌記錄
{ "timestamp": "2023-09-07T01:30:06.977Z", "level": "Information", "requestId": "8f711428-7e55-46f9-ae88-2a65d4f85fc5", "traceId": "1-6408af34-50f56f5b5677a7d763973804", "message": "User {@user} logged in", "user": { "FirstName": "John", "LastName": "Doe" } }

如果其他參數的引數是陣列或實作 IListIDictionary,則 Lambda 會將引數新增至 JSON 日誌訊息作為陣列,如下列範例 JSON 日誌記錄所示。在此範例中,{users} 會採用 IList 引數,其中包含與先前範例格式相同的 User 屬性的執行個體。Lambda 會將此 IList 轉換為陣列,使用 ToString 方法建立每個值。

範例 具有 IList 引數的 JSON 日誌記錄
{ "timestamp": "2023-09-07T01:30:06.977Z", "level": "Information", "requestId": "8f711428-7e55-46f9-ae88-2a65d4f85fc5", "traceId": "1-6408af34-50f56f5b5677a7d763973804", "message": "{users} have joined the group", "users": [ "Rosalez, Alejandro", "Stiles, John" ] }

也可以在日誌命令中使用 @ 字首,對清單進行 JSON 序列化。在下列範例 JSON 日誌記錄中,users 屬性為 JSON 序列化。

範例 具有 JSON 序列化 IList 引數的 JSON 日誌記錄
{ "timestamp": "2023-09-07T01:30:06.977Z", "level": "Information", "requestId": "8f711428-7e55-46f9-ae88-2a65d4f85fc5", "traceId": "1-6408af34-50f56f5b5677a7d763973804", "message": "{@users} have joined the group", "users": [ { "FirstName": "Alejandro", "LastName": "Rosalez" }, { "FirstName": "John", "LastName": "Stiles" } ] }

搭配 .NET 使用日誌層級篩選

透過設定日誌層級篩選,您可以選擇只傳送特定詳細資訊層級或更低層級的日誌至 CloudWatch Logs。若要瞭解如何設定函數的日誌層級篩選,請參閱 日誌層級篩選

若要 AWS Lambda 讓 依日誌層級篩選日誌訊息,您可以使用 JSON 格式的日誌,或使用 .NET Console方法來輸出日誌訊息。若要建立 JSON 格式日誌,請將函數的日誌類型設定為 JSON,並使用 ILambdaLogger 執行個體。

使用 JSON 格式日誌,Lambda 會使用 搭配 .NET 使用結構化 JSON 日誌格式 中所述 JSON 物件中的「層級」索引鍵值組篩選您的日誌輸出。

如果使用 .NET Console 方法,將訊息寫入 CloudWatch Logs,Lambda 會將日誌層級套用至您的訊息,如下所示:

  • Console.WriteLine 方法 - Lambda 會套用 INFO 的日誌層級

  • Console.Error 方法 - Lambda 會套用 ERROR 的日誌層級

將函數設定為使用日誌層級篩選時,您必須從下列選項中選取要 Lambda 傳送至 CloudWatch Logs 的日誌層級。請注意 Lambda 使用的日誌層級與 .NET ILambdaLogger 所使用的標準 Microsoft 層級的映射。

Lambda 日誌層級 同等 Microsoft 層級 標準用量
TRACE (大多數詳細資訊) 追蹤 用於追蹤程式碼執行路徑的最精細資訊
DEBUG 偵錯 系統偵錯的詳細資訊
INFO 資訊 記錄函數正常操作的訊息
WARN 警告 有關可能導致未解決意外行為的潛在錯誤的消息
ERROR 錯誤 有關阻止程式碼按預期執行的問題的訊息
FATAL (最少詳細資訊) 嚴重 有關導致應用程式停止運作的嚴重錯誤訊息

Lambda 會將選取的詳細資訊層級和更低層級的日誌傳送至 CloudWatch。例如,如果您設定 WARN 的日誌層級,Lambda 會傳送相對應於 WARN、ERROR 和 FATAL 層級的日誌檔。

其他日誌工具和程式庫

Powertools for AWS Lambda (.NET) 是一種開發人員工具組,可實作無伺服器最佳實務並提高開發人員速度。記錄公用程式提供 Lambda 優化記錄器,其中包含有關所有函數之函數內容的其他資訊,輸出結構為 JSON。使用此公用程式執行下列操作:

  • 從 Lambda 內容、冷啟動和 JSON 形式的結構記錄輸出中擷取關鍵欄位

  • 在收到指示時記錄 Lambda 調用事件 (預設為停用)

  • 透過日誌採樣僅列印調用百分比的所有日誌 (預設為停用)

  • 在任何時間點將其他金鑰附加至結構化日誌

  • 使用自訂日誌格式化程式 (自帶格式化程式),以與組織的日誌記錄 RFC 相容的結構輸出日誌。

使用 Powertools for AWS Lambda (.NET) 和 AWS SAM 用於結構化記錄

請依照下列步驟下載、建置和部署範例 Hello World C# 應用程式,並整合 Powertools for AWS Lambda (。NET) 模組使用 AWS SAM。此應用程式實作了基本 API 後端,並使用 Powertools 發送日誌、指標和追蹤。其包含 Amazon API Gateway 端點和 Lambda 函數。當您將 GET 請求傳送至 API Gateway 端點時,Lambda 函數會調用、使用內嵌指標格式將日誌和指標傳送至 CloudWatch,並將追蹤傳送至 AWS X-Ray。該函數會傳回 hello world 訊息。

先決條件

若要完成本節中的步驟,您必須執行下列各項:

部署範例 AWS SAM 應用程式
  1. 使用 Hello World TypeScript 範本來初始化應用程式。

    sam init --app-template hello-world-powertools-dotnet --name sam-app --package-type Zip --runtime dotnet6 --no-tracing
  2. 建置應用程式。

    cd sam-app && sam build
  3. 部署應用程式。

    sam deploy --guided
  4. 依照螢幕上的提示操作。若要接受互動體驗中提供的預設選項,請按下 Enter

    注意

    對於 HelloWorldFunction may not have authorization defined, Is this okay?,確保輸入 y

  5. 取得已部署應用程式的 URL:

    aws cloudformation describe-stacks --stack-name sam-app --query 'Stacks[0].Outputs[?OutputKey==`HelloWorldApi`].OutputValue' --output text
  6. 調用 API 端點:

    curl -X GET <URL_FROM_PREVIOUS_STEP>

    成功的話,您將會看到以下回應:

    {"message":"hello world"}
  7. 若要獲取該函數的日誌,請執行 sam 日誌。如需詳細資訊,請參閱《AWS Serverless Application Model 開發人員指南》 中的 使用日誌

    sam logs --stack-name sam-app

    日誌輸出如下:

    2023/02/20/[$LATEST]4eaf8445ba7a4a93b999cb17fbfbecd8 2023-02-20T14:15:27.988000 INIT_START Runtime Version: dotnet:6.v13 Runtime Version ARN: arn:aws:lambda:ap-southeast-2::runtime:699f346a05dae24c58c45790bc4089f252bf17dae3997e79b17d939a288aa1ec 2023/02/20/[$LATEST]4eaf8445ba7a4a93b999cb17fbfbecd8 2023-02-20T14:15:28.229000 START RequestId: bed25b38-d012-42e7-ba28-f272535fb80e Version: $LATEST 2023/02/20/[$LATEST]4eaf8445ba7a4a93b999cb17fbfbecd8 2023-02-20T14:15:29.259000 2023-02-20T14:15:29.201Z bed25b38-d012-42e7-ba28-f272535fb80e info {"_aws":{"Timestamp":1676902528962,"CloudWatchMetrics":[{"Namespace":"sam-app-logging","Metrics":[{"Name":"ColdStart","Unit":"Count"}],"Dimensions":[["FunctionName"],["Service"]]}]},"FunctionName":"sam-app-HelloWorldFunction-haKIoVeose2p","Service":"PowertoolsHelloWorld","ColdStart":1} 2023/02/20/[$LATEST]4eaf8445ba7a4a93b999cb17fbfbecd8 2023-02-20T14:15:30.479000 2023-02-20T14:15:30.479Z bed25b38-d012-42e7-ba28-f272535fb80e info {"ColdStart":true,"XrayTraceId":"1-63f3807f-5dbcb9910c96f50742707542","CorrelationId":"d3d4de7f-4ccc-411a-a549-4d67b2fdc015","FunctionName":"sam-app-HelloWorldFunction-haKIoVeose2p","FunctionVersion":"$LATEST","FunctionMemorySize":256,"FunctionArn":"arn:aws:lambda:ap-southeast-2:123456789012:function:sam-app-HelloWorldFunction-haKIoVeose2p","FunctionRequestId":"bed25b38-d012-42e7-ba28-f272535fb80e","Timestamp":"2023-02-20T14:15:30.4602970Z","Level":"Information","Service":"PowertoolsHelloWorld","Name":"AWS.Lambda.Powertools.Logging.Logger","Message":"Hello world API - HTTP 200"} 2023/02/20/[$LATEST]4eaf8445ba7a4a93b999cb17fbfbecd8 2023-02-20T14:15:30.599000 2023-02-20T14:15:30.599Z bed25b38-d012-42e7-ba28-f272535fb80e info {"_aws":{"Timestamp":1676902528922,"CloudWatchMetrics":[{"Namespace":"sam-app-logging","Metrics":[{"Name":"ApiRequestCount","Unit":"Count"}],"Dimensions":[["Service"]]}]},"Service":"PowertoolsHelloWorld","ApiRequestCount":1} 2023/02/20/[$LATEST]4eaf8445ba7a4a93b999cb17fbfbecd8 2023-02-20T14:15:30.680000 END RequestId: bed25b38-d012-42e7-ba28-f272535fb80e 2023/02/20/[$LATEST]4eaf8445ba7a4a93b999cb17fbfbecd8 2023-02-20T14:15:30.680000 REPORT RequestId: bed25b38-d012-42e7-ba28-f272535fb80e Duration: 2450.99 ms Billed Duration: 2451 ms Memory Size: 256 MB Max Memory Used: 74 MB Init Duration: 240.05 ms XRAY TraceId: 1-63f3807f-5dbcb9910c96f50742707542 SegmentId: 16b362cd5f52cba0
  8. 這是可透過網際網路存取的公有 API 端點。建議您在測試後刪除端點。

    sam delete

管理日誌保留

當您刪除函數時,不會自動刪除日誌群組。若要避免無限期地儲存日誌,請刪除日誌群組,或設定保留期間,CloudWatch 會在該時間之後自動刪除日誌。若要設定日誌保留,請將下列項目新增至您的 AWS SAM 範本:

Resources: HelloWorldFunction: Type: AWS::Serverless::Function Properties: # Omitting other properties LogGroup: Type: AWS::Logs::LogGroup Properties: LogGroupName: !Sub "/aws/lambda/${HelloWorldFunction}" RetentionInDays: 7

在 Lambda 主控台檢視日誌

您可以在調用 Lambda 函數之後,使用 Lambda 主控台來檢視日誌輸出。

如果可以從內嵌程式碼編輯器測試您的程式碼,您會在執行結果中找到日誌。使用主控台測試功能以調用函數時,您會在詳細資訊區段找到日誌輸出

在 CloudWatch 主控台中檢視 記錄

您可以使用 Amazon CloudWatch 主控台來檢視所有 Lambda 函數調用的日誌。

若要在 CloudWatch 主控台上檢視日誌
  1. 在 CloudWatch 主控台上開啟日誌群組頁面

  2. 選擇您的函數的日誌群組 (/aws/lambda/your-function-name)。

  3. 選擇日誌串流

每個日誌串流都會對應至函式的執行個體。當您更新 Lambda 函數,以及建立額外執行個體以處理多個並行調用時,便會出現日誌串流。若要尋找特定調用的日誌,建議您使用 檢測函數 AWS X-Ray。X-Ray 會在追蹤內記錄有關請求和日誌串流的詳細資訊。

使用 AWS Command Line Interface (AWS CLI) 檢視日誌

AWS CLI 是開放原始碼工具,可讓您使用命令列 shell 中的命令與 AWS 服務互動。若要完成本節中的步驟,您必須擁有 AWS CLI 版本 2

您可以透過 AWS CLI,使用 --log-type 命令選項來擷取要調用的日誌。其回應將包含 LogResult 欄位,內含該次調用的 base64 編碼日誌 (最大達 4 KB)。

範例 擷取日誌 ID

下列範例顯示如何從名稱為 my-function 的函數的 LogResult 欄位來擷取日誌 ID

aws lambda invoke --function-name my-function out --log-type Tail

您應該會看到下列輸出:

{
    "StatusCode": 200,
    "LogResult": "U1RBUlQgUmVxdWVzdElkOiA4N2QwNDRiOC1mMTU0LTExZTgtOGNkYS0yOTc0YzVlNGZiMjEgVmVyc2lvb...",
    "ExecutedVersion": "$LATEST"
}
範例 解碼日誌

在相同的命令提示中,使用 base64 公用程式來解碼日誌。下列範例顯示如何擷取 my-function 的 base64 編碼日誌。

aws lambda invoke --function-name my-function out --log-type Tail \ --query 'LogResult' --output text --cli-binary-format raw-in-base64-out | base64 --decode

如果您使用的是第 2 AWS CLI 版,則需要 cli-binary-format選項。若要讓此成為預設的設定,請執行 aws configure set cli-binary-format raw-in-base64-out。若要取得更多資訊,請參閱《AWS Command Line Interface 使用者指南第 2 版》AWS CLI 支援的全域命令列選項

您應該會看到下列輸出:

START RequestId: 57f231fb-1730-4395-85cb-4f71bd2b87b8 Version: $LATEST
"AWS_SESSION_TOKEN": "AgoJb3JpZ2luX2VjELj...", "_X_AMZN_TRACE_ID": "Root=1-5d02e5ca-f5792818b6fe8368e5b51d50;Parent=191db58857df8395;Sampled=0"",ask/lib:/opt/lib",
END RequestId: 57f231fb-1730-4395-85cb-4f71bd2b87b8
REPORT RequestId: 57f231fb-1730-4395-85cb-4f71bd2b87b8  Duration: 79.67 ms      Billed Duration: 80 ms         Memory Size: 128 MB     Max Memory Used: 73 MB

base64 公用程式可在 Linux、macOS 和 Ubuntu on Windows 上使用。macOS 使用者可能需要使用 base64 -D

範例 get-logs.sh 指令碼

在相同的命令提示中,使用下列指令碼下載最後五個日誌事件。該指令碼使用 sed 以從輸出檔案移除引述,並休眠 15 秒以使日誌可供使用。輸出包括來自 Lambda 的回應以及來自 get-log-events 命令的輸出。

複製下列程式碼範例的內容,並將您的 Lambda 專案目錄儲存為 get-logs.sh

如果您使用的是第 2 AWS CLI 版,則需要 cli-binary-format選項。若要讓此成為預設的設定,請執行 aws configure set cli-binary-format raw-in-base64-out。若要取得更多資訊,請參閱《AWS Command Line Interface 使用者指南第 2 版》AWS CLI 支援的全域命令列選項

#!/bin/bash aws lambda invoke --function-name my-function --cli-binary-format raw-in-base64-out --payload '{"key": "value"}' out sed -i'' -e 's/"//g' out sleep 15 aws logs get-log-events --log-group-name /aws/lambda/my-function --log-stream-name stream1 --limit 5
範例 macOS 和 Linux (僅限)

在相同的命令提示中,macOS 和 Linux 使用者可能需要執行下列命令,以確保指令碼可執行。

chmod -R 755 get-logs.sh
範例 擷取最後五個記錄事件

在相同的命令提示中,執行下列指令碼以取得最後五個日誌事件。

./get-logs.sh

您應該會看到下列輸出:

{ "StatusCode": 200, "ExecutedVersion": "$LATEST" } { "events": [ { "timestamp": 1559763003171, "message": "START RequestId: 4ce9340a-b765-490f-ad8a-02ab3415e2bf Version: $LATEST\n", "ingestionTime": 1559763003309 }, { "timestamp": 1559763003173, "message": "2019-06-05T19:30:03.173Z\t4ce9340a-b765-490f-ad8a-02ab3415e2bf\tINFO\tENVIRONMENT VARIABLES\r{\r \"AWS_LAMBDA_FUNCTION_VERSION\": \"$LATEST\",\r ...", "ingestionTime": 1559763018353 }, { "timestamp": 1559763003173, "message": "2019-06-05T19:30:03.173Z\t4ce9340a-b765-490f-ad8a-02ab3415e2bf\tINFO\tEVENT\r{\r \"key\": \"value\"\r}\n", "ingestionTime": 1559763018353 }, { "timestamp": 1559763003218, "message": "END RequestId: 4ce9340a-b765-490f-ad8a-02ab3415e2bf\n", "ingestionTime": 1559763018353 }, { "timestamp": 1559763003218, "message": "REPORT RequestId: 4ce9340a-b765-490f-ad8a-02ab3415e2bf\tDuration: 26.73 ms\tBilled Duration: 27 ms \tMemory Size: 128 MB\tMax Memory Used: 75 MB\t\n", "ingestionTime": 1559763018353 } ], "nextForwardToken": "f/34783877304859518393868359594929986069206639495374241795", "nextBackwardToken": "b/34783877303811383369537420289090800615709599058929582080" }

刪除日誌

當您刪除函數時,不會自動刪除日誌群組。若要避免無限期地儲存日誌,請刪除日誌群組,或設定保留期間,系統會在該時間之後自動刪除日誌。

下一個主題:

追蹤

上一個主題:

Context
隱私權網站條款Cookie 偏好設定
© 2025, Amazon Web Services, Inc.或其附屬公司。保留所有權利。