code: func StackExists(stackNameOrID string, awsSession *session.Session, logger *logrus.Logger) (bool, error) {
  	cf := cloudformation.New(awsSession)
  
  	describeStacksInput := &cloudformation.DescribeStacksInput{
  		StackName: aws.String(stackNameOrID),
  	}
  	describeStacksOutput, err := cf.DescribeStacks(describeStacksInput)
  	logger.WithFields(logrus.Fields{
  		"DescribeStackOutput": describeStacksOutput,
  	}).Debug("DescribeStackOutput results")
  
  	exists := false
  	if err != nil {
  		logger.WithFields(logrus.Fields{
  			"DescribeStackOutputError": err,
  		}).Debug("DescribeStackOutput")
  
  		// If the stack doesn't exist, then no worries
  		if strings.Contains(err.Error(), "does not exist") {
  			exists = false
  		} else {
  			return false, err
  		}
  	} else {
  		exists = true
  	}
  	return exists, nil
  }
docs: // StackExists returns whether the given stackName or stackID currently exists