メニュー
AWS CloudFormation
ユーザーガイド (API Version 2010-05-15)

AWS::ApiGateway::Method

AWS::ApiGateway::Method リソースは、クライアントがそのリクエストを送信する必要があるパラメーターと本文を定義する Amazon API Gateway (API Gateway) メソッドを作成します。

構文

AWS CloudFormation テンプレートでこのエンティティを宣言するには、次の構文を使用します。

JSON

Copy
{ "Type" : "AWS::ApiGateway::Method", "Properties" : { "ApiKeyRequired" : Boolean, "AuthorizationType" : String, "AuthorizerId" : String, "HttpMethod" : String, "Integration" : Integration, "MethodResponses" : [ MethodResponse, ... ], "OperationName" : String, "RequestModels" : { 文字列: 文字列, ... }, "RequestParameters" : { String:Boolean, ... }, "RequestValidatorId" : String, "ResourceId" : String, "RestApiId" : String } }

YAML

Copy
Type: "AWS::ApiGateway::Method" Properties: ApiKeyRequired: Boolean AuthorizationType: String AuthorizerId: String HttpMethod: String Integration: Integration MethodResponses: - MethodResponse OperationName: String RequestModels: 文字列: 文字列 RequestParameters: 文字列: ブール RequestValidatorId: String ResourceId: String RestApiId: String

プロパティ

ApiKeyRequired

メソッドがクライアントに有効な API キーの送信を要求するかどうかを示します。

Required: No

Type: Boolean

更新に伴う要件: 中断はありません。

AuthorizationType

メソッドの認証タイプ。

Required: Yes. AuthorizerId プロパティを指定した場合、このプロパティには CUSTOM を指定します。

Type: String

更新に伴う要件: 中断はありません。

AuthorizerId

このメソッドで使用する認証の識別子。このプロパティを指定した場合、AuthorizationType プロパティには CUSTOM を指定します。

Required: No

Type: String

更新に伴う要件: 中断はありません。

HttpMethod

クライアントがこのメソッドの呼び出しに使用する HTTP メソッド。

Required: Yes

Type: String

更新に伴う要件: 中断はありません。

Integration

リクエストを受け取ったときにメソッドが呼び出すバックエンドシステム。

Required: No

Type: Amazon API Gateway メソッドの統合

更新に伴う要件: 中断はありません。

MethodResponses

メソッドを呼び出すクライアントに送信可能なレスポンス。

Required: No

Amazon API Gateway Method MethodResponseType: リスト

更新に伴う要件: 中断はありません。

OperationName

メソッドのフレンドリ操作名。 たとえば、GET /pets メソッドのために ListPetsOperationName を割り当てることができます。

必須: いいえ

タイプ: 文字列

更新に伴う要件: 中断はありません。

RequestModels

リソースは応答のコンテンツタイプに使用します。応答モデルをキーと値のペア (文字列から文字列へのマッピング) として指定します。コンテンツタイプがキーであり、Model リソース名が値です。

Required: No

: キーと値のペアのマッピング

更新に伴う要件: 中断はありません。

RequestParameters

API Gateway が受け入れるパラメーターを要求します。リクエストパラメーターをキーと値のペア (String から Boolean へのマッピング) として指定します。送信元がキー、Boolean が値です。Boolean はパラメーターが必須かどうかを指定します。送信元の形式は method.request.location.name にする必要があります。location は、querystringpath、または header で、name は一意の有効なパラメーター名です。

Required: No

: キーと値のペアのマッピング

更新に伴う要件: 中断はありません。

RequestValidatorId

関連付けられたリクエスト認証の ID。

必須: いいえ

タイプ: 文字列

更新に伴う要件: 中断はありません。

ResourceId

API Gateway リソースの ID。ルートリソースメソッドの場合、{ "Fn::GetAtt": ["MyRestApi", "RootResourceId"] } などの RestApi ルートリソース ID を指定します。

Required: Yes

Type: String

更新に伴う要件: 中断はありません。

RestApiId

API Gateway がメソッドを作成する RestApi リソースの ID。

Required: Yes

Type: String

更新に伴う要件: 中断はありません。

戻り値

参照番号

このリソースの論理 ID が Ref 組み込み関数に提供されると、Ref により mysta-metho-01234b567890example のようなメソッド ID が返されます。

Ref 関数の使用方法の詳細については、「Ref」を参照してください。

Mock メソッド

次の例では、MyApi API のモック GET メソッドを作成します。

JSON

Copy
"MockMethod": { "Type": "AWS::ApiGateway::Method", "Properties": { "RestApiId": { "Ref": "MyApi" }, "ResourceId": { "Fn::GetAtt": ["RestApi", "RootResourceId"] }, "HttpMethod": "GET", "AuthorizationType": "NONE", "Integration": { "Type": "MOCK" } } }

YAML

Copy
MockMethod: Type: "AWS::ApiGateway::Method" Properties: RestApiId: Ref: "MyApi" ResourceId: Fn::GetAtt: - "RestApi" - "RootResourceId" HttpMethod: "GET" AuthorizationType: "NONE" Integration: Type: "MOCK"

