github.com/mweagle/Sparta@v1.15.0/docs_source/content/reference/decorators/publish_outputs.md (about) 1 --- 2 date: 2018-01-22 21:49:38 3 title: Publishing Outputs 4 weight: 10 5 alwaysopen: false 6 --- 7 8 CloudFormation stack [outputs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/outputs-section-structure.html) can be used to advertise information about a service. 9 10 Sparta provides different publishing output decorators depending on the type of CloudFormation [resource output](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/walkthrough-crossstackref.html): 11 12 - `Ref`: [PublishRefOutputDecorator](https://godoc.org/github.com/mweagle/Sparta/decorator#PublishRefOutputDecorator) 13 - `Fn::Att`: [PublishAttOutputDecorator](https://godoc.org/github.com/mweagle/Sparta/decorator#PublishAttOutputDecorator) 14 15 ## Publishing Resource Ref Values 16 17 For example, to publish the dynamically lambda resource name for a given AWS Lambda function, use 18 [PublishRefOutputDecorator](https://godoc.org/github.com/mweagle/Sparta/decorator#PublishRefOutputDecorator) 19 such as: 20 21 ```go 22 23 lambdaFunctionName := "Hello World" 24 lambdaFn, _ := sparta.NewAWSLambda(lambdaFunctionName, 25 helloWorld, 26 sparta.IAMRoleDefinition{}) 27 28 lambdaFn.Decorators = append(lambdaFn.Decorators, 29 spartaDecorators.PublishRefOutputDecorator(fmt.Sprintf("%s FunctionName", lambdaFunctionName), 30 fmt.Sprintf("%s Lambda ARN", lambdaFunctionName))) 31 } 32 ``` 33 34 35 ## Publishing Resource Att Values 36 37 For example, to publish the dynamically determined ARN for a given AWS Lambda function, use 38 [PublishAttOutputDecorator](https://godoc.org/github.com/mweagle/Sparta/decorator#PublishAttOutputDecorator) 39 such as: 40 41 ```go 42 lambdaFunctionName := "Hello World" 43 lambdaFn, _ := sparta.NewAWSLambda(lambdaFunctionName, 44 helloWorld, 45 sparta.IAMRoleDefinition{}) 46 47 lambdaFn.Decorators = append(lambdaFn.Decorators, 48 spartaDecorators.PublishAttOutputDecorator(fmt.Sprintf("%s FunctionARN", lambdaFunctionName), 49 fmt.Sprintf("%s Lambda ARN", lambdaFunctionName), "Arn")) 50 } 51 ```