使用 CloudWatch 應用程式洞察來監控您的 AWS SAM 無伺服器應用 - AWS Serverless Application Model

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

使用 CloudWatch 應用程式洞察來監控您的 AWS SAM 無伺服器應用

Amazon CloudWatch 應用程式深入解析可協助您監控應用程式中的 AWS 資源,以協助識別潛在問題。它可以分析 AWS 資源數據以查找問題跡象,並構建自動化儀表板以將其視覺化。您可以設定應用 CloudWatch 程式深入解析,以搭配 AWS Serverless Application Model (AWS SAM) 應用程式使用。若要進一步了解 CloudWatch 應用程式洞察,請參閱 Amazon CloudWatch 使用者指南中的 Amazon CloudWatch 應用程式深入解析。

設定 CloudWatch 應用程式見解 AWS SAM

透過 AWS SAM 命令列介面 (AWS SAMCLI) 或透過 AWS SAM 範本,為您的 AWS SAM 應用程式設 CloudWatch 定應用程式深入解析。

通過配置 AWS SAMCLI

使用初始化應用程式時sam init,請透過互動式流 CloudWatch 程或使用--application-insights選項啟動應用程式深入解析。

若要透過 AWS SAMCLI互動式流 CloudWatch 程啟用應用程式見解,請在出現提示y時輸入

Would you like to enable monitoring using CloudWatch Application Insights?
For more info, please view https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cloudwatch-application-insights.html [y/N]:

若要使用--application-insights選項啟 CloudWatch 用應用程式深入解析,請執行下列動作。

sam init --application-insights

若要瞭解有關使用sam init指令的更多資訊,請參閱sam init

透過 AWS SAM 範本設定

透過在 AWS SAM 範本中定義AWS::ResourceGroups::GroupAWS::ApplicationInsights::Application資源來啟動 CloudWatch 應用程式深入解析。

AWSTemplateFormatVersion: '2010-09-09' Transform: AWS::Serverless-2016-10-31 ... Resources: ApplicationResourceGroup: Type: AWS::ResourceGroups::Group Properties: Name: Fn::Join: - '' - - ApplicationInsights-SAM- - Ref: AWS::StackName ResourceQuery: Type: CLOUDFORMATION_STACK_1_0 ApplicationInsightsMonitoring: Type: AWS::ApplicationInsights::Application Properties: ResourceGroupName: Fn::Join: - '' - - ApplicationInsights-SAM- - Ref: AWS::StackName AutoConfigurationEnabled: 'true' DependsOn: ApplicationResourceGroup
  • AWS::ResourceGroups::Group— 建立群組來組織您的 AWS 資源,以便一次管理和自動化大量資源上的工作。您可以在此建立資源群組,以與應用 CloudWatch 程式深入解析搭配使用。如需此資源類型的詳細資訊,請參閱《AWS CloudFormation 使用指南》AWS::ResourceGroups::Group中的〈〉。

  • AWS::ApplicationInsights::Application— 設定資源群組的 CloudWatch 應用程式深入解析。如需此資源類型的詳細資訊,請參閱《AWS CloudFormation 使用指南》AWS::ApplicationInsights::Application中的〈〉。

這兩種資源都會 AWS CloudFormation 在應用程式部署時自動傳遞至。您可以使用 AWS SAM 範本中的 AWS CloudFormation 語法進一步設定 CloudWatch 應用程式深入解析。如需詳細資訊,請參閱 Amazon 使用 CloudWatch 者指南中的使用 AWS CloudFormation 範本

使用指sam init --application-insights令時,這兩個資源都會自動在 AWS SAM 範本中產生。下面是一個生成的模板的例子。

AWSTemplateFormatVersion: '2010-09-09' Transform: AWS::Serverless-2016-10-31 Description: > sam-app-test Sample SAM Template for sam-app-test # More info about Globals: https://github.com/awslabs/serverless-application-model/blob/master/docs/globals.rst Globals: Function: Timeout: 3 MemorySize: 128 Resources: HelloWorldFunction: Type: AWS::Serverless::Function # More info about Function Resource: https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessfunction Properties: CodeUri: hello_world/ Handler: app.lambda_handler Runtime: python3.9 Architectures: - x86_64 Events: HelloWorld: Type: Api # More info about API Event Source: https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#api Properties: Path: /hello Method: get ApplicationResourceGroup: Type: AWS::ResourceGroups::Group Properties: Name: Fn::Join: - '' - - ApplicationInsights-SAM- - Ref: AWS::StackName ResourceQuery: Type: CLOUDFORMATION_STACK_1_0 ApplicationInsightsMonitoring: Type: AWS::ApplicationInsights::Application Properties: ResourceGroupName: Fn::Join: - '' - - ApplicationInsights-SAM- - Ref: AWS::StackName AutoConfigurationEnabled: 'true' DependsOn: ApplicationResourceGroup Outputs: # ServerlessRestApi is an implicit API created out of Events key under Serverless::Function # Find out more about other implicit resources you can reference within SAM # https://github.com/awslabs/serverless-application-model/blob/master/docs/internals/generated_resources.rst#api HelloWorldApi: Description: API Gateway endpoint URL for Prod stage for Hello World function Value: !Sub "https://${ServerlessRestApi}.execute-api.${AWS::Region}.amazonaws.com/Prod/hello/" HelloWorldFunction: Description: Hello World Lambda Function ARN Value: !GetAtt HelloWorldFunction.Arn HelloWorldFunctionIamRole: Description: Implicit IAM Role created for Hello World function Value: !GetAtt HelloWorldFunctionRole.Arn

後續步驟

設定 CloudWatch 應用程式深入解析之後,可用sam build來建置您的應用程sam deploy式和部署應用程式。所有 CloudWatch 應用程式見解支援的資源都會設定進行監視。

  • 如需支援資源的清單,請參閱 Amazon CloudWatch 使用者指南中的支援日誌和指

  • 若要了解如何存取 CloudWatch 應用程式洞見,請參閱 Amazon CloudWatch 使用者指南中的存取 CloudWatch 應用程式深入解析。