Aan de slag met Ruby

Deze tutorial is bedoeld voor gebruikers die nog nooit apps in de cloud hebben ontworpen, zoals technici en webontwikkelaars die de belangrijkste concepten willen leren om apps te ontwikkelen met Google Cloud.

Doelen

Bekijk de volgende gidsen voor andere taalspecifieke tutorials om zelf apps te ontwerpen:

Kosten

This tutorial uses the following billable components of Google Cloud:

The tutorial is designed to keep your resource usage within the limits of Google Cloud's Always Free tier. To generate a cost estimate based on your projected usage, use the pricing calculator. New Google Cloud users might be eligible for a free trial.

When you finish this tutorial, you can avoid continued billing by deleting the resources you created. For more information, see Cleaning up.

Voordat u begint

  1. Sign in to your Google Account.

    If you don't already have one, sign up for a new account.

  2. In the Cloud Console, on the project selector page, select or create a Cloud project.

    Go to the project selector page

  3. Zorg dat facturering is ingeschakeld voor uw project.

    Meer informatie over het inschakelen van facturering

  4. Voer de volgende stappen uit om een Firestore-database te maken in Systeemeigen modus:
    1. Ga in de Cloud Console naar de pagina Firestore-viewer.
      Naar Firestore-viewer
    2. Klik in het scherm Een Firestore-modus selecteren op Systeemeigen modus selecteren.
    3. Selecteer een locatie voor uw Firestore-database. Deze locatie-instelling is de standaardlocatie van Google Cloud-resources voor uw Cloud-project. Deze locatie wordt gebruikt voor Google Cloud-services in uw Cloud-project waarvoor een locatie-instelling vereist is. Dit zijn uw standaard Cloud Storage-bucket en uw App Engine-app.
    4. Klik op Database maken.
  5. Enable the App Engine Admin, Cloud Storage, Cloud Logging, and Error Reporting APIs.

    Enable the APIs

  6. Open de broncode van de app in Cloud Shell.
    Naar Cloud Shell

    In Cloud Shell heeft u rechtstreeks vanuit uw browser opdrachtregeltoegang tot uw cloudresources.

  7. Klik op Doorgaan om de voorbeeldcode te downloaden en te wijzigen in de app-directory.
  8. Configureer de gcloud-tool in Cloud Shell om uw nieuwe Google Cloud-project te gebruiken:

        # Configure gcloud for your project
        gcloud config set project PROJECT_ID
        

    Vervang PROJECT_ID door de ID van het Google Cloud-project dat u met de Cloud Console heeft gemaakt.

    De gcloud-opdrachtregeltool is de belangrijkste manier om via de opdrachtregel met uw Google Cloud-resources te communiceren. In deze tutorial gebruikt u de tool gcloud om uw app te implementeren en te controleren.

Uw app uitvoeren

  1. Installeer de app-afhankelijkheden met bundler:

    bundle install
        

  2. Voer de Rails-server uit:
        GOOGLE_CLOUD_PROJECT=PROJECT_ID bundle exec rails server -p 8080
        
    Vervang PROJECT_ID door de ID van het Google Cloud-project dat u heeft gemaakt.
  3. Klik in Cloud Shell op Voorbeeld op het web en selecteer Voorbeeld op poort 8080. Uw app wordt uitgevoerd in een nieuw venster.

Uw app implementeren in App Engine

Google Cloud biedt verschillende mogelijkheden om uw code uit te voeren. In dit voorbeeld gebruikt u App Engine om een schaalbare app in Google Cloud te implementeren. Met App Engine heeft u geen overhead van configuratie-implementaties en serverbeheer, zodat u zich helemaal kunt concentreren op het schrijven van code. Bovendien wordt App Engine automatisch geschaald bij onverwachte pieken in het verkeer.

Het bestand app.yaml is uw primaire configuratiebestand voor de implementatie in App Engine:

