web-dev-qa-db-fra.com

Aucune intégration définie pour la méthode - Choisissez une étape où votre API sera déployée

Je travaille avec AWS API Gateway et AWS Lambda. Souvent, je fais face à ce type de message d'erreur lorsque je tente de déployer l'API. Le message d'erreur indique de sélectionner une étape de déploiement. Mais je sélectionne et essaie toujours de déployer! mais la même erreur se produit!

Screenshot of pop up error message

Dans cette API, j'ai plusieurs ressources avec plusieurs méthodes. Auparavant, je réussis à déployer cette même API de la même manière. Mais maintenant, je ne peux pas le déployer.

S'il vous plaît, quelqu'un m'aide à le réparer. Pour plus: je n'utilise pas l'outil AWS CLI, il suffit d'utiliser le tableau de bord Web AWS.

19
Hasan Abdullah

J'ai parlé avec le centre de service client d'AWS. Le problème était:

Dans cette API, il y avait une méthode non intégrée. Supposons qu'il existe une ressource image et que je crée une méthode POST pour cette ressource. Mais j'ai oublié de l'intégrer à n'importe quelle fonction AWS Lambda ou HTTP. L'API ne peut donc pas être déployée.

Si la méthode n'est pas nécessaire, supprimez-la. OR vous pouvez l'intégrer comme point de terminaison Mock. Vous pouvez modifier ce point de terminaison à tout moment.

Remarque: Pour ce problème de désintégration, AWS donne ce type de message d'erreur incorrect. Ils doivent mettre à jour leur message pour gagner du temps au développeur.

28
Hasan Abdullah

J'obtenais la même erreur mais lors de la création d'API à l'aide de CloudFormation.

Il s'est avéré que dans mon AWS::ApiGateway::Deployment ressource, je devais inclure l'attribut DependsOn qui "dépend" de toutes mes méthodes API.

Par exemple, lorsque vous créez une API avec deux AWS::ApiGateway::Method Ressources, AWS::ApiGateway::Deployment doit dépendre de ces deux méthodes:

  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

Sans l'attribut DependOn sur toutes les méthodes d'API, CloudFormation peut les créer après la ressource de déploiement, ce qui entraîne No integration defined for method Erreur.

0
Marcin