AWS API GatewayとAWS Lambdaを使用しています。 APIをデプロイしようとすると、このタイプのエラーメッセージが表示されることがよくあります。エラーメッセージには、展開ステージを選択するようにというメッセージが表示されます。しかし、私はまだ選択して展開しようとしています!しかし、同じエラーが発生します!
このAPIには、複数のメソッドを持つ複数のリソースがあります。以前は、同じAPIを同じ方法でデプロイすることに成功しました。しかし、今は展開できません。
誰かが私を修正するのを手伝ってください。追加:AWS CLIツールを使用せず、AWSウェブダッシュボードを使用するだけです。
AWSのカスタマーサービスセンターに相談しました。問題は:
このAPIには、統合されていないメソッドがありました。リソースimage
があり、このリソースのPOST
メソッドを作成するとします。しかし、AWS Lambda関数またはHTTPに統合するのを忘れていました。そのため、APIをデプロイできません。
メソッドが不要な場合は、メソッドを削除してください。 OR Mock
エンドポイントとして統合できます。このエンドポイントはいつでも変更できます。
注:この非統合の問題について、AWSはこのタイプの誤ったエラーメッセージを提供します。開発者の時間を節約するために、メッセージを更新する必要があります。
同じエラーが発生しましたが、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
エラーが発生する場合があります。