runtime: ruby25
    entrypoint: bundle exec rackup -p $PORT
    instance_class: F2
  1. Implementeer de app via uw terminalvenster in App Engine met de tool gcloud:

        # on the command-line
        gcloud app deploy
        

  2. Voer de volgende URL in uw webbrowser in:

    https://PROJECT_ID.REGION_ID.r.appspot.com

    Vervang het volgende:

    Homepage van Bookshelf-app

Ga naar de Ruby 2.5 runtime-omgeving voor meer informatie over hoe u apps in App Engine implementeert.

Uw gegevens opslaan met Firestore

U kunt geen informatie op uw App Engine-instanties opslaan, omdat de informatie verloren gaat wanneer u de instantie herstart. Als u een nieuwe instantie maakt, bestaat er helemaal geen informatie. In plaats daarvan gebruikt u een database waarin al uw instanties informatie schrijven en lezen.

Google Cloud biedt verschillende mogelijkheden om uw gegevens op te slaan. In dit voorbeeld slaat u de gegevens voor elk boek op in Firestore. Firestore is een volledig beheerde, serverloze NoSQL-documentendatabase waarin u gegevens kunt opslaan en opzoeken. Firestore schaalt automatisch om zich aan de behoeften van uw app aan te passen en schaalt naar nul als u de app niet gebruikt. Voeg nu uw eerste boek toe.

  1. Voer de volgende URL in uw webbrowser in:

    https://PROJECT_ID.REGION_ID.r.appspot.com

    Vervang het volgende:

  2. Klik op Boek toevoegen om een boek voor uw geïmplementeerde app te maken.

    Een boek aan de Bookshelf-app toevoegen
  3. Vul in het veld Titel Moby Dick in.
  4. Vul in het veld Auteur Herman Melville in.
  5. Klik op Opslaan. Nu staat er een item in uw Bookshelf-app.

    Moby Dick-item in Bookshelf-app
  6. Klik in de Cloud Console op Vernieuwen om de Firestore-pagina te vernieuwen. De gegevens verschijnen in Firestore. De Bookshelf-app slaat elk boek op als een Firestore-document met een unieke ID. Al deze documenten worden opgeslagen in een Firestore-collectie. In deze tutorial noemen we deze collectie 'boeken'. Voorbeeld van een Firestore-document.

Firestore gebruikt de Firestore-clientbibliotheek om boeken op te slaan. In dit voorbeeld ziet u hoe u een Firestore-document ophaalt:

require "google/cloud/firestore"
    firestore = Google::Cloud::Firestore.new project_id: project_id
    @collection = firestore.col "books"
book_snapshot = collection.doc(id).get
    Book.from_snapspot book_snapshot if book_snapshot.data

Lees voor meer informatie over het gebruik van Firestore Gegevens toevoegen aan Firestore.

Geüploade bestanden opslaan in Cloud Storage

Nu u een boek heeft toegevoegd, is het tijd om de bijbehorende omslagafbeelding toe te voegen. U kunt geen bestanden op uw instanties opslaan. Een database is niet de juiste keuze voor afbeeldingsbestanden. Gebruik in plaats daarvan Cloud Storage.

Cloud Storage is de primaire opslagplaats voor blobs in Google Cloud. U kunt Cloud Storage gebruiken om app-items te hosten die u wilt delen in Google Cloud. Als u Cloud Storage wilt gebruiken, moet u een Cloud Storage-bucket maken. Dit is een basiscontainer waarin uw gegevens worden opgeslagen.

  1. Ga in de Cloud Console naar de Cloud Storage-browserpagina.

    Naar de Cloud Storage-browserpagina

  2. Klik op Bucket maken.
  3. Geef in het dialoogvenster Bucket maken een naam voor uw bucket op door de ID van uw Google Cloud-project achter aan de tekenreeks _bucket te zetten, zodat de naam eruitziet als YOUR_PROJECT_ID_bucket. De naam moet voldoen aan de vereisten voor bucketnamen. In alle andere velden mag de standaardwaarde blijven staan.
  4. Klik op Maken.
  5. Nadat u uw bucket heeft gemaakt, klikt u op Boek bewerken en selecteert u een afbeelding die u als boekomslag wilt uploaden. Gebruik bijvoorbeeld deze afbeelding uit het publieke domein:
    Moby Dick-boekomslag
  6. Klik op Opslaan. U wordt omgeleid naar de homepage. Nu staat er een item in uw Bookshelf-app.
    Moby Dick-item in Bookshelf-app

