微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

重用AWS :: ApiGateway :: ApiKey的cloudformation模板

如何解决重用AWS :: ApiGateway :: ApiKey的cloudformation模板

我有AWS SAM模板,其中一部分看起来像这样:

  # .......
  InternalApiKey:
    Type: AWS::ApiGateway::ApiKey
    Properties:
      Enabled: true
      Name: !Sub internal_api_key_${Env}
      Value: !Ref InternalApikeyvalue
      StageKeys:
        - RestApiId: !Ref ServerlessRestApi
          StageName: Prod
  InternalUsagePlan:
    Type: AWS::ApiGateway::UsagePlan
    Properties:
      ApiStages:
        - ApiId: !Ref ServerlessRestApi
          Stage: Prod
  InternalUsagePlanKey:
    Type: AWS::ApiGateway::UsagePlanKey
    Properties:
      KeyId: !Ref InternalApiKey
      KeyType: API_KEY
      UsagePlanId: !Ref InternalUsagePlan
  #......

即使api键名不同,使用sam deploy --stack-name=stack-asam deploy --stack-name=stack-b将此模板部署为两个不同的应用程序(CloudFormation堆栈)也会失败,并显示以下错误

API密钥已经存在(服务:AmazonApiGateway;状态代码:409;错误代码:ConflictException;请求ID: 编辑代理: 空)

如何从此模板部署两个堆栈?

解决方法

不同的键值将解决您的问题。因此,如果您自己设置api键值,请确保它们是唯一的。不确定为什么这是不同阶段之间的约束。

,

您真的需要为钥匙提供价值吗?这是一个可选参数。您可以将其从模板中删除,AWS将在每次部署中为您生成一个唯一密钥。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。