Нет метрик на основе имени API для шлюза AWS HTTP API

#amazon-web-services #aws-api-gateway #amazon-cloudwatch

Вопрос:

У меня есть функция AWS lambda, созданная с помощью AWS SAM. Он использует AWS::Serverless::HttpApi . Мне нужно отслеживать показатели шлюза API, такие как 4xx, 5xx, задержка и т.д. Когда я захожу CloudWatch -> Metrics -> All metrics -> By Api Name , я вижу только показатели для шлюза API, работающего по протоколу REST. Я могу получать показатели на основе протокола HTTP только через ApiId. На экране ниже By Api Name и By Stage показывает мне только показатели для API REST, остальные 4 вкладки дадут мне только API HTTP.

Показатели AWS CloudWatch для APIGateway

Есть ли способ создать такое сопоставление, чтобы я мог просматривать свои показатели на основе имени шлюза API? Иметь его по идентификатору не очень удобно.

Шаблон AWS SAM:

 AWSTemplateFormatVersion: '2010-09-09'
Transform: AWS::Serverless-2016-10-31

Parameters:
  SecurityGroupIds:
    Type: CommaDelimitedList
  SubnetIds:
    Type: CommaDelimitedList
  Region:
    Type: String

Resources:
  FooFunction:
    Type: AWS::Serverless::Function
    Properties:
      CodeUri: api
      Handler: run_lambda.lambda_handler
      Runtime: python3.8
      Tracing: Active
      VpcConfig:
        SecurityGroupIds: !Ref SecurityGroupIds
        SubnetIds: !Ref SubnetIds
      Policies:
      - Statement:
        - Sid: SES
          Effect: Allow
          Action:
          - ses:Send*
          Resource: !Sub "arn:aws:ses:${Region}:${AWS::AccountId}:identity/*"
      Events:
        SendEmail:
          Type: HttpApi
          Properties:
            ApiId:
              Ref: FooAPI
            Path: /foo/bar
            Method: POST

  FooApiLogs:
    Type: AWS::Logs::LogGroup
    Properties:
      RetentionInDays: 5

  FooAPI:
    Type: AWS::Serverless::HttpApi
    Properties:
      CorsConfiguration:
        AllowOrigins:
          - "*"
        AllowMethods:
          - GET
          - POST
        AllowHeaders:
          - authorization
          - content-type
      AccessLogSettings:
        DestinationArn: !GetAtt FooApiLogs.Arn
        Format: |
          { "requestId": "$context.requestId", "ip": "$context.identity.sourceIp", "requestTime": "$context.requestTime", "httpMethod": "$context.httpMethod", "routeKey": "$context.routeKey", "status": "$context.status", "authorizerPrincipalId": "$context.authorizer.principalId", "authorizerError": "$context.authorizer.error", "integrationError": "$context.integration.error", "integrationErrorMessage": "$context.integrationErrorMessage", "authorizerPayload": "$context.authorizer.payload" }