2017-08-08 3 views
0

Ich versuche, eine API auf Heroku zu hosten, alles läuft sehr reibungslos, aber ich kann das Setup nicht abschließen, da das Google Cloud Language API SDK den Pfad zu einer Datei benötigt Werte innerhalb der Datei.Hinzufügen von Google API-Keyfile zu Heroku

Ich habe erfolgreich Umgebungsvariablen für alle Dienste, die ich verwende, festgelegt. Ich habe versucht, den Inhalt der Datei in eine Umgebungsvariable hinzuzufügen:

heroku config:set GOOGLE_KEY_FILE={....}

arbeitet Dies gilt nicht, da es eine Filepath erwartet.

Kurz vor dem Commit der Datei, die ich natürlich nicht tun kann, wie bekomme ich die Datei in Herokus Dateisystem, so dass meine API es lesen kann?

Oder gibt es eine andere Art und Weise dies geschehen kann, läuft die folgende feine lokal, wenn es standardmäßig einen Dateipfad:

const initialiseLanguage = require('@google-cloud/language') 
const { 
    GOOGLE_PROJECT_ID: projectId, 
    GOOGLE_KEY_FILE: keyFilename = './side-project-xxxxxxxxx.json' 
} = process.env 

const language = initialiseLanguage({ 
    projectId, 
    keyFilename 
}) 

Vielen Dank im Voraus.

Antwort

1

In meiner Anwendung verwendet GCS Schlüsseldatei auch, und ich setzte auch die Schlüsseldatei JSON in eine Umgebungsvariable, so dass das, was ich tue:

const fs = require('fs'); 
const path = require('path'); 
const gTokenPath = path.join(`${__dirname}/gToken.json`); 
fs.writeFileSync(gTokenPath , process.env.GCS_JSON_TOKEN); 

const gcsKeyFile = JSON.parse(process.env.GCS_JSON_TOKEN); 

const language = initialiseLanguage({ 
    projectId: gcsKeyFile.project_id, 
    keyFilename: gTokenPath, 
}) 
Verwandte Themen