Aws lambda Can';t从云形成yaml中的条件函数返回整数

Aws lambda Can';t从云形成yaml中的条件函数返回整数,aws-lambda,yaml,amazon-cloudformation,serverless-framework,Aws Lambda,Yaml,Amazon Cloudformation,Serverless Framework,我正在为lambda函数编写一个无服务器的yaml。我需要一个条件参数reservedConcurrency,如果IsProduction为true,则为100,如果为false,则为20。但在部署yaml文件时发生错误: 您应该使用整数作为函数的reservedConcurrency值 resources: Conditions: IsProduction: Fn::Equals: - ${self:provider.stage} - p

我正在为lambda函数编写一个无服务器的yaml。我需要一个条件参数
reservedConcurrency
,如果IsProduction为true,则为100,如果为false,则为20。但在部署yaml文件时发生错误:
您应该使用整数作为函数的reservedConcurrency值

resources:
  Conditions:
    IsProduction:
      Fn::Equals:
        - ${self:provider.stage}
        - production

functions:  
  somefunction:
    handler: functions/somefunction
    timeout: 300
    events:
      - sqs:
          arn:
            Fn::GetAtt: [ somequeue, Arn ]
          batchSize: 10
    reservedConcurrency:
      Fn::If:
        - IsProduction
        - 100
        - 20

不能在
serverless.yml
文件中的
functions
块中使用Cloudformation内部函数

相反,尝试使用


我知道这有点傻,但你试过Fn::If:[IsProduction,100,20]?@congbauguier-Yep,试过了。相同错误。请提供AWS Lambda函数的完整正确定义(例如,您的密钥当前错误)。另外,添加
IsProduction
条件的定义将有助于提供完整的示例。@请添加
IsProduction
,以供参考。该部件已经在其他配置中进行了测试,因此,不用担心。你认为哪个键是错的?例如,你的键的大小写是错的。我建议您使用类似的工具来验证您的模板是否有效。
custom:
  concurrency:
    prod: 100

functions:  
  somefunction:
    handler: functions/somefunction
    timeout: 300
    events:
      - sqs:
          arn:
            Fn::GetAtt: [ somequeue, Arn ]
          batchSize: 10
    reservedConcurrency: ${self:custom.concurrency.${self:provider.stage}, 20}