У меня проблемы с настройкой API-шлюза с лямбда-прокси, защищенным пулом Cognito.
Я использую aws-cdk 0.34.0 в машинописи.
Настройка, которую я ищу, - это API-шлюз с единственным ресурсом, который является прокси для лямбда-функции. Эту единственную конечную точку необходимо защитить с помощью пула пользователей Cognito.
Код, который я пытаюсь найти ниже.
Однако, когда я запускаю его, я получаю следующую ошибку ...
apiDeployment (Deployment2E842E9E) No integration defined for method (Service: AmazonApiGateway; Status Code: 400; Error Code: BadRequestException; Request ID: 64f4e3bb-9107-11e9-84f1-999724493159)
new Deployment (/home/circleci/aws/node_modules/@aws-cdk/aws-apigateway/lib/deployment.ts:69:21)
Код моего машинописного текста ниже
const backendLambda = new lambda.Function(
this,
"CampManager-backendLambda",
{
code: new lambda.AssetCode("../server/", AssetPackaging.ZipDirectory),
handler: "src/index.js",
timeout: 1000,
runtime: lambda.Runtime.NodeJS10x
}
);
const backendApi = new api.RestApi(this, "CampManager-backendApi");
const userPool = new cognito.UserPool(this, "CampManager-userPool", {
autoVerifiedAttributes: [],
poolName: "CampManager-userPool",
signInType: cognito.SignInType.Username,
usernameAliasAttributes: [
cognito.UserPoolAttribute.Email,
cognito.UserPoolAttribute.PhoneNumber
]
});
const cognitoAuthorizer = new api.CfnAuthorizerV2(
this,
"CampManager-authorizer",
{
apiId: backendApi.restApiId,
authorizerType: api.AuthorizationType.Cognito,
identitySource: ["Authorisation"],
authorizerUri: userPool.userPoolProviderUrl,
name: "Cognito"
}
);
backendApi.root.addProxy({
defaultIntegration: new api.LambdaIntegration(backendLambda),
defaultMethodOptions: {
authorizationType: api.AuthorizationType.Cognito,
authorizerId: cognitoAuthorizer.authorizerId,
operationName: "Proxy"
}
});
const apiDeployment = new api.Deployment(
this,
"CampManager-apiDeployment",
{
api: backendApi,
description: "Camp Manager Deployment"
}
);
const apiStage = new api.Stage(this, "CampManager-apiStage", {
deployment: apiDeployment
});