简体   繁体   English

CloudFormation - 无法创建 Lambda 函数

[英]CloudFormation - not able to create Lambda Function

I am trying to create a Lambda Function and Lambda TriggeronSQS.我正在尝试创建一个 Lambda 函数和 Lambda TriggeronSQS。 Following is my cloud Formation template -以下是我的云编队模板 -

Template模板

{
"AWSTemplateFormatVersion": "2010-09-09",
"Resources": {
    "myfunction": {
        "Type": "AWS::Lambda::Function",
        "Properties": {
            "Runtime": "java8",
            "Role": "arn:aws:iam::219560220147:role/test@123",
            "Code": {
                "S3Bucket": "lambdacode1234",
                "S3Key": "code.jar"
            },
            "MemorySize": 256,
            "Handler": "com.test.MyHandler",
            "Timeout": 25
        },
        "Metadata": {
            "AWS::CloudFormation::Designer": {
                "id": "63dae6c8-ebdb-459b-88db-02ad5dae294a"
            }
        }
    },
    "LESM34AJN": {
        "Type": "AWS::Lambda::EventSourceMapping",
        "Properties": {
            "EventSourceArn":"  arn:aws:sqs:ap-south-1:219560220147:testlambda",
            "FunctionName": {
        "Fn::GetAtt": [
            "myfunction",
            "Arn"
        ]
    },
            "BatchSize" : 1,
            "Enabled" : "TRUE"
        },
        "Metadata": {
            "AWS::CloudFormation::Designer": {
                "id": "26a65289-5f1e-41db-b94d-812d2340c945"
            }
        }
    }
},
"Mappings": {
    "RegionCodeMapping": {
        "us-east-1": {
            "regionCode": "US"
        },
        "us-west-2": {
            "regionCode": "FE"
        },
        "eu-west-1": {
            "regionCode": "EU"
        }
    }
},
"Parameters": {
    "teamname": {
        "Description": "Enter Name TeamName",
        "Type": "String",
        "AllowedPattern": "^[a-z0-9-]*$"
    },
    "env": {
        "Description": "Enter Envirment type e.g. dev,test,prod",
        "Type": "String",
        "AllowedValues": [
            "devo",
            "test",
            "prod"
        ]
    },
    "sqsARNtoTriggerLambda": {
        "Type": "String"
    },
    "codeFile": {
        "Type": "String"
    }
},
"Outputs": {
    "LambdaFunctionARN": {
        "Description": "ARN of Lambda Function",
        "Value": {
            "Fn::GetAtt": [
                "myfunction",
                "Arn"
            ]
        }
    }
}

} }

ERROR错误

I tried creating stack via AWS Console, but receiving below error for SQS policy creation我尝试通过 AWS 控制台创建堆栈,但收到以下 SQS 策略创建错误

1 validation error detected: Value ' arn:aws:sqs:ap-south-1:219560220147:testlambda' at 'eventSourceArn' failed to satisfy constraint: Member must satisfy regular expression pattern: arn:(aws[a-zA-Z0-9-] ):([a-zA-Z0-9-])+:([az]{2}((-gov)|(-iso(b?)))?-[az]+-\\d{1})?:(\\d{12})?:(. ) (Service: AWSLambda; Status Code: 400; Error Code: ValidationException; Request ID: 9a86cb1e-49e4-490d-9e48-fd93aa8d81dd)检测到 1 个验证错误:值 'arn:aws:sqs:ap-south-1:219560220147:testlambda' at 'eventSourceArn' 未能满足约束:成员必须满足正则表达式模式:arn:(aws[a-zA-Z0- 9-] ):([a-zA-Z0-9-])+:([az]{2}((-gov)|(-iso(b?)))?-[az]+-\\d {1})?:(\\d{12})?:(. )(服务:AWSLambda;状态代码:400;错误代码:ValidationException;请求 ID:9a86cb1e-49e4-490d-9e48-fd93aa8d81dd)

CloudFormation Console Error CloudFormation 控制台错误

I have referred the documentation but can't figure out what the problem is?我已经参考了文档,但无法弄清楚问题是什么? Any ideas what is wrong here?任何想法这里有什么问题?

Remove spaces from EventSourceArn .EventSourceArn删除空格。

Change改变

"LESM34AJN": {
    "Type": "AWS::Lambda::EventSourceMapping",
    "Properties": {
        "EventSourceArn":"  arn:aws:sqs:ap-south-1:219560220147:testlambda",
        "FunctionName": {
    "Fn::GetAtt": [
        "myfunction",
        "Arn"
    ]
},

To

"LESM34AJN": {
    "Type": "AWS::Lambda::EventSourceMapping",
    "Properties": {
        "EventSourceArn":"arn:aws:sqs:ap-south-1:219560220147:testlambda",
        "FunctionName": {
    "Fn::GetAtt": [
        "myfunction",
        "Arn"
    ]
},

在此处输入图片说明

From here 从这里

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM