You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

CloudFormation创建GatewayAuthorizer失败 报并发修改异常

问题原因

该并发修改报错是CloudFormation隐式依赖识别不全导致的资源创建时序问题:

  • CloudFormation默认仅能识别通过!Ref、!GetAtt显式引用的资源依赖,当前Authorizer配置仅显式关联了API Gateway、User Pool、User Pool Client三个资源,但Cognito User Pool的IDP绑定、Issuer端点初始化是异步完成的最终一致性操作。当CloudFormation判定User Pool、IDP资源创建完成、开始发起Authorizer创建请求时,Cognito侧的Issuer端点实际还未完成同步,API Gateway侧校验Issuer合法性时刚好撞上Cognito的后台状态变更,就会抛出ConflictException。
  • 如果模板中同时为同一个API Gateway配置了路由、CORS规则、API映射等资源,CloudFormation会并行发起多个API修改请求,多请求同时操作同一个API实例也会触发同类并发冲突。
修复方案

按以下顺序排查调整即可:

  1. 给Authorizer资源添加显式依赖声明,强制等待所有关联资源完全就绪后再触发创建
    在Authorizer资源块中新增DependsOn属性,将所有关联的Cognito资源(User Pool、User Pool Client、IDP、自定义User Pool域名)、同API下的其他配置资源(路由、CORS、阶段配置等)全部加入依赖列表,参考配置如下:
APIGatewayAuthorizer:
  Type: AWS::ApiGatewayV2::Authorizer
  DependsOn:
    - apiGateway
    - UserPool
    - UserPoolClient
    - CognitoIdp # 替换为你模板中IDP资源的实际逻辑ID
    # 如果单独定义了UserPool域名、API路由、CORS配置,也需要把对应资源逻辑ID加到这里
  Properties:
    ApiId: !Ref apiGateway
    AuthorizerType: JWT
    IdentitySource:
      - "$request.header.Authorization"
    JwtConfiguration:
      Audience:
        - !Ref UserPoolClient
      Issuer: !Sub 'https://cognito-idp.${AWS::Region}:${AWS::AccountId}.amazonaws.com/${UserPool}'
    Name: JwtCognitoAuthorizer
  1. 若添加显式依赖后仍偶发报错,可以通过CreationPolicy配置30-60秒的创建等待窗口,给Cognito侧留出足够的状态同步时间,避免资源刚创建完成就立刻发起Authorizer校验。
  2. 检查同API下的其他资源配置,避免多个API Gateway资源无依赖并行创建,给路由、阶段、API映射等资源也加上对应的依赖链,保证同一时间只有一个修改请求操作目标API实例。

调整后重新执行栈创建/更新操作即可解决该问题,不会再出现资源长时间卡在CREATE_IN_PROGRESS最终抛出并发修改异常的情况。

内容的提问来源于stack exchange,提问作者jlan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.28 10:01:08