Legen Sie den Google Cloud-Dienstkontoschlüssel in Heroku fest

Einführung

Ich bin ein Rails-Anfänger und erstelle mit Ruby on Rails ein Portfolio. Zuvor habe ich im folgenden Artikel eine einfache Bildanalyse mithilfe der Google Cloud Vision-API implementiert.

Erhalten Sie Datenbeschriftungen, indem Sie bei der Vorschau von Bildern mit Rails eine Verknüpfung mit der Google Cloud Vision-API herstellen

** startet jedoch nicht gut in der Heroku-Produktionsumgebung ... (+ +) ** Ich wusste, dass die Authentifizierung wahrscheinlich nicht gut funktionierte, aber es dauerte unerwartet lange, bis sie behoben war. Deshalb werde ich sie als Memorandum belassen.

Ursache

Ich benutze Git, wenn ich verschiedene Programmdateien in Heroku lege.

terminal


git push heroku master

Mit anderen Worten, es schiebt die gleichen Informationen wie Github auf die Heroku-Seite. Da es so eingestellt ist, dass keine Dateien mit Schlüsselinformationen auf github (.gitignore) hochgeladen werden, werden Dateien mit Schlüsselinformationen nicht auf heroku hochgeladen. Infolgedessen wurde die JSON-Datei mit dem Dienstkontoschlüssel, die für die Verbindung mit der Google Cloud Vision-API erforderlich ist, nicht auf die Heroku-Seite gestellt.

Dieses Mal werden wir uns diese Methode zum erfolgreichen Übergeben von Informationen ansehen.

Lösung

Dieses Mal werden wir es als Umgebungsvariable an Heroku übergeben und von dort aus aufrufen. Anstatt die Datei selbst in den Heroku-Container zu legen, legen Sie die erforderlichen Schlüsselinformationen in einer Variablen fest.

Heroku-Einstellungen

  1. Greifen Sie auf Heroku zu Greifen Sie zuerst auf den Heroku-Bildschirm zu und wählen Sie die App aus, die Sie einstellen möchten.

  2. Zugriff auf Einstellungen Klicken Sie auf die Registerkarte Einstellungen im Bildschirm

  3. Klicken Sie auf Config Vars anzeigen Klicken Sie in den Einstellungen auf die Schaltfläche Config Vars anzeigen スクリーンショット 2020-10-14 17.43.29.png

  4. Legen Sie Umgebungsvariablen fest Wenn Sie die Taste 3 drücken, werden die eingestellten Umgebungsvariablen angezeigt, sodass dort eine neue angezeigt wird. Kopieren und registrieren Sie "GOOGLE_CREDENTIALS" (jede Zeichenfolge ist in Ordnung) und alles in der Schlüsseldatei des Dienstkontos.

  5. Starten Sie Heroku neu Starten Sie nach dem Festlegen der Umgebungsvariablen mit "heroku restart" neu

Controller-Einstellungen

Wir werden den Controller auch entsprechend einstellen.

XXXX_controller.rb


:
    #Vision API-Einstellungen
    if Rails.env.production?
      config.credentials = JSON.parse(ENV.fetch('GOOGLE_CREDENTIALS'))
    else
      config.credentials = ENV["GOOGLE_APPLICATION_CREDENTIALS"]
    end
:

Dieses Mal erhalten Sie im Fall der Produktionsumgebung die Umgebungsvariable, die in heroku und festgelegt ist Geändert, um in der Konfiguration als JSON-Datei festgelegt zu werden.

Jetzt können Sie die Google Cloud Vision-API auf heroku verwenden!

Am Ende

Trotz der einfachen Einstellungen hat es lange gedauert ... Überprüfen Sie das Protokoll von Heroku sorgfältig. Wenn die Protokollinformationen nicht ausreichen, Sie können es sehen, indem Sie die folgenden Einstellungen vornehmen und die detaillierten Informationen überprüfen. https://qiita.com/YujiNaito/items/3102ad59124d38433b2e

Ich mache mir auch Sorgen, ob es die richtige Antwort ist, dies mit dieser Umgebungsvariablen zu tun ... Ist es für die Sicherheit in Ordnung? Es scheint einen besseren Weg zu geben ... Es gibt einen besseren Weg als diesen! Wenn Sie Fragen haben, können Sie diese gerne kommentieren.

Recommended Posts

Legen Sie den Google Cloud-Dienstkontoschlüssel in Heroku fest
Richten Sie eine Python-Entwicklungsumgebung auf Marvericks ein
Richten Sie einen einfachen lokalen Server auf Ihrem Mac ein
Richten Sie in 30 Minuten einen kostenlosen Server unter AWS ein
[Teil 1] Lassen Sie uns einen Micra-Server unter Linux einrichten
Verwenden Sie den Schlüssel P12 des Dienstkontos mit dev_appserver des GAE SDK
Richten Sie Python 3.4 unter Ubuntu ein
Greifen Sie über Python (boto) mit dem Dienstkonto und der Schlüsseldatei auf Google Cloud Storage zu (S. 12).
Richten Sie Polyglot unter Windows ein
ACME mit Alibaba Cloud verschlüsseln: Kontoschlüssel, Zertifikatschlüssel, Zertifikatsignierungsanforderung erstellen
Richten Sie mit Tensorflow einen Knoten für MNIST auf ROS ein
Erstellen Sie einen SlackBot-Dienst für Pepper
Richten Sie die Python-Umgebung unter CentOS ein
So richten Sie ein Jupyter-Notebook am SSH-Ziel ein (AWS EC2)
Richten Sie mit Docker einen Samba-Server ein
Machen Sie Unity Accelerator zu einem Dienst unter Linux
Richten Sie mit Twisted einen Mailserver ein
Erstellen Sie eine Python + OpenCV-Umgebung in Cloud9