

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# HttpApi
<a name="sam-property-function-httpapi"></a>

描述带有类型的事件源的对象 HttpApi。

如果 API 上存在指定路径和方法的 OpenApi 定义，SAM 将为您添加 Lambda 集成和安全部分（如果适用）。

如果 API 上没有指定路径和方法的 OpenApi 定义，SAM 将为您创建此定义。

## 语法
<a name="sam-property-function-httpapi-syntax"></a>

要在 AWS Serverless Application Model (AWS SAM) 模板中声明此实体，请使用以下语法。

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

```
  [ApiId](#sam-function-httpapi-apiid): {{String}}
  [Auth](#sam-function-httpapi-auth): {{HttpApiFunctionAuth}}
  [Method](#sam-function-httpapi-method): {{String}}
  [Path](#sam-function-httpapi-path): {{String}}
  [PayloadFormatVersion](#sam-function-httpapi-payloadformatversion): {{String}}
  [RouteSettings](#sam-function-httpapi-routesettings): {{[RouteSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-routesettings)}}
  [TimeoutInMillis](#sam-function-httpapi-timeoutinmillis): {{Integer}}
```

## Properties
<a name="sam-property-function-httpapi-properties"></a>

 `ApiId`   <a name="sam-function-httpapi-apiid"></a>
此模板中定义的 [AWS::Serverless::HttpApi](sam-resource-httpapi.md) 资源的标识符。  
如果未定义，则`ServerlessHttpApi`使用生成的 OpenApi 文档创建默认[AWS::Serverless::HttpApi](sam-resource-httpapi.md)资源，该文档包含由此模板中定义的 Api 事件定义的所有路径和方法的并集，这些路径和方法未指定`ApiId`。  
这不能引用其他模板中定义的 [AWS::Serverless::HttpApi](sam-resource-httpapi.md) 资源。  
*类型*：字符串  
*必需*：否  
*CloudFormation 兼容性*：此属性是独有的 AWS SAM ，没有 CloudFormation 等效属性。

 `Auth`   <a name="sam-function-httpapi-auth"></a>
此特定 Api\+路径\+方法的身份验证配置。  
在未指定 `DefaultAuthorizer` 的情况下，对于覆盖 API 的 `DefaultAuthorizer` 或在各个路径中设置身份验证配置很有用。  
*类型*：[HttpApiFunctionAuth](sam-property-function-httpapifunctionauth.md)  
*必需*：否  
*CloudFormation 兼容性*：此属性是独有的 AWS SAM ，没有 CloudFormation 等效属性。

 `Method`   <a name="sam-function-httpapi-method"></a>
调用此函数的 HTTP 方法。  
如果未指定 `Path` 和 `Method`，SAM 会创建默认 API 路径，用于将未映射到其他端点的任何请求路由到此 Lambda 函数。每个 API 只能存在其中一个默认路径。  
*类型*：字符串  
*必需*：否  
*CloudFormation 兼容性*：此属性是独有的 AWS SAM ，没有 CloudFormation 等效属性。

 `Path`   <a name="sam-function-httpapi-path"></a>
调用此函数的 URI 路径。必须以 `/` 开头。  
如果未指定 `Path` 和 `Method`，SAM 会创建默认 API 路径，用于将未映射到其他端点的任何请求路由到此 Lambda 函数。每个 API 只能存在其中一个默认路径。  
*类型*：字符串  
*必需*：否  
*CloudFormation 兼容性*：此属性是独有的 AWS SAM ，没有 CloudFormation 等效属性。

 `PayloadFormatVersion`   <a name="sam-function-httpapi-payloadformatversion"></a>
指定发送到集成的有效负载的格式。  
注意： PayloadFormatVersion 需要 SAM 修改您的 OpenAPI 定义，因此它仅适用于属性中 OpenApi 定义的内联定义。`DefinitionBody`  
*类型*：字符串  
*必需*：否  
*默认值*：2.0  
*CloudFormation 兼容性*：此属性是独有的 AWS SAM ，没有 CloudFormation 等效属性。

 `RouteSettings`   <a name="sam-function-httpapi-routesettings"></a>
此 HTTP API 的每条路径的路由设置。有关路由设置的更多信息，请参阅 *API Gateway 开发者指南[AWS::ApiGatewayV2::Stage RouteSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-stage-routesettings.html)*中的。  
注意：如果 RouteSettings 在 HttpApi 资源和事件源中同时指定，则将其 AWS SAM 合并，优先使用事件源属性。  
*类型*：[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)`属性。

 `TimeoutInMillis`   <a name="sam-function-httpapi-timeoutinmillis"></a>
自定义超时值，范围在 50 到 29,000 毫秒之间。  
注意： TimeoutInMillis 需要 SAM 修改您的 OpenAPI 定义，因此它仅适用于属性中 OpenApi 定义的内联定义。`DefinitionBody`  
*类型*：整数  
*必需*：否  
*默认值*：5000  
*CloudFormation 兼容性*：此属性是独有的 AWS SAM ，没有 CloudFormation 等效属性。

## 示例
<a name="sam-property-function-httpapi--examples"></a>

### 默认 HttpApi 事件
<a name="sam-property-function-httpapi--examples--default-httpapi-event"></a>

HttpApi 使用默认路径的事件。此 API 中所有未映射的路径和方法都将路由到此端点。

#### YAML
<a name="sam-property-function-httpapi--examples--default-httpapi-event--yaml"></a>

```
Events:
  HttpApiEvent:
    Type: HttpApi
```

### HttpApi
<a name="sam-property-function-httpapi--examples--httpapi"></a>

HttpApi 使用特定路径和方法的事件。

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

```
Events:
  HttpApiEvent:
    Type: HttpApi
    Properties:
      Path: /
      Method: GET
```

### HttpApi 授权
<a name="sam-property-function-httpapi--examples--httpapi-authorization"></a>

HttpApi 使用授权者的事件。

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

```
Events:
  HttpApiEvent:
    Type: HttpApi
    Properties:
      Path: /authenticated
      Method: GET
      Auth:
        Authorizer: OpenIdAuth
        AuthorizationScopes:
          - scope1
          - scope2
```