Token导航 LogoToken导航TokenDH.com
MCP Bedrock Server logo
运维云端未说明官方级别未说明来源级核验

MCP Bedrock Server

MCP Server

一个AWS CDK构造,提供完整的领域驱动设计(DDD)限界上下文的实现基础设施模式,包括API Gateway、DynamoDB和EventBridge,支持微服务架构与领域分离。

工具数

0

提示词数

0

GitHub Stars

0

资源数

0
云端部署Docker服务器管理

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

JonGelnerPFG

提供方

JonGelnerPFG

最后核验

2026/5/17 20:19

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

详细介绍

域服务构建

AWS CDK构造,为实现域驱动设计(DDD)有界上下文提供了一个完整的基础架构模式。该结构包括API网关、DynamoDB和EventBridge,以支持具有适当域分离的微服务架构。

特性

  • API网关:域的RESTful API端点
  • DynamoDB:具有复合密钥结构的NoSQL数据库(pk/sk模式)
  • EventBridge:用于域事件和服务间通信的自定义事件总线
  • 预先配置的权限:Lambda函数可以自动访问域资源
  • CORS支持:web应用程序的可选CORS配置
  • 环境感知命名:资源命名与环境后缀一致

安装

npm install domain-service-construct

基本用法

import { DomainServiceConstruct } from 'domain-service-construct';

const userDomain = new DomainServiceConstruct(this, 'UserDomain', {
  domainName: 'user-management',
  environment: 'dev',
  enableCors: true,
});

api参考

DomainServiceConstructProps

属性类型必填描述
domainNamestring此服务的域名
environmentstring资源命名的环境后缀
enableCorsboolean在API网关上启用CORS
tableProps部分其他DynamoDB表配置
apiProps部分其他API网关配置
eventBusNamestring自定义EventBridge总线名称

公共财产

  • api:API网关RestApi实例
  • table:DynamoDB表实例
  • eventBus:EventBridge EventBus实例
  • domainName:用于此服务的域名

方法

createDomainFunction(id: string, props: FunctionProps): Function

使用预先配置的环境变量和权限创建Lambda函数:

  • TABLE_NAME:DynamoDB表名
  • EVENT_BUS_NAME:EventBridge巴士名称
  • DOMAIN_NAME:域名

该函数自动获取DynamoDB表的读/写权限,并将权限放在EventBridge总线上。

addApiResource(path: string, methods?: string[]): Resource

使用可选的CORS配置将资源添加到API网关。

addEventRule(id: string, eventPattern: EventPattern): Rule

为域的事件总线创建EventBridge规则。

完整示例

import { App, Stack, StackProps } from 'aws-cdk-lib';
import { Runtime, Code } from 'aws-cdk-lib/aws-lambda';
import { LambdaIntegration } from 'aws-cdk-lib/aws-apigateway';
import { DomainServiceConstruct } from 'domain-service-construct';

export class OrderDomainStack extends Stack {
  constructor(scope: App, id: string, props?: StackProps) {
    super(scope, id, props);

    // Create domain service
    const orderDomain = new DomainServiceConstruct(this, 'OrderDomain', {
      domainName: 'order-processing',
      environment: 'prod',
      enableCors: true,
    });

    // Create business logic functions
    const createOrderFunction = orderDomain.createDomainFunction('CreateOrder', {
      runtime: Runtime.NODEJS_18_X,
      handler: 'index.handler',
      code: Code.fromAsset('lambda/create-order'),
    });

    const getOrderFunction = orderDomain.createDomainFunction('GetOrder', {
      runtime: Runtime.NODEJS_18_X,
      handler: 'index.handler',
      code: Code.fromAsset('lambda/get-order'),
    });

    // Set up API routes
    const ordersResource = orderDomain.addApiResource('orders');
    const orderResource = ordersResource.addResource('{orderId}');

    ordersResource.addMethod('POST', new LambdaIntegration(createOrderFunction));
    orderResource.addMethod('GET', new LambdaIntegration(getOrderFunction));

    // Set up event handling
    orderDomain.addEventRule('OrderEvents', {
      source: ['order-processing'],
      detailType: ['Order Created', 'Order Updated', 'Order Cancelled'],
    });
  }
}

DynamoDB密钥模式

该构造使用复合键模式 pk (分区键)和 sk (排序键)以支持各种访问模式:

// Example key patterns
{ pk: 'USER', sk: 'user-123' }           // Single user
{ pk: 'ORDER', sk: 'order-456' }         // Single order
{ pk: 'USER#user-123', sk: 'ORDER#order-456' } // User's order

事件驱动架构

EventBridge集成实现了域之间的松耦合:

// Publishing domain events
await eventbridge.putEvents({
  Entries: [{
    Source: 'order-processing',
    DetailType: 'Order Created',
    Detail: JSON.stringify({ orderId, customerId, amount }),
    EventBusName: process.env.EVENT_BUS_NAME
  }]
}).promise();

最佳实践

  1. 领域边界:每个构造代表一个有界上下文
  2. 事件命名:跨域使用一致的事件命名约定
  3. 资源命名:使用描述性域名便于识别
  4. 环境隔离:始终指定适当的资源隔离环境
  5. 安全:该构造遵循IAM权限的最小特权原则

贡献

此构造遵循AWS CDK最佳实践,旨在针对特定域需求进行扩展,同时保持团队之间的一致性。

目录标签

目录标签

云端部署Docker服务器管理微服务架构本地部署领域驱动设计AWSCDKAPIGatewayDynamoDBEventBridge

接入字段

传输方式(transport,传输协议)

未说明

鉴权方式(authType,认证方式)

none

工具数量(toolCount,工具数)

0

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

未说明none部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

仍需确认:installCommand

来源信息

继续浏览同类 MCP