#amazon-web-services #aws-api-gateway #aws-sdk-net
#amazon-веб-сервисы #aws-api-gateway #aws-sdk-net
Вопрос:
Я использую AWS CDK для создания стека для веб-узлов API gateway. Я могу посмотреть эту документацию здесь
но это не дает никакого четкого объяснения, какую конструкцию on использовать для веб-сокетов. может ли кто-нибудь помочь мне с правильной конструкцией для использования для websockets.
Ответ №1:
До сих пор команда CDK не опубликовала простой в использовании API, подобный другим более распространенным компонентам AWS, отсюда и отсутствие какой-либо документации на этот счет.
В настоящее время вы можете использовать конструкции более низкого уровня для достижения результата или обрабатывать управление WS вне среды CDK с помощью CLI, скрипта или веб-консоли.
Если вы хотите перейти к использованию некоторых конструкций более низкого уровня, ожидая, пока CDK достигнет лучшей стадии по отношению к API Websockets, вот небольшой пример, написанный с помощью TypeScript:
// Handle your other resources like roles, lambdas, and dependencies
// ...
// Example API definition
const api = new CfnApi(this, name, {
name: "ChatAppApi",
protocolType: "WEBSOCKET",
routeSelectionExpression: "$request.body.action",
});
// Example lambda integration
const connectIntegration = new CfnIntegration(this, "connect-lambda-integration", {
apiId: api.ref,
integrationType: "AWS_PROXY",
integrationUri: "arn:aws:apigateway:" config["region"] ":lambda:path/2015-03-31/functions/" connectFunc.functionArn "/invocations",
credentialsArn: role.roleArn,
});
// Example route definition
const connectRoute = new CfnRoute(this, "connect-route", {
apiId: api.ref,
routeKey: "$connect",
authorizationType: "NONE",
target: "integrations/" connectIntegration.ref,
});
// Finishing touches on the API definition
const deployment = new CfnDeployment(this, `${name}-deployment`, {
apiId: api.ref
});
new CfnStage(this, `${name}-stage`, {
apiId: api.ref,
autoDeploy: true,
deploymentId: deployment.ref,
stageName: "dev"
});
const dependencies = new ConcreteDependable();
dependencies.add(connectRoute)
Я получил эту информацию из PR, который кто-то внес в документацию samples:
https://github.com/aws-samples/aws-cdk-examples/pull/325/files
Я все еще экспериментирую с этим, но, по крайней мере, в последней версии CDK вы можете найти используемые функции и классы.