如何通过 java sdk 为 AWS API 网关设置自定义访问日志记录配置?

How to set custom access logging configuration for AWS API Gateway via java sdk?

我想通过 aws java sdk 设置 AWS API Gateway Rest Api 阶段日志记录设置(见下面的截图)。现在我通过 CreateDeploymentRequest, which doesn't expose any such configuration. The same can be said about CreateStageRequest. UpdateStageRequest 创建部署似乎提供了一种更新阶段配置的通用方法,但这是否允许设置访问日志/错误日志设置,如果可以,我使用什么路径来设置这些?

更新:

阅读 aws cli 帮助后(aws apigateway update-stage help,见下文)我发现我可以使用以下路径更新 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()

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

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.