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.
** 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.
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.
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.
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.
Zugriff auf Einstellungen Klicken Sie auf die Registerkarte Einstellungen im Bildschirm
Klicken Sie auf Config Vars anzeigen Klicken Sie in den Einstellungen auf die Schaltfläche Config Vars anzeigen
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.
Starten Sie Heroku neu Starten Sie nach dem Festlegen der Umgebungsvariablen mit "heroku restart" neu
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!
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