

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# AWS::Serverless::HttpApi
<a name="sam-resource-httpapi"></a>

Amazon API Gateway HTTP API를 생성함으로써 귀하는 REST API보다 지연 시간이 짧고 비용이 저렴한 RESTful API를 생성할 수 있습니다. 자세한 내용을 알아보려면 *API Gateway 개발자 안내서*의 [HTTP API로 작업하기](https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api.html)를 참조하세요.

 CloudFormation 후크 또는 IAM 정책을 사용하여 API Gateway 리소스에 대한 액세스를 제어하는 권한 부여자가 연결되어 있는지 확인하는 것이 좋습니다.

 CloudFormation 후크 사용에 대한 자세한 내용은 *CloudFormation CLI 사용 설명서*의 [후크 등록](https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/registering-hook-python.html) 및 [apigw-enforce-authorizer](https://github.com/aws-cloudformation/aws-cloudformation-samples/tree/main/hooks/python-hooks/apigw-enforce-authorizer/) GitHub 리포지토리를 참조하세요.

IAM 정책 사용에 대한 자세한 내용은 [API 게이트웨이 개발자 가이드의](https://docs.aws.amazon.com/apigateway/latest/developerguide/security_iam_id-based-policy-examples.html#security_iam_id-based-policy-examples-require-authorization) *API 경로에 권한 부여 필요를* 참조하세요.

**참고**  
에 배포하면가 AWS SAM 리소스를 CloudFormation 리소스로 AWS CloudFormation AWS SAM 변환합니다. 자세한 내용은 [에 대해 생성된 CloudFormation 리소스 AWS SAM](sam-specification-generated-resources.md) 단원을 참조하십시오.

## 구문
<a name="sam-resource-httpapi-syntax"></a>

 AWS Serverless Application Model (AWS SAM) 템플릿에서이 개체를 선언하려면 다음 구문을 사용합니다.

### YAML
<a name="sam-resource-httpapi-syntax.yaml"></a>

```
Type: AWS::Serverless::HttpApi
Properties:
  [AccessLogSettings](#sam-httpapi-accesslogsettings): [AccessLogSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-accesslogsettings)
  [Auth](#sam-httpapi-auth): HttpApiAuth
  [CorsConfiguration](#sam-httpapi-corsconfiguration): String | HttpApiCorsConfiguration
  [DefaultRouteSettings](#sam-httpapi-defaultroutesettings): [RouteSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-routesettings)
  [DefinitionBody](#sam-httpapi-definitionbody): JSON
  [DefinitionUri](#sam-httpapi-definitionuri): String | HttpApiDefinition
  [Description](#sam-httpapi-description): String
  [DisableExecuteApiEndpoint](#sam-httpapi-disableexecuteapiendpoint): Boolean
  [Domain](#sam-httpapi-domain): HttpApiDomainConfiguration
  [FailOnWarnings](#sam-httpapi-failonwarnings): Boolean
  Name: String
  PropagateTags: Boolean
  [RouteSettings](#sam-httpapi-routesettings): [RouteSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-routesettings)
  [StageName](#sam-httpapi-stagename): String
  [StageVariables](#sam-httpapi-stagevariables): [Json](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-stagevariables)
  [Tags](#sam-httpapi-tags): Map
```

## 속성
<a name="sam-resource-httpapi-properties"></a>

 `AccessLogSettings`   <a name="sam-httpapi-accesslogsettings"></a>
단계의 로깅 액세스에 대한 설정입니다.  
*유형*: [AccessLogSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-accesslogsettings)  
*필수 항목 여부*: 아니요  
*CloudFormation 호환성*:이 속성은 `AWS::ApiGatewayV2::Stage` 리소스의 `[AccessLogSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-accesslogsettings)` 속성으로 직접 전달됩니다.

 `Auth`   <a name="sam-httpapi-auth"></a>
API Gateway HTTP API에 대한 액세스를 제어하기 위한 권한 부여를 구성합니다.  
자세한 내용은 *API Gateway 개발자 가이드*에서 [JWT 권한 부여자를 사용하여 HTTP API에 대한 액세스 제어](https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-jwt-authorizer.html)를 참조하십시오.  
*[유형: HTTP/APIAuth](sam-property-httpapi-httpapiauth.md)*  
*필수 항목 여부*: 아니요  
*CloudFormation 호환성*:이 속성은에 고유 AWS SAM 하며 CloudFormation 동등한 속성이 없습니다.

 `CorsConfiguration`   <a name="sam-httpapi-corsconfiguration"></a>
귀하의 모든 API Gateway HTTP API를 위하여 교차 오리진 리소스 공유(CORS)를 관리합니다. 허용할 도메인을 문자열로 지정하거나 `HttpApiCorsConfiguration` 객체를 지정합니다. CORS AWS SAM 는 OpenAPI 정의를 수정해야 하므로 CORS는 `DefinitionBody` 속성이 지정된 경우에만 작동합니다.  
자세한 내용은 *API Gateway 개발자 안내서*의 [HTTP API에 대한 CORS 구성](https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-cors.html)을 참조하세요.  
`CorsConfiguration`가 OpenAPI 정의와 속성 수준에서 모두 설정된 경우는 두 구성 소스를 우선하는 속성과 AWS SAM 병합합니다. 이 속성을 `true`로 설정하면 모든 오리진이 허용됩니다.
*유형*: 문자열 \$1[HttpApiCorsConfiguration](sam-property-httpapi-httpapicorsconfiguration.md)  
*필수 항목 여부*: 아니요  
*CloudFormation 호환성*:이 속성은에 고유 AWS SAM 하며 CloudFormation 동등한 속성이 없습니다.

 `DefaultRouteSettings`   <a name="sam-httpapi-defaultroutesettings"></a>
이 HTTP API에 대한 기본 라우팅 설정입니다. 이 설정은 특정 경로에 대해 `RouteSettings` 속성에서 재정의하지 않는 한 모든 경로에 적용됩니다.  
*유형*: [RouteSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-routesettings)  
*필수 항목 여부*: 아니요  
*CloudFormation 호환성*:이 속성은 `AWS::ApiGatewayV2::Stage` 리소스의 `[RouteSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-routesettings)` 속성으로 직접 전달됩니다.

 `DefinitionBody`   <a name="sam-httpapi-definitionbody"></a>
HTTP API를 설명하는 OpenAPI 정의. `DefinitionUri` 또는를 지정하지 않으면 템플릿 구성에 `DefinitionBody` 따라가 자동으로 `DefinitionBody` AWS SAM 생성됩니다.  
*유형*: JSON  
*필수 항목 여부*: 아니요  
*CloudFormation 호환성*:이 속성은 `AWS::ApiGatewayV2::Api` 리소스의 `[Body](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-api.html#cfn-apigatewayv2-api-body)` 속성과 유사합니다. 특정 속성이 제공된 경우가 전달`DefinitionBody`되기 전에에 콘텐츠를 AWS SAM 삽입하거나 수정할 수 있습니다 CloudFormation. 속성들에는 `Auth` 및 해당 `AWS::Serverless::Function` 속성을 위한 HttpApi 유형의 `EventSource`가 포함됩니다.

 `DefinitionUri`   <a name="sam-httpapi-definitionuri"></a>
HTTP API를 정의할 수 있는 OpenAPI 정의의 Amazon Simple Storage Service(S3) URI이거나 로컬 파일 경로이거나 위치 객체입니다. 이 속성이 참조하는 Amazon S3 객체는 유효한 OpenAPI 정의 파일이어야 합니다. `DefinitionUri` 또는를 지정하지 않으면 템플릿 구성에 `DefinitionBody` 따라가 자동으로 `DefinitionBody` AWS SAM 생성됩니다.  
귀하가 로컬 파일 경로를 제공하는 경우 템플릿은 `sam deploy` 또는 `sam package` 명령이 포함된 워크플로를 거쳐야 정의가 제대로 변환됩니다.  
귀하가 `DefinitionUri`로 참조하는 외부 OpenAPI 정의 파일에서는 내장 함수가 지원되지 않습니다. OpenAPI 정의를 템플릿으로 들여오려면 해당 `DefinitionBody` 속성을 [Include 변환](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/create-reusable-transform-function-snippets-and-add-to-your-template-with-aws-include-transform.html)과 함께 사용합니다.  
*유형*[: 문자열 \$1 HttpApiDefinition](sam-property-httpapi-httpapidefinition.md)  
*필수 항목 여부*: 아니요  
*CloudFormation 호환성*:이 속성은 `AWS::ApiGatewayV2::Api` 리소스의 `[BodyS3Location](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-api.html#cfn-apigatewayv2-api-bodys3location)` 속성과 유사합니다. 중첩된 Amazon S3 속성은 다르게 지정됩니다.

 `Description`   <a name="sam-httpapi-description"></a>
HTTP API 리소스 그룹에 대한 설명입니다.  
를 지정하면 `Description` AWS SAM 가 `description` 필드를 설정하여 HTTP API 리소스의 OpenApi 정의를 수정합니다. 다음 시나리오에서는 오류가 발생합니다.  
+ `DefinitionBody` 속성은 Open API 정의의 `description` 필드 세트로 지정됩니다. 그러면 해결 AWS SAM 되지 않는 `description` 필드 충돌이 발생합니다.
+ `DefinitionUri` 속성이 지정됩니다.는 Amazon S3에서 검색된 Open API 정의를 수정 AWS SAM 하지 않습니다.
*유형*: 문자열  
*필수 항목 여부*: 아니요  
*CloudFormation 호환성*:이 속성은에 고유 AWS SAM 하며 CloudFormation 동등한 속성이 없습니다.

 `DisableExecuteApiEndpoint`   <a name="sam-httpapi-disableexecuteapiendpoint"></a>
클라이언트가 기본 `execute-api` 엔드포인트`https://{api_id}.execute-api.{region}.amazonaws.com`를 사용하여 HTTP API를 호출할 수 있는지 여부를 지정합니다. 기본적으로 클라이언트는 기본 엔드포인트로 API를 호출할 수 있습니다. 클라이언트가 단지 사용자 지정 도메인 이름을 사용하여 API를 호출하도록 요구하려면 기본 엔드포인트를 비활성화합니다.  
이 속성을 사용하려면 `DefinitionUri` 속성 대신 `DefinitionBody` 속성을 지정하거나 OpenAPI 정의에서 `x-amazon-apigateway-endpoint-configuration`을 `disableExecuteApiEndpoint`로 정의해야 합니다.  
*유형*: 부울  
*필수 항목 여부*: 아니요  
*CloudFormation 호환성*:이 속성은 `AWS::ApiGatewayV2::Api` 리소스의 `[ DisableExecuteApiEndpoint](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-api.html#cfn-apigatewayv2-api-disableexecuteapiendpoint)` 속성과 유사합니다. 이것은 `[ x-amazon-apigateway-endpoint-configuration](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-swagger-extensions-endpoint-configuration.html)` 확장의 `disableExecuteApiEndpoint` 속성으로 직접 전달되며, 이것은 `AWS::ApiGatewayV2::Api` 리소스의 ` [ Body](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-api.html#cfn-apigatewayv2-api-body)` 속성에 추가됩니다.

 `Domain`   <a name="sam-httpapi-domain"></a>
이 API Gateway HTTP API의 사용자 지정 도메인을 구성합니다.  
*유형*: [HttpApiDomainConfiguration](sam-property-httpapi-httpapidomainconfiguration.md)  
*필수 항목 여부*: 아니요  
*CloudFormation 호환성*:이 속성은에 고유 AWS SAM 하며 CloudFormation 동등한 속성이 없습니다.

 `FailOnWarnings`   <a name="sam-httpapi-failonwarnings"></a>
경고가 발생할 때 HTTP API 생성을 롤백할 것인지(`true`), 아니면 롤백하지 않을 것인지(`false`) 지정합니다. 기본값은 `false`입니다.  
*유형*: 부울  
*필수 항목 여부*: 아니요  
*CloudFormation 호환성*:이 속성은 `AWS::ApiGatewayV2::Api` 리소스의 `[FailOnWarnings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-api.html#cfn-apigatewayv2-api-failonwarnings)` 속성으로 직접 전달됩니다.

`Name`  <a name="sam-httpapi-name"></a>
HTTP API 리소스의 이름입니다.  
를 지정하면 `Name` AWS SAM 가 `title` 필드를 설정하여 HTTP API 리소스의 OpenAPI 정의를 수정합니다. 다음 시나리오에서는 오류가 발생합니다.  
+ `DefinitionBody` 속성은 Open API 정의의 `title` 필드 세트로 지정됩니다. 그러면 해결 AWS SAM 되지 않는 `title` 필드가 충돌합니다.
+ `DefinitionUri` 속성이 지정됩니다.는 Amazon S3에서 검색된 Open API 정의를 수정 AWS SAM 하지 않습니다.
*유형*: 문자열  
*필수 항목 여부*: 아니요  
*CloudFormation 호환성*:이 속성은에 고유 AWS SAM 하며 CloudFormation 동등한 속성이 없습니다.

`PropagateTags`  <a name="sam-httpapi-propagatetags"></a>
`Tags`속성의 태그를 [AWS::Serverless::HttpApi](sam-specification-generated-resources-httpapi.md) 생성된 리소스로 전달할지 여부를 지정합니다. 귀하의 생성된 리소스에 태그를 전파하도록 `True`을 지정합니다.  
*유형*: 부울  
*필수 항목 여부*: 아니요  
*기본값*: `False`  
*CloudFormation 호환성*:이 속성은에 고유 AWS SAM 하며 CloudFormation 동등한 속성이 없습니다.

 `RouteSettings`   <a name="sam-httpapi-routesettings"></a>
이 HTTP API의 경로별 경로 설정입니다. 자세한 내용을 알아보려면 *API Gateway 개발자 안내서*의 [HTTP API에 대한 루트 작업](https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-develop-routes.html)을 참조하세요.  
*유형*: [RouteSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-routesettings)  
*필수 항목 여부*: 아니요  
*CloudFormation 호환성*:이 속성은 `AWS::ApiGatewayV2::Stage` 리소스의 `[RouteSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-routesettings)` 속성으로 직접 전달됩니다.

 `StageName`   <a name="sam-httpapi-stagename"></a>
API 단계의 이름. 이름을 지정하지 않으면 API Gateway의 `$default` 단계를 AWS SAM 사용합니다.  
*유형*: 문자열  
*필수 항목 여부*: 아니요  
*기본값*: \$1default  
*CloudFormation 호환성*:이 속성은 `AWS::ApiGatewayV2::Stage` 리소스의 `[StageName](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-stagename)` 속성으로 직접 전달됩니다.

 `StageVariables`   <a name="sam-httpapi-stagevariables"></a>
단계 변수를 정의하는 맵입니다. 변수 이름은 영숫자와 밑줄 문자를 사용할 수 있습니다. 값은 [A-Za-z0-9-.\$1\$1:/?\$1&=,]\$1와 일치해야 합니다.  
*유형*: [Json](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-stagevariables)  
*필수 항목 여부*: 아니요  
*CloudFormation 호환성*:이 속성은 `AWS::ApiGatewayV2::Stage` 리소스의 `[StageVariables](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-stagevariables)` 속성으로 직접 전달됩니다.

 `Tags`   <a name="sam-httpapi-tags"></a>
이 API Gateway 단계에 추가할 태그를 지정하는 맵(문자열에 문자열)입니다. 키는 길이가 1\$1128자인 유니코드 문자이며 `aws:`로 시작할 수 없습니다. 유니코드 문자 세트, 숫자, 공백, `_`, `.`, `/`, `=`, `+`, `-` 등의 문자를 무엇이든 사용할 수 있습니다. 값은 길이가 1\$1256자인 유니코드 문자입니다.  
*유형*: 맵  
*필수 항목 여부*: 아니요  
*CloudFormation 호환성*:이 속성은에 고유 AWS SAM 하며 CloudFormation 동등한 속성이 없습니다.  
*추가 참고* 사항: `Tags` 속성은 OpenAPI 정의를 수정해야 AWS SAM 하므로 `DefinitionBody` 속성이 지정된 경우에만 태그가 추가되고 `DefinitionUri` 속성이 지정된 경우에는 태그가 추가되지 않습니다.는 태그를 AWS SAM 자동으로 추가합니다`httpapi:createdBy:SAM`. `AWS::ApiGatewayV2::Stage`리소스와 `AWS::ApiGatewayV2::DomainName`리소스(`DomainName`이 지정된 경우)에도 태그가 추가됩니다.

## 반환 값
<a name="sam-resource-httpapi-return-values"></a>

### Ref
<a name="sam-resource-httpapi-return-values-ref"></a>

이 리소스의 논리적 ID를 내장 `Ref` 함수에 전달하면 `Ref`가 기저의 `AWS::ApiGatewayV2::Api` 리소스의 API ID를 반환합니다(예:`a1bcdef2gh`)

`Ref` 함수의 사용에 대한 자세한 내용은 *AWS CloudFormation 사용자 안내서*의 [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-ref.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-ref.html) 항목을 참조하십시오.

## 예제
<a name="sam-resource-httpapi--examples"></a>

### 단순 HTTP API
<a name="sam-resource-httpapi--examples--simple-httpapi"></a>

다음 예는 Lambda 함수가 지원하는 HTTP API 엔드포인트를 설정하는 데 필요한 최소값을 보여줍니다. 이 예제에서는가 AWS SAM 생성하는 기본 HTTP API를 사용합니다.

#### YAML
<a name="sam-resource-httpapi--examples--simple-httpapi--yaml"></a>

```
AWSTemplateFormatVersion: '2010-09-09'
Description: AWS SAM template with a simple API definition
Resources:
  ApiFunction:
    Type: AWS::Serverless::Function
    Properties:
      Events:
        ApiEvent:
          Type: HttpApi
      Handler: index.handler
      InlineCode: |
        def handler(event, context):
            return {'body': 'Hello World!', 'statusCode': 200}
      Runtime: python3.7
Transform: AWS::Serverless-2016-10-31
```

### 권한 부여가 있는 HttpApi
<a name="sam-resource-httpapi--examples--httpapi-with-auth"></a>

다음 예에서는 HTTP API 엔드포인트에서 권한 부여를 설정하는 방법을 보여드립니다.

#### YAML
<a name="sam-resource-httpapi--examples--httpapi-with-auth--yaml"></a>

```
Properties:
  FailOnWarnings: true
  Auth:
    DefaultAuthorizer: OAuth2
    Authorizers:
      OAuth2:
        AuthorizationScopes:
          - scope4
        JwtConfiguration:
          issuer: "https://www.example.com/v1/connect/oauth2"
          audience:
            - MyApi
        IdentitySource: "$request.querystring.param"
```

### OpenAPI 정의를 포함하는 HttpApi
<a name="sam-resource-httpapi--examples--httpapi-with-openapi-definition"></a>

다음 예에서는 OpenAPI 정의를 템플릿에 추가하는 방법을 보여드립니다.

는이 HTTP API를 참조하는 HttpApi 이벤트에 대해 누락된 Lambda 통합을 AWS SAM 채웁니다. AWS SAM 또한는 HttpApi 이벤트가 참조하는 누락된 경로도 추가합니다.

#### YAML
<a name="sam-resource-httpapi--examples--httpapi-with-openapi-definition--yaml"></a>

```
Properties:
  FailOnWarnings: true
  DefinitionBody:
    info:
      version: '1.0'
      title:
        Ref: AWS::StackName
    paths:
      "/":
        get:
          security:
          - OpenIdAuth:
            - scope1
            - scope2
          responses: {}
    openapi: 3.0.1
    securitySchemes:
      OpenIdAuth:
        type: openIdConnect
        x-amazon-apigateway-authorizer:
          identitySource: "$request.querystring.param"
          type: jwt
          jwtConfiguration:
            audience:
            - MyApi
            issuer: https://www.example.com/v1/connect/oidc
          openIdConnectUrl: https://www.example.com/v1/connect/oidc/.well-known/openid-configuration
```

### 구성 설정을 포함하는 HttpApi
<a name="sam-resource-httpapi--examples--httpapi-with-configuration-settings"></a>

다음 예에서는 템플릿에 HTTP API 및 단계 구성을 추가하는 방법을 보여드립니다.

#### YAML
<a name="sam-resource-httpapi--examples--httpapi-with-configuration-settings--yaml"></a>

```
AWSTemplateFormatVersion: '2010-09-09'
Transform: AWS::Serverless-2016-10-31
Parameters:
  StageName:
    Type: String
    Default: Prod
    
Resources:
  HttpApiFunction:
    Type: AWS::Serverless::Function
    Properties:
      InlineCode: |
          def handler(event, context):
              import json
              return {
                  "statusCode": 200,
                  "body": json.dumps(event),
              }
      Handler: index.handler
      Runtime: python3.7
      Events:
        ExplicitApi: # warning: creates a public endpoint
          Type: HttpApi
          Properties:
            ApiId: !Ref HttpApi
            Method: GET
            Path: /path
            TimeoutInMillis: 15000
            PayloadFormatVersion: "2.0"
            RouteSettings:
              ThrottlingBurstLimit: 600

  HttpApi:
    Type: AWS::Serverless::HttpApi
    Properties:
      StageName: !Ref StageName
      Tags:
        Tag: Value
      AccessLogSettings:
        DestinationArn: !GetAtt AccessLogs.Arn
        Format: $context.requestId
      DefaultRouteSettings:
        ThrottlingBurstLimit: 200
      RouteSettings:
        "GET /path":
          ThrottlingBurstLimit: 500 # overridden in HttpApi Event
      StageVariables:
        StageVar: Value
      FailOnWarnings: true

  AccessLogs:
    Type: AWS::Logs::LogGroup

Outputs:
  HttpApiUrl:
    Description: URL of your API endpoint
    Value:
      Fn::Sub: 'https://${HttpApi}.execute-api.${AWS::Region}.${AWS::URLSuffix}/${StageName}/'
  HttpApiId:
    Description: Api id of HttpApi
    Value:
      Ref: HttpApi
```

# HttpApiAuth
<a name="sam-property-httpapi-httpapiauth"></a>

권한 부여를 구성하여 Amazon API Gateway HTTP API에 대한 액세스를 제어합니다.

HTTP API에 대한 액세스 구성에 대한 자세한 내용은 *API Gateway 개발자 안내서*의 [API Gateway의 HTTP API에 대한 액세스 제어 및 관리](https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-access-control.html) 섹션을 참조하세요.

## 구문
<a name="sam-property-httpapi-httpapiauth-syntax"></a>

 AWS Serverless Application Model (AWS SAM) 템플릿에서이 개체를 선언하려면 다음 구문을 사용합니다.

### YAML
<a name="sam-property-httpapi-httpapiauth-syntax.yaml"></a>

```
  [Authorizers](#sam-httpapi-httpapiauth-authorizers): OAuth2Authorizer | LambdaAuthorizer
  [DefaultAuthorizer](#sam-httpapi-httpapiauth-defaultauthorizer): String
  [EnableIamAuthorizer](#sam-httpapi-httpapiauth-enableiamauthorizer): Boolean
```

## 속성
<a name="sam-property-httpapi-httpapiauth-properties"></a>

 `Authorizers`   <a name="sam-httpapi-httpapiauth-authorizers"></a>
API Gateway API에 대한 액세스를 제어하는 데 사용되는 권한 부여자.  
*유형*: [OAuth2Authorizer](sam-property-httpapi-oauth2authorizer.md) \$1 [LambdaAuthorizer](sam-property-httpapi-lambdaauthorizer.md)  
*필수 항목 여부*: 아니요  
*기본값*: 없음  
*CloudFormation 호환성*:이 속성은에 고유 AWS SAM 하며 CloudFormation 동등한 속성이 없습니다.  
*추가 참고* 사항:OpenAPI 정의에 권한 부여자를 AWS SAM 추가합니다.

 `DefaultAuthorizer`   <a name="sam-httpapi-httpapiauth-defaultauthorizer"></a>
API Gateway API에 대한 API 호출을 승인하는 데 사용할 기본 권한 부여자를 지정합니다. `EnableIamAuthorizer`가 `true`로 설정된 경우 `AWS_IAM`을 기본 권한 부여자로 지정할 수 있습니다. 그렇지 않은 경우 `Authorizers`에서 정의한 권한 부여자를 지정합니다.  
*유형*: 문자열  
*필수 항목 여부*: 아니요  
*기본값*: 없음  
*CloudFormation 호환성*:이 속성은에 고유 AWS SAM 하며 CloudFormation 동등한 속성이 없습니다.

 `EnableIamAuthorizer`   <a name="sam-httpapi-httpapiauth-enableiamauthorizer"></a>
API 경로에 IAM 인증을 사용할지 여부를 지정합니다.  
*유형*: 부울  
*필수 항목 여부*: 아니요  
*CloudFormation 호환성*:이 속성은에 고유 AWS SAM 하며 CloudFormation 동등한 속성이 없습니다.

## 예제
<a name="sam-property-httpapi-httpapiauth--examples"></a>

### OAuth 2.0 권한 부여자
<a name="sam-property-httpapi-httpapiauth--examples--oauth-2.0-authorizer"></a>

OAuth 2.0 권한 부여자 예시

#### YAML
<a name="sam-property-httpapi-httpapiauth--examples--oauth-2.0-authorizer--yaml"></a>

```
Auth:
  Authorizers:
    OAuth2Authorizer:
      AuthorizationScopes:
        - scope1
        - scope2
      JwtConfiguration:
        issuer: "https://www.example.com/v1/connect/oauth2"
        audience:
          - MyApi
      IdentitySource: "$request.querystring.param"
  DefaultAuthorizer: OAuth2Authorizer
```

### IAM 권한 부여자
<a name="sam-property-httpapi-httpapiauth--examples--iam-authorizer"></a>

IAM 권한 부여자 예시

#### YAML
<a name="sam-property-httpapi-httpapiauth--examples--iam-authorizer--yaml"></a>

```
Auth:
  EnableIamAuthorizer: true
  DefaultAuthorizer: AWS_IAM
```

# LambdaAuthorizer
<a name="sam-property-httpapi-lambdaauthorizer"></a>

 AWS Lambda 함수를 사용하여 Amazon API Gateway HTTP API에 대한 액세스를 제어하도록 Lambda 권한 부여자를 구성합니다.

자세한 내용과 예제는 *API Gateway 개발자 안내서*의 [HTTP APIs에 대한 AWS Lambda 권한 부여자 작업을 참조하세요](https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-lambda-authorizer.html).

## 구문
<a name="sam-property-httpapi-lambdaauthorizer-syntax"></a>

 AWS Serverless Application Model (AWS SAM) 템플릿에서이 개체를 선언하려면 다음 구문을 사용합니다.

### YAML
<a name="sam-property-httpapi-lambdaauthorizer-syntax.yaml"></a>

```
  [AuthorizerPayloadFormatVersion](#sam-httpapi-lambdaauthorizer-authorizerpayloadformatversion): String
  EnableFunctionDefaultPermissions: Boolean
  [EnableSimpleResponses](#sam-httpapi-lambdaauthorizer-enablesimpleresponses): Boolean
  [FunctionArn](#sam-httpapi-lambdaauthorizer-functionarn): String
  [FunctionInvokeRole](#sam-httpapi-lambdaauthorizer-functioninvokerole): String
  [Identity](#sam-httpapi-lambdaauthorizer-identity): LambdaAuthorizationIdentity
```

## 속성
<a name="sam-property-httpapi-lambdaauthorizer-properties"></a>

 `AuthorizerPayloadFormatVersion`   <a name="sam-httpapi-lambdaauthorizer-authorizerpayloadformatversion"></a>
HTTP API Lambda 권한 부여자에게 전송되는 페이로드의 형식을 지정합니다. HTTP API Lambda 권한 부여자에 필요합니다.  
이는 OpenAPI 정의의 `securitySchemes` 섹션에 있는 `x-amazon-apigateway-authorizer`의 `authorizerPayloadFormatVersion` 섹션으로 전달됩니다.  
*유효한 값*: `1.0` 또는 `2.0`  
*유형*: 문자열  
*필수 항목 여부:* 예  
*CloudFormation 호환성*:이 속성은에 고유 AWS SAM 하며 CloudFormation 동등한 속성이 없습니다.

 `EnableFunctionDefaultPermissions`   <a name="sam-httpapi-lambdaauthorizer-enablefunctiondefaultpermissions"></a>
기본적으로 HTTP API 리소스에는 Lambda 권한 부여자를 호출할 수 있는 권한이 부여되지 않습니다. HTTP API 리소스와 Lambda 권한 부여자 간에 권한을 자동으로 생성하도록 이 속성을 `true`로 지정합니다.  
*유형*: 부울  
*필수 항목 여부*: 아니요  
*기본값:* `false`  
*CloudFormation 호환성*:이 속성은에 고유 AWS SAM 하며 동등한 속성이 CloudFormation 없습니다.

 `EnableSimpleResponses`   <a name="sam-httpapi-lambdaauthorizer-enablesimpleresponses"></a>
Lambda 권한 부여자가 간단한 형식으로 응답을 반환하는지 여부를 지정합니다. 기본적으로 Lambda 권한 부여자는 AWS Identity and Access Management (IAM) 정책을 반환해야 합니다. 사용하도록 설정되면 Lambda 권한 부여자가 IAM 정책 대신 부울 값을 반환할 수 있습니다.  
이는 OpenAPI 정의의 `securitySchemes` 섹션에 있는 `x-amazon-apigateway-authorizer`의 `enableSimpleResponses` 섹션으로 전달됩니다.  
*유형*: 부울  
*필수 항목 여부*: 아니요  
*CloudFormation 호환성*:이 속성은에 고유 AWS SAM 하며 CloudFormation 동등한 속성이 없습니다.

 `FunctionArn`   <a name="sam-httpapi-lambdaauthorizer-functionarn"></a>
API에 대한 인증을 제공하는 Lambda 함수의 Amazon 리소스 이름(ARN)입니다.  
이는 OpenAPI 정의의 `securitySchemes` 섹션에 있는 `x-amazon-apigateway-authorizer`의 `authorizerUri` 섹션으로 전달됩니다.  
*유형*: 문자열  
*필수 항목 여부:* 예  
*CloudFormation 호환성*:이 속성은에 고유 AWS SAM 하며 CloudFormation 동등한 속성이 없습니다.

 `FunctionInvokeRole`   <a name="sam-httpapi-lambdaauthorizer-functioninvokerole"></a>
API Gateway가 권한 부여자 함수를 호출하는 데 필요한 보안 인증 정보가 있는 IAM 역할의 ARN입니다. 함수의 리소스 기반 정책이 API Gateway `lambda:InvokeFunction` 권한을 부여하지 않는 경우, 이 파라미터를 지정합니다.  
이는 OpenAPI 정의의 `securitySchemes` 섹션에 있는 `x-amazon-apigateway-authorizer`의 `authorizerCredentials` 섹션으로 전달됩니다.  
자세한 내용은 *API Gateway 개발자 안내서*의 [Lambda 권한 부여자 만들기](https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-lambda-authorizer.html#http-api-lambda-authorizer.example-create) 섹션을 참조하세요.  
*유형*: 문자열  
*필수 항목 여부*: 아니요  
*CloudFormation 호환성*:이 속성은에 고유 AWS SAM 하며 CloudFormation 동등한 속성이 없습니다.

 `Identity`   <a name="sam-httpapi-lambdaauthorizer-identity"></a>
권한 부여자에 대한 수신 요청에 `IdentitySource`를 지정합니다.  
이는 OpenAPI 정의의 `securitySchemes` 섹션에 있는 `x-amazon-apigateway-authorizer`의 `identitySource` 섹션으로 전달됩니다.  
*유형*: [LambdaAuthorizationIdentity](sam-property-httpapi-lambdaauthorizationidentity.md)  
*필수 항목 여부*: 아니요  
*CloudFormation 호환성*:이 속성은에 고유 AWS SAM 하며 CloudFormation 동등한 속성이 없습니다.

## 예제
<a name="sam-property-httpapi-lambdaauthorizer--examples"></a>

### LambdaAuthorizer
<a name="sam-property-httpapi-lambdaauthorizer--examples--lambdaauthorizer"></a>

LambdaAuthorizer 예

#### YAML
<a name="sam-property-httpapi-lambdaauthorizer--examples--lambdaauthorizer--yaml"></a>

```
Auth:
  Authorizers:
    MyLambdaAuthorizer:
      AuthorizerPayloadFormatVersion: 2.0
      FunctionArn:
        Fn::GetAtt:
          - MyAuthFunction
          - Arn
      FunctionInvokeRole:
        Fn::GetAtt:
          - LambdaAuthInvokeRole
          - Arn
      Identity:
        Headers:
          - Authorization
```

# LambdaAuthorizationIdentity
<a name="sam-property-httpapi-lambdaauthorizationidentity"></a>

Lambda 권한 부여자에 대한 수신 요청에서 IdentitySource를 지정하는 데 속성을 사용할 수 있습니다. ID 소스에 대한 자세한 내용은 *API Gateway 개발자 안내서*의 [ID 소스](https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-lambda-authorizer.html#http-api-lambda-authorizer.identity-sources)를 참조하세요.

## 구문
<a name="sam-property-httpapi-lambdaauthorizationidentity-syntax"></a>

 AWS Serverless Application Model (AWS SAM) 템플릿에서이 개체를 선언하려면 다음 구문을 사용합니다.

### YAML
<a name="sam-property-httpapi-lambdaauthorizationidentity-syntax.yaml"></a>

```
  [Context](#sam-httpapi-lambdaauthorizationidentity-context): List
  [Headers](#sam-httpapi-lambdaauthorizationidentity-headers): List
  [QueryStrings](#sam-httpapi-lambdaauthorizationidentity-querystrings): List
  [ReauthorizeEvery](#sam-httpapi-lambdaauthorizationidentity-reauthorizeevery): Integer
  [StageVariables](#sam-httpapi-lambdaauthorizationidentity-stagevariables): List
```

## 속성
<a name="sam-property-httpapi-lambdaauthorizationidentity-properties"></a>

 `Context`   <a name="sam-httpapi-lambdaauthorizationidentity-context"></a>
지정된 컨텍스트 문자열을 `$context.contextString` 형식의 매핑 표현식 목록으로 변환합니다.  
*유형*: 목록  
*필수 항목 여부*: 아니요  
*CloudFormation 호환성*:이 속성은에 고유 AWS SAM 하며 CloudFormation 동등한 속성이 없습니다.

 `Headers`   <a name="sam-httpapi-lambdaauthorizationidentity-headers"></a>
헤더를 `$request.header.name` 형식의 매핑 표현식 목록으로 변환합니다.  
*유형*: 목록  
*필수 항목 여부*: 아니요  
*CloudFormation 호환성*:이 속성은에 고유 AWS SAM 하며 CloudFormation 동등한 속성이 없습니다.

 `QueryStrings`   <a name="sam-httpapi-lambdaauthorizationidentity-querystrings"></a>
지정된 쿼리 문자열을 `$request.querystring.queryString` 형식의 매핑 표현식 목록으로 변환합니다.  
*유형*: 목록  
*필수 항목 여부*: 아니요  
*CloudFormation 호환성*:이 속성은에 고유 AWS SAM 하며 CloudFormation 동등한 속성이 없습니다.

 `ReauthorizeEvery`   <a name="sam-httpapi-lambdaauthorizationidentity-reauthorizeevery"></a>
API Gateway가 권한 부여자 결과를 캐싱하는 기간을 지정하는 TTL(Time to Live) 기간(초)입니다. 0보다 큰 값을 지정한 경우 API Gateway에서 권한 부여자 응답을 캐싱합니다. 최대 값은 3600 또는 1시간입니다.  
*유형*: 정수  
*필수 항목 여부*: 아니요  
*CloudFormation 호환성*:이 속성은에 고유 AWS SAM 하며 CloudFormation 동등한 속성이 없습니다.

 `StageVariables`   <a name="sam-httpapi-lambdaauthorizationidentity-stagevariables"></a>
지정된 단계 변수를 `$stageVariables.stageVariable` 형식의 매핑 표현식 목록으로 변환합니다.  
*유형*: 목록  
*필수 항목 여부*: 아니요  
*CloudFormation 호환성*:이 속성은에 고유 AWS SAM 하며 CloudFormation 동등한 속성이 없습니다.

## 예제
<a name="sam-property-httpapi-lambdaauthorizationidentity--examples"></a>

### LambdaRequestIdentity
<a name="sam-property-httpapi-lambdaauthorizationidentity--examples--lambdarequestidentity"></a>

Lambda 요청 자격 증명 예제

#### YAML
<a name="sam-property-httpapi-lambdaauthorizationidentity--examples--lambdarequestidentity--yaml"></a>

```
Identity:
  QueryStrings:
    - auth
  Headers:
    - Authorization
  StageVariables:
    - VARIABLE
  Context:
    - authcontext
  ReauthorizeEvery: 100
```

# OAuth2Authorizer
<a name="sam-property-httpapi-oauth2authorizer"></a>

OAuth 2.0 권한 부여자에 대한 정의로, authorizer(JWT) 권한 부여자라고도 합니다.

자세한 내용은 *API Gateway 개발자 가이드*에서 [JWT 권한 부여자를 사용하는 HTTP API에 대한 액세스 제어](https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-jwt-authorizer.html)를 참조하십시오.

## 구문
<a name="sam-property-httpapi-oauth2authorizer-syntax"></a>

 AWS Serverless Application Model (AWS SAM) 템플릿에서이 개체를 선언하려면 다음 구문을 사용합니다.

### YAML
<a name="sam-property-httpapi-oauth2authorizer-syntax.yaml"></a>

```
  [AuthorizationScopes](#sam-httpapi-oauth2authorizer-authorizationscopes): List
  [IdentitySource](#sam-httpapi-oauth2authorizer-identitysource): String
  [JwtConfiguration](#sam-httpapi-oauth2authorizer-jwtconfiguration): Map
```

## 속성
<a name="sam-property-httpapi-oauth2authorizer-properties"></a>

 `AuthorizationScopes`   <a name="sam-httpapi-oauth2authorizer-authorizationscopes"></a>
이 권한 부여자의 권한 부여 범위 목록.  
*유형*: 목록  
*필수 항목 여부*: 아니요  
*CloudFormation 호환성*:이 속성은에 고유 AWS SAM 하며 CloudFormation 동등한 속성이 없습니다.

 `IdentitySource`   <a name="sam-httpapi-oauth2authorizer-identitysource"></a>
이 권한 부여자의 ID 소스 표현식.  
*유형*: 문자열  
*필수 항목 여부*: 아니요  
*CloudFormation 호환성*:이 속성은에 고유 AWS SAM 하며 CloudFormation 동등한 속성이 없습니다.

 `JwtConfiguration`   <a name="sam-httpapi-oauth2authorizer-jwtconfiguration"></a>
이 권한 부여자의 JWT 구성.  
이는 OpenAPI 정의의 `securitySchemes` 섹션에 있는 `x-amazon-apigateway-authorizer`의 `jwtConfiguration` 섹션으로 전달됩니다.  
속성 `issuer` `audience`는 대소문자를 구분하지 않으므로 OpenAPI에서처럼 소문자를 사용하거나 [AWS::ApiGatewayV2::Authorizer](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-authorizer-jwtconfiguration.html)에서 `Issuer` 및 `Audience`를 대문자로 사용할 수 있습니다.
*유형*: 맵  
*필수 항목 여부*: 아니요  
*CloudFormation 호환성*:이 속성은에 고유 AWS SAM 하며 CloudFormation 동등한 속성이 없습니다.

## 예제
<a name="sam-property-httpapi-oauth2authorizer--examples"></a>

### OAuth 2.0 권한 부여자
<a name="sam-property-httpapi-oauth2authorizer--examples--oauth-2.0-authorizer"></a>

OAuth 2.0 권한 부여자 예시

#### YAML
<a name="sam-property-httpapi-oauth2authorizer--examples--oauth-2.0-authorizer--yaml"></a>

```
Auth:
  Authorizers:
    OAuth2Authorizer:
      AuthorizationScopes:
        - scope1
      JwtConfiguration:
        issuer: "https://www.example.com/v1/connect/oauth2"
        audience:
          - MyApi
      IdentitySource: "$request.querystring.param"
  DefaultAuthorizer: OAuth2Authorizer
```

# HttpApiCorsConfiguration
<a name="sam-property-httpapi-httpapicorsconfiguration"></a>

HTTP API에 대한 교차 오리진 리소스 공유(CORS)을 관리합니다. 허용할 도메인을 문자열로 지정하거나 추가 Cors 구성을 사용하여 사전을 지정합니다. 참고: Cors는 OpenAPI 정의를 수정하기 위해 SAM이 필요하므로 `DefinitionBody` 속성에 정의된 인라인 OpenAPI에서만 작동합니다.

HTTP API에 대한 자세한 내용을 알아보려면 *API Gateway 개발자 안내서*의 [HTTP API](https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-cors.html)를 참조하세요.

참고: HttpApiCorsConfiguration이 OpenAPI와 속성 수준에서 모두 설정된 경우는 우선하는 속성과 AWS SAM 병합합니다.

## 구문
<a name="sam-property-httpapi-httpapicorsconfiguration-syntax"></a>

 AWS Serverless Application Model (AWS SAM) 템플릿에서이 개체를 선언하려면 다음 구문을 사용합니다.

### YAML
<a name="sam-property-httpapi-httpapicorsconfiguration-syntax.yaml"></a>

```
  [AllowCredentials](#sam-httpapi-httpapicorsconfiguration-allowcredentials): Boolean
  [AllowHeaders](#sam-httpapi-httpapicorsconfiguration-allowheaders): List
  [AllowMethods](#sam-httpapi-httpapicorsconfiguration-allowmethods): List
  [AllowOrigins](#sam-httpapi-httpapicorsconfiguration-alloworigins): List
  [ExposeHeaders](#sam-httpapi-httpapicorsconfiguration-exposeheaders): List
  [MaxAge](#sam-httpapi-httpapicorsconfiguration-maxage): Integer
```

## 속성
<a name="sam-property-httpapi-httpapicorsconfiguration-properties"></a>

 `AllowCredentials`   <a name="sam-httpapi-httpapicorsconfiguration-allowcredentials"></a>
보안 인증이 CORS 요청에 포함되는지 여부를 지정합니다.  
*유형*: 부울  
*필수 항목 여부*: 아니요  
*CloudFormation 호환성*:이 속성은에 고유 AWS SAM 하며 CloudFormation 동등한 속성이 없습니다.

 `AllowHeaders`   <a name="sam-httpapi-httpapicorsconfiguration-allowheaders"></a>
허용된 헤더의 모음을 나타냅니다.  
*유형*: 목록  
*필수 항목 여부*: 아니요  
*CloudFormation 호환성*:이 속성은에 고유 AWS SAM 하며 CloudFormation 동등한 속성이 없습니다.

 `AllowMethods`   <a name="sam-httpapi-httpapicorsconfiguration-allowmethods"></a>
허용된 HTTP 메서드의 모음을 나타냅니다.  
*유형*: 목록  
*필수 항목 여부*: 아니요  
*CloudFormation 호환성*:이 속성은에 고유 AWS SAM 하며 CloudFormation 동등한 속성이 없습니다.

 `AllowOrigins`   <a name="sam-httpapi-httpapicorsconfiguration-alloworigins"></a>
허용된 오리진의 모음을 나타냅니다.  
*유형*: 목록  
*필수 항목 여부*: 아니요  
*CloudFormation 호환성*:이 속성은에 고유 AWS SAM 하며 CloudFormation 동등한 속성이 없습니다.

 `ExposeHeaders`   <a name="sam-httpapi-httpapicorsconfiguration-exposeheaders"></a>
노출된 헤더의 모음을 나타냅니다.  
*유형*: 목록  
*필수 항목 여부*: 아니요  
*CloudFormation 호환성*:이 속성은에 고유 AWS SAM 하며 CloudFormation 동등한 속성이 없습니다.

 `MaxAge`   <a name="sam-httpapi-httpapicorsconfiguration-maxage"></a>
브라우저가 사전 요청 결과를 캐시해야 하는 시간(초)을 지정합니다.  
*유형*: 정수  
*필수 항목 여부*: 아니요  
*CloudFormation 호환성*:이 속성은에 고유 AWS SAM 하며 CloudFormation 동등한 속성이 없습니다.

## 예제
<a name="sam-property-httpapi-httpapicorsconfiguration--examples"></a>

### HttpApiCorsConfiguration
<a name="sam-property-httpapi-httpapicorsconfiguration--examples--httpapicorsconfiguration"></a>

HTTP API Cors 구성 예제.

#### YAML
<a name="sam-property-httpapi-httpapicorsconfiguration--examples--httpapicorsconfiguration--yaml"></a>

```
CorsConfiguration:
  AllowOrigins:
    - "https://example.com"
  AllowHeaders:
    - x-apigateway-header
  AllowMethods:
    - GET
  MaxAge: 600
  AllowCredentials: true
```

# HttpApiDefinition
<a name="sam-property-httpapi-httpapidefinition"></a>

API를 정의하는 OpenAPI 문서.

## 구문
<a name="sam-property-httpapi-httpapidefinition-syntax"></a>

 AWS Serverless Application Model (AWS SAM) 템플릿에서이 개체를 선언하려면 다음 구문을 사용합니다.

### YAML
<a name="sam-property-httpapi-httpapidefinition-syntax.yaml"></a>

```
  [Bucket](#sam-httpapi-httpapidefinition-bucket): String
  [Key](#sam-httpapi-httpapidefinition-key): String
  [Version](#sam-httpapi-httpapidefinition-version): String
```

## 속성
<a name="sam-property-httpapi-httpapidefinition-properties"></a>

 `Bucket`   <a name="sam-httpapi-httpapidefinition-bucket"></a>
OpenAPI 파일이 저장되는 Amazon S3 버킷의 이름입니다.  
*유형*: 문자열  
*필수 항목 여부:* 예  
*CloudFormation 호환성*:이 속성은 `AWS::ApiGatewayV2::Api` `BodyS3Location` 데이터 유형의 `[Bucket](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-api-bodys3location.html#cfn-apigatewayv2-api-bodys3location-bucket)` 속성으로 직접 전달됩니다.

 `Key`   <a name="sam-httpapi-httpapidefinition-key"></a>
OpenAPI 파일의 Amazon S3 키.  
*유형*: 문자열  
*필수 항목 여부:* 예  
*CloudFormation 호환성*:이 속성은 `AWS::ApiGatewayV2::Api` `BodyS3Location` 데이터 유형의 `[Key](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-api-bodys3location.html#cfn-apigatewayv2-api-bodys3location-key)` 속성으로 직접 전달됩니다.

 `Version`   <a name="sam-httpapi-httpapidefinition-version"></a>
버전이 지정된 객체의 경우 OpenAPI 파일의 버전.  
*유형*: 문자열  
*필수 항목 여부*: 아니요  
*CloudFormation 호환성*:이 속성은 `AWS::ApiGatewayV2::Api` `BodyS3Location` 데이터 유형의 `[Version](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-api-bodys3location.html#cfn-apigatewayv2-api-bodys3location-version)` 속성으로 직접 전달됩니다.

## 예제
<a name="sam-property-httpapi-httpapidefinition--examples"></a>

### Uri 정의 예제
<a name="sam-property-httpapi-httpapidefinition--examples--definition-uri-example"></a>

API 정의 예

#### YAML
<a name="sam-property-httpapi-httpapidefinition--examples--definition-uri-example--yaml"></a>

```
DefinitionUri:
  Bucket: sam-s3-demo-bucket-name
  Key: mykey-name
  Version: 121212
```

# HttpApiDomainConfiguration
<a name="sam-property-httpapi-httpapidomainconfiguration"></a>

API의 사용자 지정 도메인을 구성합니다.

## 구문
<a name="sam-property-httpapi-httpapidomainconfiguration-syntax"></a>

 AWS Serverless Application Model (AWS SAM) 템플릿에서이 개체를 선언하려면 다음 구문을 사용합니다.

### YAML
<a name="sam-property-httpapi-httpapidomainconfiguration-syntax.yaml"></a>

```
  [BasePath](#sam-httpapi-httpapidomainconfiguration-basepath): List
  [CertificateArn](#sam-httpapi-httpapidomainconfiguration-certificatearn): String
  [DomainName](#sam-httpapi-httpapidomainconfiguration-domainname): String
  [EndpointConfiguration](#sam-httpapi-httpapidomainconfiguration-endpointconfiguration): String
  [MutualTlsAuthentication](#sam-httpapi-httpapidomainconfiguration-mutualtlsauthentication): [MutualTlsAuthentication](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-domainname.html#cfn-apigatewayv2-domainname-mutualtlsauthentication)
  [OwnershipVerificationCertificateArn](#sam-httpapi-httpapidomainconfiguration-ownershipverificationcertificatearn): String
  [Route53](#sam-httpapi-httpapidomainconfiguration-route53): Route53Configuration
  [SecurityPolicy](#sam-httpapi-httpapidomainconfiguration-securitypolicy): String
```

## 속성
<a name="sam-property-httpapi-httpapidomainconfiguration-properties"></a>

 `BasePath`   <a name="sam-httpapi-httpapidomainconfiguration-basepath"></a>
Amazon API Gateway 도메인 이름을 사용하여 구성할 basepath 목록입니다.  
*유형*: 목록  
*필수 항목 여부*: 아니요  
*기본값*: /  
*CloudFormation 호환성*:이 속성은 `AWS::ApiGatewayV2::ApiMapping` 리소스의 `[ApiMappingKey](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-apimapping.html#cfn-apigatewayv2-apimapping-apimappingkey)` 속성과 유사합니다.는이 속성에 지정된 값당 하나씩 여러 `AWS::ApiGatewayV2::ApiMapping` 리소스를 AWS SAM 생성합니다.

 `CertificateArn`   <a name="sam-httpapi-httpapidomainconfiguration-certificatearn"></a>
이 도메인 이름의 엔드포인트에 대한 AWS 관리형 인증서의 Amazon 리소스 이름(ARN)입니다.는 지원되는 유일한 소스 AWS Certificate Manager 입니다.  
*유형*: 문자열  
*필수 항목 여부:* 예  
*CloudFormation 호환성*:이 속성은 `AWS::ApiGateway2::DomainName DomainNameConfiguration` 리소스의 `[CertificateArn](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-domainname-domainnameconfiguration.html#cfn-apigatewayv2-domainname-domainnameconfiguration-certificatearn)` 속성으로 직접 전달됩니다.

 `DomainName`   <a name="sam-httpapi-httpapidomainconfiguration-domainname"></a>
Amazon API Gateway의 API에 대한 사용자 지정 도메인 이름입니다. 대문자는 지원되지 않습니다.  
AWS SAM 는이 속성이 설정되면 `AWS::ApiGatewayV2::DomainName` 리소스를 생성합니다. 이 시나리오에 대한 자세한 내용은 [DomainName 속성이 지정되었습니다.](sam-specification-generated-resources-httpapi.md#sam-specification-generated-resources-httpapi-domain-name) 섹션을 참조하세요. 생성된 CloudFormation 리소스에 대한 자세한 내용은 섹션을 참조하세요[에 대해 생성된 CloudFormation 리소스 AWS SAM](sam-specification-generated-resources.md).  
*유형*: 문자열  
*필수 항목 여부:* 예  
*CloudFormation 호환성*:이 속성은 `AWS::ApiGateway2::DomainName` 리소스의 `[DomainName](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-domainname.html#cfn-apigatewayv2-domainname-domainname)` 속성으로 직접 전달됩니다.

 `EndpointConfiguration`   <a name="sam-httpapi-httpapidomainconfiguration-endpointconfiguration"></a>
사용자 지정 도메인에 매핑할 API Gateway 엔드포인트의 유형을 정의합니다. 이 속성의 값은 `CertificateArn` 속성이 매핑되는 방법을 결정합니다 CloudFormation.  
HTTP API의 유일한 유효 값은 `REGIONAL`입니다.  
*유형*: 문자열  
*필수 항목 여부*: 아니요  
*기본값*: `REGIONAL`  
*CloudFormation 호환성*:이 속성은에 고유 AWS SAM 하며 CloudFormation 동등한 속성이 없습니다.

 `MutualTlsAuthentication`   <a name="sam-httpapi-httpapidomainconfiguration-mutualtlsauthentication"></a>
사용자 지정 도메인 이름에 대한 상호 전송 계층 보안(TLS) 인증 구성입니다.  
*유형*: [MutualTlsAuthentication](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-domainname.html#cfn-apigatewayv2-domainname-mutualtlsauthentication)  
*필수 항목 여부*: 아니요  
*CloudFormation 호환성*:이 속성은 `AWS::ApiGatewayV2::DomainName` 리소스의 `[MutualTlsAuthentication](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-domainname.html#cfn-apigatewayv2-domainname-mutualtlsauthentication)` 속성으로 직접 전달됩니다.

 `OwnershipVerificationCertificateArn`   <a name="sam-httpapi-httpapidomainconfiguration-ownershipverificationcertificatearn"></a>
사용자 지정 도메인의 소유권을 확인하기 위해 ACM에서 발급한 공인 인증서의 ARN입니다. 상호 TLS를 구성하고 `CertificateArn`에 대해 ACM 가져오기 또는 사설 CA 인증서 ARN을 지정하는 경우에만 필요합니다.  
*유형*: 문자열  
*필수 항목 여부*: 아니요  
*CloudFormation 호환성*:이 속성은 `AWS::ApiGatewayV2::DomainName` `DomainNameConfiguration` 데이터 유형의 `[OwnershipVerificationCertificateArn](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-domainname-domainnameconfiguration.html#cfn-apigatewayv2-domainname-domainnameconfiguration-ownershipverificationcertificatearn)` 속성으로 직접 전달됩니다.

 `Route53`   <a name="sam-httpapi-httpapidomainconfiguration-route53"></a>
Amazon Route 53 구성을 정의합니다.  
*유형*: [Route53Configuration](sam-property-httpapi-route53configuration.md)  
*필수 항목 여부*: 아니요  
*CloudFormation 호환성*:이 속성은에 고유 AWS SAM 하며 CloudFormation 동등한 속성이 없습니다.

 `SecurityPolicy`   <a name="sam-httpapi-httpapidomainconfiguration-securitypolicy"></a>
이 도메인 이름에 대한 보안 정책의 TLS(전송 계층 보안) 버전입니다.  
HTTP API의 유일한 유효 값은 `TLS_1_2`입니다.  
*유형*: 문자열  
*필수 항목 여부*: 아니요  
*CloudFormation 호환성*:이 속성은 `AWS::ApiGatewayV2::DomainName` `DomainNameConfiguration` 데이터 유형의 `[SecurityPolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-domainname-domainnameconfiguration.html#cfn-apigatewayv2-domainname-domainnameconfiguration-securitypolicy)` 속성으로 직접 전달됩니다.

## 예제
<a name="sam-property-httpapi-httpapidomainconfiguration--examples"></a>

### DomainName
<a name="sam-property-httpapi-httpapidomainconfiguration--examples--domainname"></a>

DomainName 예제

#### YAML
<a name="sam-property-httpapi-httpapidomainconfiguration--examples--domainname--yaml"></a>

```
Domain:
  DomainName: www.example.com
  CertificateArn: arn-example
  EndpointConfiguration: REGIONAL
  Route53:
    HostedZoneId: Z1PA6795UKMFR9
  BasePath:
    - foo
    - bar
```

# Route53Configuration
<a name="sam-property-httpapi-route53configuration"></a>

API에 대한 Route53 레코드 세트를 구성합니다.

## 구문
<a name="sam-property-httpapi-route53configuration-syntax"></a>

 AWS Serverless Application Model (AWS SAM) 템플릿에서이 개체를 선언하려면 다음 구문을 사용합니다.

### YAML
<a name="sam-property-httpapi-route53configuration-syntax.yaml"></a>

```
  [DistributionDomainName](#sam-httpapi-route53configuration-distributiondomainname): String
  [EvaluateTargetHealth](#sam-httpapi-route53configuration-evaluatetargethealth): Boolean
  [HostedZoneId](#sam-httpapi-route53configuration-hostedzoneid): String
  [HostedZoneName](#sam-httpapi-route53configuration-hostedzonename): String
  [IpV6](#sam-httpapi-route53configuration-ipv6): Boolean
  Region: String
  SetIdentifier: String
```

## 속성
<a name="sam-property-httpapi-route53configuration-properties"></a>

 `DistributionDomainName`   <a name="sam-httpapi-route53configuration-distributiondomainname"></a>
API 사용자 지정 도메인 이름의 사용자 지정 배포를 구성합니다.  
*유형*: 문자열  
*필수 항목 여부*: 아니요  
*기본값*: API Gateway 배포를 사용합니다.  
*CloudFormation 호환성*:이 속성은 `AWS::Route53::RecordSetGroup AliasTarget` 리소스의 `[DNSName](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-aliastarget-1.html#cfn-route53-aliastarget-dnshostname)` 속성으로 직접 전달됩니다.  
*추가 참고 사항*: [CloudFront 배포](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudfront-distribution.html)의 도메인 이름입니다.

 `EvaluateTargetHealth`   <a name="sam-httpapi-route53configuration-evaluatetargethealth"></a>
EvaluateTargetHealth가 true인 경우 별칭 레코드는 Elastic Load Balancing 로드 밸런서 또는 호스팅 영역의 다른 레코드와 같이 참조된 AWS 리소스의 상태를 상속합니다.  
*유형*: 부울  
*필수 항목 여부*: 아니요  
*CloudFormation 호환성*:이 속성은 `AWS::Route53::RecordSetGroup AliasTarget` 리소스의 `[EvaluateTargetHealth](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-aliastarget.html#cfn-route53-aliastarget-evaluatetargethealth)` 속성으로 직접 전달됩니다.  
*추가 참고 사항*: 별칭 대상이 CloudFront 배포인 경우, EvaluateTargetHealth를 true로 설정할 수 없습니다.

 `HostedZoneId`   <a name="sam-httpapi-route53configuration-hostedzoneid"></a>
기록을 생성하려는 호스팅 영역의 ID입니다.  
`HostedZoneName` 또는 `HostedZoneId` 중 하나를 지정하며 둘 다 지정하지 않습니다. 동일한 도메인 이름을 가진 호스팅 영역이 여러 개 있는 경우 `HostedZoneId`를 사용하여 호스팅 영역을 지정해야 합니다.  
*유형*: 문자열  
*필수 항목 여부*: 아니요  
*CloudFormation 호환성*:이 속성은 `AWS::Route53::RecordSetGroup RecordSet` 리소스의 `[HostedZoneId](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-recordset-1.html#cfn-route53-recordset-hostedzoneid)` 속성으로 직접 전달됩니다.

 `HostedZoneName`   <a name="sam-httpapi-route53configuration-hostedzonename"></a>
기록을 생성하려는 호스팅 영역의 이름입니다. 후행 점(예: `www.example.com.`)을 `HostedZoneName`의 일부로 포함해야 합니다.  
`HostedZoneName` 또는 `HostedZoneId` 중 하나를 지정하며 둘 다 지정하지 않습니다. 동일한 도메인 이름을 가진 호스팅 영역이 여러 개 있는 경우 `HostedZoneId`를 사용하여 호스팅 영역을 지정해야 합니다.  
*유형*: 문자열  
*필수 항목 여부*: 아니요  
*CloudFormation 호환성*:이 속성은 `AWS::Route53::RecordSetGroup RecordSet` 리소스의 `[HostedZoneName](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-recordset-1.html#cfn-route53-recordset-hostedzonename)` 속성으로 직접 전달됩니다.

 `IpV6`   <a name="sam-httpapi-route53configuration-ipv6"></a>
이 속성이 설정되면는 `AWS::Route53::RecordSet` 리소스를 AWS SAM 생성하고 제공된 HostedZone에 `AAAA` 대해 [유형을](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-recordset.html#cfn-route53-recordset-type) 로 설정합니다.  
*유형*: 부울  
*필수 항목 여부*: 아니요  
*CloudFormation 호환성*:이 속성은에 고유 AWS SAM 하며 CloudFormation 동등한 속성이 없습니다.

`Region`  <a name="sam-httpapi-route53configuration-region"></a>
*지연 시간 기반 리소스 기록 세트만 해당:* 이 리소스 기록 세트가 참조하는 리소스를 생성한 Amazon EC2 리전입니다. 리소스는 일반적으로 EC2 인스턴스 또는 ELB 로드 밸런서와 같은 AWS 리소스이며 레코드 유형에 따라 IP 주소 또는 DNS 도메인 이름으로 참조됩니다.  
Amazon Route 53에서 지연 리소스 기록 세트에 대해 생성된 도메인 이름 및 유형에 대한 DNS 쿼리를 수신한 경우 Route 53은 최종 사용자와 연결된 Amazon EC2 리전 간에 지연 시간이 가장 짧은 지연 리소스 기록 세트를 선택합니다. 그 다음에 Route 53은 선택된 리소스 기록 세트와 연결된 값을 반환합니다.  
다음 사항에 유의하세요.  
+ 지연 리소스 기록 세트별로 `ResourceRecord`를 1개씩만 지정할 수 있습니다.
+ 각 Amazon EC2 리전에 지연 시간 리소스 기록 세트를 1개씩만 생성할 수 있습니다.
+ 모든 Amazon EC2 리전에 지연 시간 리소스 기록 세트를 생성할 필요는 없습니다. Route 53은 지연 시간 리소스 기록 세트를 생성할 리전 중에서 지연 시간이 가장 좋은 리전을 선택합니다.
+ `Name` 및 `Type` 요소 값이 지연 시간 리소스 기록 세트와 같은 비-지연 시간 리소스 기록 세트를 생성할 수 없습니다.
*유형*: 문자열  
*필수 항목 여부*: 아니요  
*CloudFormation 호환성*:이 속성은 `AWS::Route53::RecordSetGroup` `RecordSet` 데이터 유형의 `[ Region](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-recordset-1.html#cfn-route53-recordset-region)` 속성으로 직접 전달됩니다.

`SetIdentifier`  <a name="sam-httpapi-route53configuration-setidentifier"></a>
*단순하지 않은 라우팅 정책이 있는 리소스 기록 세트:* 이름과 유형의 조합이 동일한 여러 리소스 기록 세트(이름이 acme.example.com이고 유형이 A인 여러 가중치 기반 리소스 기록 세트) 사이에서 차별화되는 식별자입니다. 이름과 유형이 동일한 리소스 기록 세트 그룹에서 각 리소스 기록 세트의 `SetIdentifier` 값은 고유해야 합니다.  
라우팅 정책에 대한 자세한 내용을 알아보려면 *Amazon Route 53 개발자 안내서*의 [라우팅 정책 선택](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/routing-policy.html)을 참조하세요.  
*유형*: 문자열  
*필수 항목 여부*: 아니요  
*CloudFormation 호환성*:이 속성은 `AWS::Route53::RecordSetGroup` `RecordSet` 데이터 유형의 `[ SetIdentifier](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-recordset-1.html#cfn-route53-recordset-setidentifier)` 속성으로 직접 전달됩니다.

## 예제
<a name="sam-property-httpapi-route53configuration--examples"></a>

### Route 53 구성 예제
<a name="sam-property-httpapi-route53configuration--examples--route-53-configuration-example"></a>

이 예제에서는 Route 53를 구성하는 방법을 보여줍니다.

#### YAML
<a name="sam-property-httpapi-route53configuration--examples--route-53-configuration-example--yaml"></a>

```
Domain:
  DomainName: www.example.com
  CertificateArn: arn-example
  EndpointConfiguration: EDGE
  Route53:
    HostedZoneId: Z1PA6795UKMFR9
    EvaluateTargetHealth: true
    DistributionDomainName: xyz
```