如何通过Java SDK为AWS API Gateway设置自定义访问日志记录配置?

时间:2018-12-03 22:08:13

标签: amazon-web-services aws-api-gateway aws-java-sdk

我想通过aws java sdk设置AWS API Gateway Rest Api Stage日志记录设置(请参见下面的屏幕截图)。现在,我通过CreateDeploymentRequest创建部署,该部署未公开任何此类配置。关于CreateStageRequest也可以这样说。 UpdateStageRequest似乎提供了一种更新阶段配置的通用方法,但这是否允许设置访问日志/错误日志设置,如果可以的话,我应该使用哪些路径进行设置?

logging settings

UPD:

阅读aws cli帮助(aws apigateway update-stage help,请参阅下文)后,我可以使用以下路径更新CloudWatch设置:

  • /*/*/logging/loglevel的日志级别
  • /*/*/logging/dataTrace启用日志记录完整的请求/响应数据
  • /*/*/metrics/enabled启用“详细CloudWatch指标”

如何启用自定义访问日志?

UPDATE-STAGE()                                                  UPDATE-STAGE()



NAME
       update-stage -

DESCRIPTION
       Changes information about a  Stage resource.

       See also: AWS API Documentation

       See 'aws help' for descriptions of global parameters.

SYNOPSIS
            update-stage
          --rest-api-id <value>
          --stage-name <value>
          [--patch-operations <value>]
          [--cli-input-json <value>]
          [--generate-cli-skeleton <value>]

OPTIONS
       --rest-api-id (string)
          [Required] The string identifier of the associated  RestApi .

       --stage-name (string)
          [Required]  The  name  of  the  Stage resource to change information
          about.

       --patch-operations (list)
          A list of update operations to be applied to the specified  resource
          and in the order specified in this list.

       Shorthand Syntax:

          op=string,path=string,value=string,from=string ...

       JSON Syntax:

          [
            {
              "op": "add"|"remove"|"replace"|"move"|"copy"|"test",
              "path": "string",
              "value": "string",
              "from": "string"
            }
            ...
          ]

       --cli-input-json  (string) Performs service operation based on the JSON
       string provided. The JSON string follows the format provided by  --gen-
       erate-cli-skeleton.  If  other  arguments  are  provided on the command
       line, the CLI values will override the JSON-provided values. It is  not
       possible to pass arbitrary binary values using a JSON-provided value as
       the string will be taken literally.

       --generate-cli-skeleton (string) Prints a  JSON  skeleton  to  standard
       output without sending an API request. If provided with no value or the
       value input, prints a sample input JSON that can be used as an argument
       for  --cli-input-json.  If provided with the value output, it validates
       the command inputs and returns a sample output JSON for that command.

       See 'aws help' for descriptions of global parameters.

EXAMPLES
       To override the stage settings and disable full  request/response  log-
       ging for a specific resource and method in an API's stage

       Command:

          aws apigateway update-stage --rest-api-id 1234123412 --stage-name 'dev' --patch-operations op=replace,path=/~1resourceName/GET/logging/dataTrace,value=false

       To enable full request/response logging for all resources/methods in an
       API's stage

       Command:

          aws apigateway update-stage --rest-api-id 1234123412 --stage-name 'dev' --patch-operations op=replace,path=/*/*/logging/dataTrace,value=true