De Bookshelf-app stuurt geüploade bestanden naar Cloud Storage via de Cloud Storage-clientbibliotheek.

require "google/cloud/storage"
    bucket_id = project_id + "_bucket"
    storage = Google::Cloud::Storage.new project_id: config["project_id"],
                                         credentials: config["keyfile"]
    bucket = storage.bucket bucket_id

Bekijk de handleidingenlijst voor meer informatie over hoe u Cloud Storage gebruikt.

Uw app controleren met de operationele producten van Google Cloud

U heeft uw app geïmplementeerd en boeken gemaakt en aangepast. Gebruik App-prestatiebeheer om deze gebeurtenissen voor uw gebruikers te controleren.

Logboeken controleren met Cloud Logging

Cloud Console

  1. Ga in uw browser naar de /logs-URL in uw app:

    https://PROJECT_ID.REGION_ID.r.appspot.com/logs

    Hiermee wordt een aangepast item naar Cloud Logging gestuurd. Het item heeft NOTICE als ernstniveau van het logboek en bevat het bericht 'Hallo, u heeft een aangepast logboekitem getriggerd. Goed gedaan.'

  2. Ga naar de logboekviewer. Hier kunt u uw app in realtime controleren. Als er iets fout gaat, is dit een van de eerste plaatsen die u moet nakijken.
    Cloud Logging-logboekviewer
  3. Open het dropdownmenu met resources en selecteer GAE Application.
  4. Selecteer Alle logboeken in het dropdownmenu met logboeken.

    Er staat een rij voor uw aangepaste logboekitem.

    Item in logboekviewer

gcloud

  1. Open uw terminalvenster en gebruik de gcloud-opdrachtregeltool om uw app-logboeken te controleren door te luisteren naar nieuwe logboekitems:

    gcloud app logs tail

  2. Ga in uw browser naar de /logs-URL in uw app:

    https://PROJECT_ID.REGION_ID.r.appspot.com/logs

    Hiermee wordt een aangepast item naar Cloud Logging gestuurd. Het item heeft NOTICE als ernstniveau van het logboek en bevat het bericht 'Hallo, u heeft een aangepast logboekitem getriggerd. Goed gedaan.'

    De uitvoer van de gcloud-opdracht geeft het nieuwe logboekitem weer:

        Waiting for new log entries...
        2019-03-27 22:17:01 default[20190327t151430]  "Hey, you triggered a custom log entry. Good job!"
        

Error Reporting gebruiken om fouten te controleren

  1. Ga in de Cloud Console naar de pagina Error Reporting.
    Naar de pagina Error Reporting
    In Error Reporting ziet u eventuele fouten en excepties in uw app en kunt u hiervoor waarschuwingen instellen.
  2. Ga in uw browser naar de /errors-URL in uw app.
    https://PROJECT_ID.REGION_ID.r.appspot.com/errors

    Hiermee wordt een nieuwe testexceptie gegenereerd die naar de operationele producten van Google Cloud verstuurd.

  3. Ga in de Cloud Console terug naar de pagina Error Reporting. Hier verschijnt binnen enkele ogenblikken de nieuwe fout. Klik op Automatisch opnieuw laden om de pagina niet handmatig te hoeven vernieuwen.

    Foutmelding uit Error Reporting.

Opschonen

Doe het volgende om te voorkomen dat er kosten in rekening worden gebracht op uw Google Cloud Platform-account voor de resources die in deze tutorial zijn gebruikt:

Verwijder het project

  1. In the Cloud Console, go to the Manage resources page.

    Go to the Manage resources page

  2. In the project list, select the project that you want to delete and then click Delete .
  3. In the dialog, type the project ID and then click Shut down to delete the project.

Volgende stappen