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  ```