web-dev-qa-db-ja.com

メソッドに統合が定義されていません-APIがデプロイされるステージを選択してください

AWS API GatewayとAWS Lambdaを使用しています。 APIをデプロイしようとすると、このタイプのエラーメッセージが表示されることがよくあります。エラーメッセージには、展開ステージを選択するようにというメッセージが表示されます。しかし、私はまだ選択して展開しようとしています!しかし、同じエラーが発生します!

Screenshot of pop up error message

このAPIには、複数のメソッドを持つ複数のリソースがあります。以前は、同じAPIを同じ方法でデプロイすることに成功しました。しかし、今は展開できません。

誰かが私を修正するのを手伝ってください。追加:AWS CLIツールを使用せず、AWSウェブダッシュボードを使用するだけです。

19
Hasan Abdullah

AWSのカスタマーサービスセンターに相談しました。問題は:

このAPIには、統合されていないメソッドがありました。リソースimageがあり、このリソースのPOSTメソッドを作成するとします。しかし、AWS Lambda関数またはHTTPに統合するのを忘れていました。そのため、APIをデプロイできません。

メソッドが不要な場合は、メソッドを削除してください。 OR Mockエンドポイントとして統合できます。このエンドポイントはいつでも変更できます。

注:この非統合の問題について、AWSはこのタイプの誤ったエラーメッセージを提供します。開発者の時間を節約するために、メッセージを更新する必要があります。

28
Hasan Abdullah

同じエラーが発生しましたが、CloudFormationを使用してAPIを作成した場合。

AWS::ApiGateway::Deploymentリソースに、すべてのAPIメソッドに「依存」するDependsOn属性を含める必要があることがわかりました。

たとえば、2つのAWS::ApiGateway::Methodリソースを使用してAPIを構築する場合、AWS::ApiGateway::Deploymentはこれらの両方のメソッドに依存する必要があります。

  MyFirstApiMethod:
    Type: AWS::ApiGateway::Method
    Properties: 
       <your properties>

  MySecondApiMethod:
    Type: AWS::ApiGateway::Method
    Properties: 
       <your properties>

  MyDeployment:
    Type: AWS::ApiGateway::Deployment
    DependsOn: [MyFirstApiMethod, MySecondApiMethod] # <-- REQUIRED 
    Properties: 
      RestApiId: !Ref MyRestApi

すべてのAPIメソッドにDependOn属性がないと、CloudFormationがデプロイリソースの後にそれらを作成し、No integration defined for methodエラーが発生する場合があります。

0
Marcin