Ich versuche CloudFormation zu verwenden, um einen S3-Bucket bereitzustellen, der auf ObjectCreate
eine Lambda-Funktion aufruft.Cloud-Bildung: S3 mit Lambda verknüpft gibt Die ARN ist nicht wohlgeformt
Hier sind meine Ressourcen:
"ExampleFunction": {
"Type": "AWS::Lambda::Function",
"Properties": {
"Handler": "index.lambda_handler",
"Code": {
"S3Bucket": "bucketname",
"S3Key": "something.zip"
},
"Runtime": "python3.6",
"Role": {
"Fn::GetAtt": [
"LambdaExecutionRole",
"Arn"
]
}
}
},
"InputDataBucket": {
"Type": "AWS::S3::Bucket",
"Properties": {
"BucketName": "input-data",
"NotificationConfiguration": {
"LambdaConfigurations": [
{
"Function": {
"Ref": "ExampleFunction"
},
"Event": "s3:ObjectCreated:*",
"Filter": {
"S3Key": {
"Rules": [
{
"Name": "suffix",
"Value": "zip"
}
]
}
}
}
]
}
}
},
"LambdaInvokePermission": {
"Type": "AWS::Lambda::Permission",
"Properties": {
"Action": "lambda:InvokeFunction",
"FunctionName": {
"Fn::GetAtt": [
"ExampleFunction",
"Arn"
]
},
"Principal": "s3.amazonaws.com",
"SourceAccount": {
"Ref": "AWS::AccountId"
},
"SourceArn": {
"Fn::Join": [
":",
[
"arn",
"aws",
"s3",
"",
"",
{
"Ref": "InputDataBucket"
}
]
]
}
}
}
Ich habe versucht, die Dokumentation der Benachrichtigungskonfiguration zu folgen, die, dass es sagt, kann eine zirkuläre Abhängigkeit sein. Wenn ich jedoch den Anweisungen folge, bekomme ich den gleichen Fehler. Referenz: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-notificationconfig.html
Wenn ich versuche, den Stapel zu erstellen, die S3 bricht es immer mit Fehlern „Der ARN ist nicht wohlgeformt“
Ich habe viele Dinge ausprobiert, aber ich erhalte immer diese gleichen Fehler.
Erstellen Sie die S3-Bucket- und Lambda-Funktion allein in der anfänglichen CF-Erstellung, fügen Sie die NotificationConfiguration zur Vorlage hinzu und führen Sie schließlich eine CF-Aktualisierung durch? Verwenden Sie für die Berechtigung SourceArn einfach "Fn :: GetAtt": ["InputDataBucket", "Arn"]. – jarmod
Es gibt auch eine IAM-Rolle, aber sonst nichts. Ich habe versucht, die NotificationConf zu entfernen und es dann damit zu aktualisieren, aber ich erhalte immer noch den gleichen Fehler. – Miika