

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 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\$1Path\$1Method 的驗證組態。  
用於在未指定 `DefaultAuthorizer` 時覆寫 API 的 `DefaultAuthorizer`或設定個別路徑上的身分驗證組態。  
*類型*：[HttpApiFunctionAuth](sam-property-function-httpapifunctionauth.md)  
*必要*：否  
*CloudFormation 相容性*：此屬性對 是唯一的 AWS SAM ，並且沒有 CloudFormation 同等屬性。

 `Method`   <a name="sam-function-httpapi-method"></a>
叫用此函數的 HTTP 方法。  
如果未指定 `Method` `Path`和 ，SAM 會建立預設 API 路徑，將任何未對應至不同端點的請求路由至此 Lambda 函數。每個 API 只能存在其中一個預設路徑。  
*類型：*字串  
*必要*：否  
*CloudFormation 相容性*：此屬性對 是唯一的 AWS SAM ，並且沒有 CloudFormation 同等屬性。

 `Path`   <a name="sam-function-httpapi-path"></a>
叫用此函數的 Uri 路徑。必須以 開頭`/`。  
如果未指定 `Method` `Path`和 ，SAM 會建立預設 API 路徑，將任何未對應至不同端點的請求路由至此 Lambda 函數。每個 API 只能存在其中一個預設路徑。  
*類型：*字串  
*必要*：否  
*CloudFormation 相容性*：此屬性對 是唯一的 AWS SAM ，並且沒有 CloudFormation 同等的。

 `PayloadFormatVersion`   <a name="sam-function-httpapi-payloadformatversion"></a>
為傳送至整合的承載指定格式。  
注意：PayloadFormatVersion 需要 SAM 修改您的 OpenAPI 定義，因此僅適用於 `DefinitionBody` 屬性中定義的內嵌 OpenApi。  
*類型：*字串  
*必要*：否  
*預設*：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)。  
注意：如果在 HttpApi 資源和事件來源中都指定 RouteSettings， 會將它們與優先的事件來源屬性 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 定義，因此僅適用於 `DefinitionBody` 屬性中定義的內嵌 OpenApi。  
*類型*：整數  
*必要*：否  
*預設*：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
```

# HttpApiFunctionAuth
<a name="sam-property-function-httpapifunctionauth"></a>

在事件層級設定授權。

設定特定 API \$1 路徑 \$1 方法的驗證

## 語法
<a name="sam-property-function-httpapifunctionauth-syntax"></a>

若要在 AWS Serverless Application Model (AWS SAM) 範本中宣告此實體，請使用下列語法。

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

```
  [AuthorizationScopes](#sam-function-httpapifunctionauth-authorizationscopes): List
  [Authorizer](#sam-function-httpapifunctionauth-authorizer): String
```

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

 `AuthorizationScopes`   <a name="sam-function-httpapifunctionauth-authorizationscopes"></a>
要套用至此 API、路徑和方法的授權範圍。  
`DefaultAuthorizer` 如果存在，此處列出的範圍會覆寫 套用的任何範圍。  
*類型：*清單  
*必要*：否  
*CloudFormation 相容性*：此屬性對 是唯一的 AWS SAM ，並且沒有 CloudFormation 同等屬性。

 `Authorizer`   <a name="sam-function-httpapifunctionauth-authorizer"></a>
特定函數`Authorizer`的 。若要使用 IAM 授權，請在範本的 `Globals`區段`EnableIamAuthorizer`中指定 `AWS_IAM`和 `true`的 。  
如果您已在 API 上指定全域授權方，並想要將特定函數設為公有，請將 `Authorizer`設定為 以覆寫 `NONE`。  
*類型：*字串  
*必要*：否  
*CloudFormation 相容性*：此屬性對 是唯一的 AWS SAM ，並且沒有 CloudFormation 同等屬性。

## 範例
<a name="sam-property-function-httpapifunctionauth--examples"></a>

### Function-Auth
<a name="sam-property-function-httpapifunctionauth--examples--function-auth"></a>

在函數層級指定授權

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

```
Auth:
  Authorizer: OpenIdAuth
  AuthorizationScopes:
    - scope1
    - scope2
```

### IAM 授權
<a name="sam-property-function-httpapifunctionauth--examples--iam-authorization"></a>

在事件層級指定 IAM 授權。若要在事件層級使用`AWS_IAM`授權，您還必須在範本的 `Globals`區段`EnableIamAuthorizer`中指定 `true` 的 。如需詳細資訊，請參閱[AWS SAM 範本的全域區段](sam-specification-template-anatomy-globals.md)。

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

```
Globals:
  HttpApi:
    Auth:
      EnableIamAuthorizer: true

Resources:
  HttpApiFunctionWithIamAuth:
    Type: AWS::Serverless::Function
    Properties:
      Events:
        ApiEvent:
          Type: HttpApi
          Properties:
            Path: /iam-auth
            Method: GET
            Auth:
              Authorizer: AWS_IAM
      Handler: index.handler
      InlineCode: |
        def handler(event, context):
          return {'body': 'HttpApiFunctionWithIamAuth', 'statusCode': 200}
      Runtime: python3.9
```