Ruby: Slapčių (aplinkos kintamųjų) tvarkymas
Ši dokumentacija yra Išplėstiniai naudojimo būdai vadovo dalis. Visą vadovą rasite čia: Toliau su jūsų Ruby diegimais.
👋 Sveiki atvykę į Stackhero dokumentaciją!
Stackhero siūlo paruoštą naudoti Ruby cloud sprendimą, kuris suteikia daugybę privalumų, įskaitant:
- Diekite savo aplikaciją per kelias sekundes naudodami paprastą
git push.- Naudokite savo domeno vardą ir pasinaudokite automatiniu HTTPS sertifikatų konfigūravimu didesniam saugumui.
- Būkite ramūs dėl automatinių atsarginių kopijų, atnaujinimų vienu paspaudimu ir aiškios, skaidrios bei prognozuojamos kainodaros.
- Pasiekite optimalią veikimo spartą ir tvirtą saugumą dėl privačios, dedikuotos infrastruktūros.
Taupykite laiką ir supaprastinkite savo darbą: išbandyti Stackhero Ruby cloud hosting sprendimą užtruks tik 5 minutes!
Tam tikru momentu jums reikės tvarkyti slapčius, tokius kaip tokenai ar slaptažodžiai duomenų bazėms ir trečiųjų šalių paslaugoms. Labai svarbu saugiai saugoti šiuos slapčius. Venkite tiesiogiai įterpti slapčius į savo saugyklą ar kodą, nes tai kelia rimtą saugumo riziką.
Aplinkos kintamieji siūlo du reikšmingus privalumus:
- Jūsų slapčiai nebus saugomi jūsų Git saugykloje, sumažinant riziką, jei kas nors gautų prieigą prie jūsų šaltinio kodo.
- Galite naudoti skirtingus prisijungimo duomenis skirtingoms aplinkoms. Pavyzdžiui, prisijungti prie savo gamybos duomenų bazės gamyboje, o vystymo duomenų bazės vystymo metu.
Aplinkos kintamųjų nustatymas vystymui
Vystymui sukurkite .env failą savo projekto šaknyje. Šis failas bus išskirtas iš Git, kad jis niekada nebūtų įsipareigotas. Naudokite dotenv gem'ą, kad automatiškai įkeltumėte .env failą.
Pirmiausia pridėkite dotenv-rails gem'ą į savo Gemfile:
# Gemfile
gem 'dotenv-rails', groups: [:development, :test]
Tada įdiekite gem'ą:
bundle install
Tada sukurkite .env failą savo projekto šaknyje ir pridėkite savo kintamuosius:
RAILS_ENV="development"
DATABASE_PASSWORD="secretPassword"
THIRD_API_PRIVATE_KEY="secretKey"
# ...
Galiausiai, įsitikinkite, kad .env failas yra ignoruojamas Git:
echo '.env*' >> .gitignore
Aplinkos kintamųjų nustatymas staging ir gamybai
Staging ir gamybai .env failas nėra saugus ar praktiškas, nes jis negali būti saugomas Git saugykloje. Vietoj to, Stackhero suteikia saugų sprendimą tvarkyti aplinkos kintamuosius tiesiogiai jūsų Ruby paslaugos konfigūracijoje.
Galite nustatyti šiuos kintamuosius per Stackhero prietaisų skydelį, pasirinkdami savo Ruby paslaugą ir spustelėdami "Configure" mygtuką.
Aplinkos kintamųjų pasiekimas
Ruby kalboje galite lengvai pasiekti aplinkos kintamuosius naudodami ENV. Pavyzdžiui, norėdami gauti DATABASE_PASSWORD, naudokite:
ENV['DATABASE_PASSWORD'] # => 'secretPassword'
Štai pavyzdys, kaip prisijungti prie RabbitMQ serverio naudojant aplinkos kintamuosius:
require 'bunny'
class RabbitMQClient
def initialize
@connection = Bunny.new(hostname: ENV['RABBITMQ_HOST'],
username: ENV['RABBITMQ_USERNAME'],
password: ENV['RABBITMQ_PASSWORD'])
@connection.start
end
def publish(queue_name, message)
channel = @connection.create_channel
queue = channel.queue(queue_name)
channel.default_exchange.publish(message, routing_key: queue.name)
end
def close
@connection.close
end
end
Vystymo platformoje jūsų .env failas gali apimti:
RABBITMQ_HOST='127.0.0.1'
RABBITMQ_USERNAME='developmentUser'
RABBITMQ_PASSWORD='developmentPassword'
Gamybai ir staging, nustatykite savo aplinkos kintamuosius Stackhero prietaisų skydelyje pagal Ruby paslaugos konfigūraciją, kaip parodyta žemiau:
RABBITMQ_HOST='<XXXXXX>.stackhero-network.com'
RABBITMQ_USERNAME='production'
RABBITMQ_PASSWORD='secretProductionPassword'