OUTPUT
       deploymentId -> (string)
          The identifier of the  Deployment that the stage points to.

       clientCertificateId -> (string)
          The identifier of a client certificate for an API stage.

       stageName -> (string)
          The name of the stage is the  first  path  segment  in  the  Uniform
          Resource Identifier (URI) of a call to API Gateway.

       description -> (string)
          The stage's description.

       cacheClusterEnabled -> (boolean)
          Specifies whether a cache cluster is enabled for the stage.

       cacheClusterSize -> (string)
          The size of the cache cluster for the stage, if enabled.

       cacheClusterStatus -> (string)
          The status of the cache cluster for the stage, if enabled.

       methodSettings -> (map)
          A  map  that defines the method settings for a  Stage resource. Keys
          (designated as /{method_setting_key below) are method paths  defined
          as  {resource_path}/{http_method} for an individual method override,
          or /\*/\* for overriding all methods in the stage.

          key -> (string)

          value -> (structure)
              Specifies the method setting properties.

              metricsEnabled -> (boolean)
                 Specifies whether Amazon CloudWatch metrics are  enabled  for
                 this method. The PATCH path for this setting is /{method_set-
                 ting_key}/metrics/enabled , and the value is a Boolean.

              loggingLevel -> (string)
                 Specifies the logging level for this  method,  which  affects
                 the  log  entries pushed to Amazon CloudWatch Logs. The PATCH
                 path   for   this   setting   is   /{method_setting_key}/log-
                 ging/loglevel  ,  and  the available levels are OFF , ERROR ,
                 and INFO .

              dataTraceEnabled -> (boolean)
                 Specifies whether data trace  logging  is  enabled  for  this
                 method, which affects the log entries pushed to Amazon Cloud-
                 Watch Logs. The PATCH path for this setting is  /{method_set-
                 ting_key}/logging/dataTrace , and the value is a Boolean.

              throttlingBurstLimit -> (integer)
                 Specifies the throttling burst limit. The PATCH path for this
                 setting is /{method_setting_key}/throttling/burstLimit ,  and
                 the value is an integer.

              throttlingRateLimit -> (double)
                 Specifies  the throttling rate limit. The PATCH path for this
                 setting is /{method_setting_key}/throttling/rateLimit  ,  and
                 the value is a double.

              cachingEnabled -> (boolean)
                 Specifies whether responses should be cached and returned for
                 requests. A cache cluster must be enabled on  the  stage  for
                 responses  to  be  cached. The PATCH path for this setting is
                 /{method_setting_key}/caching/enabled , and the  value  is  a
                 Boolean.

              cacheTtlInSeconds -> (integer)
                 Specifies  the  time  to  live  (TTL), in seconds, for cached
                 responses. The higher the TTL, the longer the  response  will
                 be  cached.  The PATCH path for this setting is /{method_set-
                 ting_key}/caching/ttlInSeconds , and the value is an integer.

              cacheDataEncrypted -> (boolean)
                 Specifies  whether  the  cached  responses are encrypted. The
                 PATCH   path    for    this    setting    is    /{method_set-
                 ting_key}/caching/dataEncrypted , and the value is a Boolean.

              requireAuthorizationForCacheControl -> (boolean)
                 Specifies whether  authorization  is  required  for  a  cache
                 invalidation  request.  The  PATCH  path  for this setting is
                 /{method_setting_key}/caching/requireAuthorizationFor-
                 CacheControl , and the value is a Boolean.

              unauthorizedCacheControlHeaderStrategy -> (string)
                 Specifies  how  to  handle  unauthorized  requests  for cache
                 invalidation.  The   PATCH   path   for   this   setting   is
                 /{method_setting_key}/caching/unauthorizedCacheControlHeader-
                 Strategy , and the available values are FAIL_WITH_403 ,  SUC-
                 CEED_WITH_RESPONSE_HEADER , SUCCEED_WITHOUT_RESPONSE_HEADER .

       variables -> (map)
          A map that defines the stage variables for a  Stage resource.  Vari-
          able  names can have alphanumeric and underscore characters, and the
          values must match [A-Za-z0-9-._~:/?#=,]+ .

          key -> (string)

          value -> (string)

       documentationVersion -> (string)
          The version of the associated API documentation.

       accessLogSettings -> (structure)
          Settings for logging access in this stage.

          format -> (string)
              A single line format of the access logs of data, as specified by
              selected  $context  variables . The format must include at least
              $context.requestId .

          destinationArn -> (string)
              The ARN of the CloudWatch Logs log group to receive access logs.

       canarySettings -> (structure)
          Settings for the canary deployment in this stage.

          percentTraffic -> (double)
              The  percent (0-100) of traffic diverted to a canary deployment.

          deploymentId -> (string)
              The ID of the canary deployment.

          stageVariableOverrides -> (map)
              Stage variables overridden  for  a  canary  release  deployment,
              including  new  stage  variables introduced in the canary. These
              stage  variables  are  represented  as  a  string-to-string  map
              between stage variable names and their values.

              key -> (string)

              value -> (string)

          useStageCache -> (boolean)
              A  Boolean  flag  to indicate whether the canary deployment uses
              the stage cache or not.

       tracingEnabled -> (boolean)
          Specifies whether active tracing  with  X-ray  is  enabled  for  the
          Stage .

       webAclArn -> (string)
          The ARN of the WebAcl associated with the  Stage .

       tags -> (map)
          The  collection of tags. Each tag element is associated with a given
          resource.

          key -> (string)

          value -> (string)

       createdDate -> (timestamp)
          The timestamp when the stage was created.

       lastUpdatedDate -> (timestamp)
          The timestamp when the stage last updated.



                                                                UPDATE-STAGE()

1 个答案:

答案 0 :(得分:1)

您可以通过在更新阶段进行设置来配置自定义访问日志记录

accessLogSettings->(结构)           此阶段用于记录访问权限的设置。

      format -> (string)
          A single line format of the access logs of data, as specified by
          selected  $context  variables . The format must include at least
          $context.requestId .

      destinationArn -> (string)
          The ARN of the CloudWatch Logs log group to receive access logs.