func LimitUsage()

in code/function/function.go [50:77]


func LimitUsage(ctx context.Context, m PubSubMessage) error {
	project := os.Getenv("GOOGLE_CLOUD_PROJECT")
	label := os.Getenv("LABEL")

	over, err := budgetCheckbudgetExceeded(m)
	if err != nil {
		return fmt.Errorf("cannot properly check the budget: %s", err)
	}

	if !over {
		fmt.Println("Underbudget, no action needed.")
		return nil
	}
	fmt.Println("Overbudget, stopping VMs.")

	if err := manageRun(ctx, project, label); err != nil {
		return fmt.Errorf("cannot manage Cloud Run Services: %s", err)
	}

	fmt.Printf("Cost Sentry managed Cloud Run Services\n")

	if err := manageCompute(ctx, project, label); err != nil {
		return fmt.Errorf("cannot manage Cloud Run Services: %s", err)
	}

	fmt.Printf("Cost Sentry managed Compute Engine instances\n")
	return nil
}