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:

  1. Jūsų slapčiai nebus saugomi jūsų Git saugykloje, sumažinant riziką, jei kas nors gautų prieigą prie jūsų šaltinio kodo.
  2. Galite naudoti skirtingus prisijungimo duomenis skirtingoms aplinkoms. Pavyzdžiui, prisijungti prie savo gamybos duomenų bazės gamyboje, o vystymo duomenų bazės vystymo metu.

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

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ą.

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'