Gestisci i costi di App Engine

Con App Engine, paghi solo per le risorse che utilizzi oltre quote gratuite. Una volta superate le quote gratuite, i costi e scalare in base alla quantità di traffico ricevuta dall'applicazione.

Per limitare i costi della tua app App Engine, puoi utilizzare uno qualsiasi dei i seguenti meccanismi:

  • Specifica il numero massimo di istanze
  • Crea avvisi relativi al budget
  • Disattivare l'app manualmente
  • Disattivare l'app in modo programmatico

Specifica il numero massimo di istanze

Poiché i costi di App Engine di solito scalano in base alla quantità di traffico riceve l'app, puoi limitare i costi limitando numero di istanze che può creare con App Engine.

L'impostazione del massimo di 1 istanza in genere mantiene l'utilizzo delle ore di istanza entro il livello gratuito. Tuttavia, l'impostazione di un valore massimo troppo basso potrebbe impedire all'app di avere istanze sufficienti per gestire in modo adeguato le richieste in entrata.

Per specificare il numero massimo di istanze, utilizza max_instances impostazione nel file app.yaml dell'app.

Crea avvisi relativi al budget

Gli avvisi relativi al budget inviano una notifica quando i costi superano una determinata soglia specificare. Quando ricevi una notifica, puoi limitare i costi riducendo il dell'impostazione max_instances o disabilitare l'app.

Per iniziare a utilizzare gli avvisi relativi al budget, consulta Impostare gli avvisi relativi al budget.

Seleziona l'ambito di un avviso relativo al budget

Puoi creare avvisi relativi al budget per il costo totale di tutti i servizi Google Cloud in uno o più progetti o solo per i costi di App Engine.

Per creare un avviso relativo al budget solo per i costi relativi a App Engine, nel campo Prodotti dell'avviso relativo al budget, seleziona App Engine. L'avviso verrà attivato quando il costo totale di tutte le risorse App Engine superare l'importo specificato, tra cui:

  • Ore di istanza nell'ambiente standard di App Engine
  • Ore di istanza e RAM nell'ambiente flessibile di App Engine
  • Servizi App Engine in bundle

Per l'elenco completo delle risorse App Engine fatturabili, consulta SKU di App Engine.

Disattivare l'app manualmente

Se disabiliti la tua app, la sua pubblicazione verrà interrotta temporaneamente e non verrà applicata la fatturazione addebiti relativi alla pubblicazione dell'app. Tutti i dati e la configurazione dell'app rimangono invariate e quando tutto è pronto per iniziare a eseguire l'app puoi abilitarla di nuovo.

Mentre l'app è disattivata, le richieste all'app non andranno a buon fine. Puoi continuare comportano addebiti da altri prodotti Google Cloud. Ad esempio, se il tuo progetto abbia superato la quota gratuita di Cloud Storage, continuerai a utilizzare potrebbe comportare dei costi per l'archiviazione.

Per ulteriori informazioni, vedi Disattivare un'app.

Disattivare l'app in modo programmatico

Puoi usare avvisi relativi al budget, Pub/Sub e Cloud Functions per disattivare automaticamente la tua app quando i costi superano una soglia da te specificata.

Come per la disattivazione manuale di un'app:

  • Tutti i dati e le impostazioni di configurazione dell'app rimangono invariati.
  • Quando vuoi ricominciare a eseguire l'app, puoi abilitarla.
  • Le richieste alla tua app non andranno a buon fine mentre l'app è disattivata.
  • Potresti continuare a ricevere addebiti da altri prodotti Google Cloud mentre l'app è disabilitata.

Per disattivare la tua app in modo programmatico:

  1. Crea un avviso relativo al budget che invii una notifica a Pub/Sub per ogni argomento. Per maggiori dettagli, consulta Gestire la pubblicità programmatica notifiche.

    Per creare un avviso relativo al budget solo per i costi di App Engine, nel Nel campo Prodotti del budget, seleziona App Engine. Per informazioni sui le risorse che possono attivare l'avviso, consulta Crea avvisi relativi al budget.

  2. In Cloud Functions crea una funzione che viene attivata dal Pub/Sub. Per maggiori dettagli, consulta Creare un cluster Funzione.

    Quando crei la funzione:

    1. Utilizza il seguente codice sorgente:

      import base64
      import json
      import os
      
      from googleapiclient import discovery
      
      APP_NAME = os.getenv("GCP_PROJECT")
      
      
      def limit_use_appengine(data, context):
          pubsub_data = base64.b64decode(data["data"]).decode("utf-8")
          pubsub_json = json.loads(pubsub_data)
          cost_amount = pubsub_json["costAmount"]
          budget_amount = pubsub_json["budgetAmount"]
          if cost_amount <= budget_amount:
              print(f"No action necessary. (Current cost: {cost_amount})")
              return
      
          appengine = discovery.build("appengine", "v1", cache_discovery=False)
          apps = appengine.apps()
      
          # Get the target app's serving status
          target_app = apps.get(appsId=APP_NAME).execute()
          current_status = target_app["servingStatus"]
      
          # Disable target app, if necessary
          if current_status == "SERVING":
              print(f"Attempting to disable app {APP_NAME}...")
              body = {"servingStatus": "USER_DISABLED"}
              apps.patch(appsId=APP_NAME, updateMask="serving_status", body=body).execute()
      
      
    2. Aggiungi le seguenti dipendenze al file requirements.txt della funzione:

      google-api-python-client==2.131.0
    3. In Funzione da eseguire, inserisci limit_use_appengine.

    4. Fai clic su Variabili di ambiente, networking, timeout e altro ancora.

    5. Seleziona un account di servizio con il ruolo Amministratore App Engine. Il servizio predefinito di App Engine account ha questo ruolo per impostazione predefinita.

  3. Testa la funzione.

Quando viene attivato l'avviso relativo al budget, viene inviata un'email agli utenti nel tuo account di fatturazione Cloud e la funzione avvia la disattivazione dell'app. Il completamento potrebbe richiedere alcuni minuti questo processo.

Per verificare che la funzione sia stata eseguita correttamente, visualizza l'App Engine Fitbit.com. Nella parte superiore viene visualizzato un messaggio che indica che l'app è disattivata.

Vai alla dashboard di App Engine

Se vuoi che la tua app continui a gestire le richieste, vai a Impostazioni applicazione e fai clic su Attiva applicazione.

Vai a Impostazioni applicazione