aws CDK 在 c# 中为 API 网关 websockets 构建

aws CDK construct in c# for API gateway websockets

我正在使用 AWS CDK 为 API 网关 websockets 构建堆栈。 I can see this documentation here

但它没有提供任何明确的解释,说明哪些构造用于网络套接字。有人可以帮助我正确构造以用于 websockets。

直到今天,CDK 团队还没有像其他更常见的 AWS 组件一样发布 easy-to-use API,因此缺少这方面的任何文档。

目前,您可以使用 lower-level 构造来实现结果,或者通过 CLI、脚本或 Web 控制台在 CDK 环境之外处理 WS 管理。

如果想在等待 CDK 达到与 Websockets 相关的更好阶段时继续使用一些 lower-level 结构 APIs 这里有一个用 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 中获得了此信息: https://github.com/aws-samples/aws-cdk-examples/pull/325/files

我还在试验这个,但至少在最新版本的 CDK 中,你可以找到使用过的函数和 类。