

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

# Api
<a name="sam-property-function-api"></a>

描述`Api`事件來源類型的物件。如果已定義[AWS::Serverless::Api](sam-resource-api.md)資源，路徑和方法值必須對應至 API OpenAPI 定義中的 操作。

如果[AWS::Serverless::Api](sam-resource-api.md)未定義任何 ，則函數輸入和輸出代表 HTTP 請求和 HTTP 回應。

例如，使用 JavaScript API，可以透過傳回具有金鑰 statusCode 和內文的物件來控制回應statusCode和內文。

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

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

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

```
  [Auth](#sam-function-api-auth): {{ApiFunctionAuth}}
  [Method](#sam-function-api-method): {{String}}
  [Path](#sam-function-api-path): {{String}}
  [RequestModel](#sam-function-api-requestmodel): {{RequestModel}}
  [RequestParameters](#sam-function-api-requestparameters): {{List of [ String | RequestParameter ]}}
  [RestApiId](#sam-function-api-restapiid): {{String}}
  [ResponseTransferMode](#sam-function-api-responsetransfermode): {{String}}
  TimeoutInMillis: {{Integer}}
```

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

 `Auth`   <a name="sam-function-api-auth"></a>
此特定 Api\+Path\+Method 的身分驗證組態。  
用於在未`DefaultAuthorizer`指定或覆寫預設設定時，覆寫個別路徑上 API `DefaultAuthorizer` `ApiKeyRequired`的設定身分驗證組態。  
*類型*：[ApiFunctionAuth](sam-property-function-apifunctionauth.md)  
*必要*：否  
*CloudFormation 相容性*：此屬性對 是唯一的 AWS SAM ，並且沒有 CloudFormation 同等屬性。

 `Method`   <a name="sam-function-api-method"></a>
叫用此函數的 HTTP 方法。選項包括 `DELETE`、`GET`、`HEAD`、`OPTIONS`、`PATCH`、`PUT`、 `POST`和 `ANY`。如需詳細資訊，請參閱《 ** [API Gateway 開發人員指南》中的設定 HTTP 方法](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-method-settings-method-request.html#setup-method-add-http-method)。  
*類型：*字串  
*必要*：是  
*CloudFormation 相容性*：此屬性對 是唯一的 AWS SAM ，並且沒有 CloudFormation 同等屬性。

 `Path`   <a name="sam-function-api-path"></a>
叫用此函數的 Uri 路徑。必須以 開頭`/`。  
*類型：*字串  
*必要*：是  
*CloudFormation 相容性*：此屬性對 是唯一的 AWS SAM ，並且沒有 CloudFormation 同等的。

 `RequestModel`   <a name="sam-function-api-requestmodel"></a>
請求使用此特定 Api\+Path\+Method 的模型。這應該參考 [AWS::Serverless::Api](sam-resource-api.md) 資源 `Models`區段中指定的模型名稱。  
*類型*：[RequestModel](sam-property-function-requestmodel.md)  
*必要*：否  
*CloudFormation 相容性*：此屬性對 是唯一的 AWS SAM ，並且沒有 CloudFormation 同等的。

 `RequestParameters`   <a name="sam-function-api-requestparameters"></a>
請求此特定 Api\+Path\+Method 的參數組態。所有參數名稱都必須以 開頭`method.request.header`，`method.request`且必須限制為 `method.request.querystring`、 或 `method.request.path`。  
清單可以同時包含參數名稱字串和 [RequestParameter](sam-property-function-requestparameter.md) 物件。對於字串， `Required`和 `Caching` 屬性預設為 `false`。  
*類型*：【 String \| [RequestParameter](sam-property-function-requestparameter.md) 】 的清單  
*必要*：否  
*CloudFormation 相容性*：此屬性對 是唯一的 AWS SAM ，並且沒有 CloudFormation 同等的。

 `RestApiId`   <a name="sam-function-api-restapiid"></a>
RestApi 資源的識別符，必須包含具有指定路徑和方法的操作。一般而言，這會設定為參考此範本中定義的[AWS::Serverless::Api](sam-resource-api.md)資源。  
如果您未定義此屬性， 會使用產生的`OpenApi`文件 AWS SAM 建立預設[AWS::Serverless::Api](sam-resource-api.md)資源。該資源包含由相同範本中未指定 之`Api`事件定義的所有路徑和方法的聯集`RestApiId`。  
這無法參考另一個範本中定義的[AWS::Serverless::Api](sam-resource-api.md)資源。  
*類型：*字串  
*必要*：否  
*CloudFormation 相容性*：此屬性對 是唯一的 AWS SAM ，並且沒有 CloudFormation 同等的。

`ResponseTransferMode`  <a name="sam-function-api-responsetransfermode"></a>
Lambda 函數整合的回應傳輸模式。設定為 `RESPONSE_STREAM` 以透過 API Gateway 啟用 Lambda 回應串流，允許函數將回應串流回用戶端。設為 時`RESPONSE_STREAM`，API Gateway 會使用 Lambda InvokeWithResponseStreaming API。  
*類型：*字串  
*必要*：否  
*有效值*：`BUFFERED` \| `RESPONSE_STREAM`  
*CloudFormation 相容性*：此屬性會直接傳遞至 的 [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-method-integration.html#cfn-apigateway-method-integration-responsetransfermode](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-method-integration.html#cfn-apigateway-method-integration-responsetransfermode) 屬性`AWS::ApiGateway::Method Integration`。

`TimeoutInMillis`  <a name="sam-function-api-timeoutinmillis"></a>
自訂介於 50 和 29,000 毫秒之間的逾時。  
當您指定此屬性時， 會 AWS SAM 修改您的 OpenAPI 定義。OpenAPI 定義必須使用 `DefinitionBody` 屬性內嵌指定。
*類型*：整數  
*必要*：否  
*預設*：29，000 毫秒或 29 秒  
*CloudFormation 相容性*：此屬性對 是唯一的 AWS SAM ，並且沒有同等 CloudFormation 屬性。

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

### 基本範例
<a name="sam-property-function-api--examples--apievent"></a>

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

```
Events:
  ApiEvent:
    Type: Api
    Properties:
      Path: /path
      Method: get
      RequestParameters:
        - method.request.header.Authorization
        - method.request.querystring.keyword:
            Required: true
            Caching: false
```