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
}