如何通过 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 设置:
/*/*/logging/loglevel
日志级别
/*/*/logging/dataTrace
启用日志记录完整 request/response 数据
/*/*/metrics/enabled
启用 "Detailed CloudWatch Metrics"
如何启用自定义访问日志?
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.
我想通过 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 设置:
/*/*/logging/loglevel
日志级别/*/*/logging/dataTrace
启用日志记录完整 request/response 数据/*/*/metrics/enabled
启用 "Detailed CloudWatch Metrics"
如何启用自定义访问日志?
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.