api.tf 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. resource "aws_apigatewayv2_api" "gateway" {
  2. name = "game_server_api"
  3. protocol_type = "HTTP"
  4. tags = local.tags
  5. }
  6. resource "aws_apigatewayv2_authorizer" "auth" {
  7. api_id = aws_apigatewayv2_api.gateway.id
  8. authorizer_type = "JWT"
  9. identity_sources = ["$request.header.Authorization"]
  10. name = "cognito-authorizer"
  11. jwt_configuration {
  12. audience = [aws_cognito_user_pool_client.client.id]
  13. issuer = "https://${aws_cognito_user_pool.pool.endpoint}"
  14. }
  15. }
  16. resource "aws_apigatewayv2_stage" "test" {
  17. api_id = aws_apigatewayv2_api.gateway.id
  18. name = "test"
  19. auto_deploy = true
  20. default_route_settings {
  21. #logging_level = "INFO"
  22. detailed_metrics_enabled = true
  23. throttling_burst_limit = 100
  24. throttling_rate_limit = 100
  25. }
  26. access_log_settings {
  27. destination_arn = aws_cloudwatch_log_group.test.arn
  28. format = "{ \"requestId\":\"$context.requestId\", \"extendedRequestId\":\"$context.extendedRequestId\", \"ip\": \"$context.identity.sourceIp\", \"caller\":\"$context.identity.caller\", \"user\":\"$context.identity.user\", \"requestTime\":\"$context.requestTime\", \"httpMethod\":\"$context.httpMethod\", \"resourcePath\":\"$context.resourcePath\", \"status\":\"$context.status\", \"protocol\":\"$context.protocol\", \"responseLength\":\"$context.responseLength\" }"
  29. }
  30. }
  31. resource "aws_api_gateway_account" "logging" {
  32. cloudwatch_role_arn = aws_iam_role.cloudwatch.arn
  33. }
  34. resource "aws_cloudwatch_log_group" "test" {
  35. name = "/aws/apigateway/game_server/test"
  36. tags = local.tags
  37. }