Ami*_*nes 9 amazon-web-services aws-api-gateway aws-cdk
我正在尝试创建 CDK 堆栈以创建 API 网关。如果我在“小块”(资源的评论部分)中创建堆栈,一切都正常工作,但是当我尝试创建完整的堆栈时,我收到此异常:
 Number of resources, 224, is greater than maximum allowed, 200
因此,我尝试将我的大堆栈拆分为 2 个较小的堆栈,一个堆栈创建资源并创建一半的资源,另一个堆栈填充相关数据。
代码片段:
 Number of resources, 224, is greater than maximum allowed, 200
我尝试创建cross-stack或nested-stack将 API 数据传递给它,但到目前为止没有运气。
我的目标是创建一个包含 2 个小栈的栈——它们都指向同一个 API。或者,如果可能,为资源限制创建一个解决方法。
任何帮助都感激不尽。
2020 年 10 月 10 日更新:
目前,没有解决此问题的方法,最终将 API 网关拆分为多个 API 网关。
2020 年 24 月 10 日更新:
AWS CloudFormation 现在支持增加对五个服务配额的限制 - 模板大小、资源、参数、映射和输出。可以在 S3 对象中传递的模板的最大大小现在是 1MB(以前是 450KB)。最大资源数的新每个模板限制为 500(以前为 200)。
更多信息可以在这里找到。
小智 9
这就是我们现在正在做的事情。我们基本上有多个堆栈共享相同的 API 网关类 (RestApi)
class MultipleStackConstruct extends Construct {
  constructor(scope: Construct, id: string) {
    super(scope, id);
    // Main stack with shared components
    const commonStack = new CommonStack(
      scope,
      `common-stack`
    );
    // Module 1
    const moduleOneStack = new ModulOneStack(
      scope,
      `module-one`,
      {
        apiGatewayRestApi: commonStack.apiGatewayRestApi
      }
    );
    // Module 2, 3, etc.....
  }
}
此接口用于将 props 传递给模块堆栈:
export interface CommonProps extends cdk.StackProps {
  apiGatewayRestApi: apigw.RestApi;
}
通用模块将创建 API 网关对象:
export class CommonStack extends cdk.Stack {
  public readonly apiGatewayRestApi: apigw.RestApi;
  constructor(scope: cdk.Construct, id: string, props?: CommonProps) {
    super(scope, id, props);
    /******** SETUP API ********/
    this.apiGatewayRestApi = new apigw.RestApi(this, "MyAPI", {
      // Options here
    });
}
所以模块堆栈本身将是这样的:
export class ModuleOneStack extends cdk.Stack {
  constructor(scope: cdk.Construct, id: string, props?: CommonProps) {
    super(scope, id, props);
    if (props && props.apiGatewayRestApi) {
      const apiGatewayRestApi = props.apiGatewayRestApi;
      // associate lambda with api gateway
    }
  }
}
在这种情况下,我们只使用一个 API 网关,多个 Lambda 被分成多个堆栈,因为我们也遇到了限制问题。
有来自 AWS 的文档使用 VPC 做同样的事情:https : //docs.aws.amazon.com/cdk/api/latest/docs/aws-ec2-readme.html#sharing-vpcs-between-stacks
从这里复制粘贴我的评论:https : //github.com/aws/aws-cdk/issues/1477#issuecomment-568652807
| 归档时间: | 
 | 
| 查看次数: | 3651 次 | 
| 最近记录: |