首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >错误解析参数‘--参数’:预期:'=',接收到:'P‘

错误解析参数‘--参数’:预期:'=',接收到:'P‘
EN

Stack Overflow用户
提问于 2019-09-02 05:51:45
回答 1查看 5.8K关注 0票数 3

我正在与aws cli cloudformation合作。在使用JSON参数文件和yml模板时,我一直收到错误。我尝试使用堆栈以及更改集。

代码语言:javascript
运行
复制
Error parsing parameter '--parameters': Expected: '=', received: 'P' for input: 
- ParameterKey: FunctionName 
  ^ 
  ParameterValue: taskaplambda 
- ParameterKey: MemorySize 
  ParameterValue: 512 
- ParameterKey: Timeout 
  ParameterValue: 5 

我的命令是:

代码语言:javascript
运行
复制
aws cloudformation update-stack --stack-name apstack --template-body file://templates/cflambdatemplate.yaml --parameters file://params/param.json

我的param.json是:

代码语言:javascript
运行
复制
[
    {
        "ParameterKey": "FunctionName",
        "ParameterValue": "taskaplambda"
    },
    {
        "ParameterKey": "MemorySize",
        "ParameterValue": 512
    },
    {
        "ParameterKey": "Timeout",
        "ParameterValue": 5
    }
]

这是我的YAML文件

cflambdatemplate.yaml

代码语言:javascript
运行
复制
Transform: AWS::Serverless-2016-10-31
Resources:
  tasklambda:
    Type: AWS::Serverless::Function
    Properties:
      FunctionName: !Ref FunctionName
      Handler: lambda_function.lambda_handler
      MemorySize: !Ref MemorySize
      Role:
        Fn::GetAtt: 
          - "tasklambdarole"
          - "Arn"
      Runtime: python3.7
      Timeout: !Ref Timeout
      CodeUri: 
        Bucket: taskapbucket
        Key: apbuild/lambda_function.zip

  tasklambdarole:
    Type: "AWS::IAM::Role"
    Properties: 
      AssumeRolePolicyDocument: 
        Version: "2012-10-17"
        Statement: 
          - 
            Effect: "Allow"
            Principal: 
              Service: 
                - "lambda.amazonaws.com"
            Action: 
              - "sts:AssumeRole"
      Path: "/"
  taskPolicies: 
    Type: "AWS::IAM::Policy"
    Properties: 
      PolicyName: "root"
      PolicyDocument: 
        Version: "2012-10-17"
        Statement: 
          - 
            Effect: "Allow"
            Action: "*"
            Resource: "*"
      Roles: 
        - 
          Ref: "tasklambdarole"

Parameters:
  FunctionName:
    Type: String
    MinLength: '3'
    MaxLength: '18'
  MemorySize:
    Type: Number
    MinValue: '128'
    MaxValue: '1024'
  Timeout:
    Type: Number
    MinValue: '1'
    MaxValue: '15'

我一直在尝试这一切的可能性,但它总是给我一个错误。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-09-02 06:59:55

只需通过aws创建所需的一切:

我使用的是相同的yaml文件和参数的json模板,没有任何错误。下面是我在param.json中所做的唯一更改:

代码语言:javascript
运行
复制
[
    {
        "ParameterKey": "FunctionName",
        "ParameterValue": "taskaplambda"
    },
    {
        "ParameterKey": "MemorySize",
        "ParameterValue": "512"
    },
    {
        "ParameterKey": "Timeout",
        "ParameterValue": "5"
    }
]

您需要将Number转换为 string ,这是因为CloudFormation参数类型不映射到JSON类型,因此CLI希望将所有内容都作为字符串传递。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57751982

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档