Lambda プロキシ

次の例では、キャッチオール ANY メソッドの単一の統合セットアップでクライアントが Lambda 関数を呼び出すようにするプロキシリソースを作成します。Uri プロパティは Lambda 関数を指定します。Lambda プロキシ統合とサンプルの Lambda 関数の詳細については、API Gateway 開発者ガイドの「プロキシリソースを通じて Lambda プロキシと統合された API を作成する」を参照してください。

注記

AWS::Lambda::Permission リソースを使用して、Lambda 関数を呼び出すアクセス権限を API Gateway に付与します。

JSON

Copy
"ProxyResource": { "Type": "AWS::ApiGateway::Resource", "Properties": { "RestApiId": { "Ref":"LambdaSimpleProxy"}, "ParentId": { "Fn::GetAtt" : [ "LambdaSimpleProxy", "RootResourceId" ]}, "PathPart": "{proxy+}" } }, "ProxyResourceANY": { "Type": "AWS::ApiGateway::Method", "Properties": { "RestApiId": {"Ref":"LambdaSimpleProxy"}, "ResourceId": {"Ref":"ProxyResource"}, "HttpMethod": "ANY", "AuthorizationType": "NONE", "Integration": { "Type": "AWS_PROXY", "IntegrationHttpMethod": "POST", "Uri": { "Fn::Sub":"arn:aws:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${LambdaForSimpleProxy.Arn}/invocations"} } } }

YAML

Copy
ProxyResource: Type: AWS::ApiGateway::Resource Properties: RestApiId: !Ref LambdaSimpleProxy ParentId: !GetAtt [LambdaSimpleProxy, RootResourceId] PathPart: '{proxy+}' ProxyResourceANY: Type: AWS::ApiGateway::Method Properties: RestApiId: !Ref LambdaSimpleProxy ResourceId: !Ref ProxyResource HttpMethod: ANY AuthorizationType: NONE Integration: Type: AWS_PROXY IntegrationHttpMethod: POST Uri: !Sub arn:aws:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${LambdaForSimpleProxy.Arn}/invocations

関連付け済みのリクエスト検証

次の例では、REST API、メソッド、リクエスト検証を作成し、リクエスト検証とメソッドを関連付けます。

JSON

Copy
{ "Parameters": { "operationName": { "Type": "String", "Default": "testoperationName" }, "restApiName": { "Type": "String", "Default": "testrestApiName" }, "validatorName": { "Type": "String", "Default": "testvalidatorName" }, "validateRequestBody": { "Type": "String", "Default": "testvalidateRequestBody" }, "validateRequestParameters": { "Type": "String", "Default": true } }, "Resources": { "RestApi": { "Type": "AWS::ApiGateway::RestApi", "Properties": { "Name": { "Ref": "restApiName" } } }, "Method": { "Type": "AWS::ApiGateway::Method", "Properties": { "HttpMethod": "POST", "ResourceId": { "Fn::GetAtt": [ "RestApi", "RootResourceId" ] }, "RestApiId": { "Ref": "RestApi" }, "AuthorizationType": "NONE", "Integration": { "Type": "MOCK" }, "RequestValidatorId": { "Ref": "RequestValidator" }, "OperationName": { "Ref": "operationName" } } }, "RequestValidator": { "Type": "AWS::ApiGateway::RequestValidator", "Properties": { "Name": { "Ref": "validatorName" }, "RestApiId": { "Ref": "RestApi" }, "ValidateRequestBody": { "Ref": "validateRequestBody" }, "ValidateRequestParameters": { "Ref": "validateRequestParameters" } } } }, "Outputs": { "RootResourceId": { "Value": { "Fn::GetAtt": [ "RestApi", "RootResourceId" ] } } } }

YAML

Copy
Parameters: operationName: Type: String Default: testoperationName restApiName: Type: String Default: testrestApiName validatorName: Type: String Default: testvalidatorName validateRequestBody: Type: String Default: testvalidateRequestBody validateRequestParameters: Type: String Default: true Resources: RestApi: Type: 'AWS::ApiGateway::RestApi' Properties: Name: !Ref restApiName Method: Type: 'AWS::ApiGateway::Method' Properties: HttpMethod: POST ResourceId: !GetAtt RestApi.RootResourceId RestApiId: !Ref RestApi AuthorizationType: NONE Integration: Type: MOCK RequestValidatorId: !Ref RequestValidator OperationName: !Ref operationName RequestValidator: Type: 'AWS::ApiGateway::RequestValidator' Properties: Name: !Ref validatorName RestApiId: !Ref RestApi ValidateRequestBody: !Ref validateRequestBody ValidateRequestParameters: !Ref validateRequestParameters Outputs: RootResourceId: Value: !GetAtt RestApi.RootResourceId

以下の資料も参照してください。

  • Amazon API Gateway REST API リファレンスメソッド