একটি এনভায়রনমেন্ট ভেরিয়েবল হল একটি কী/মান পেয়ার, এটি দেখতে এইরকম:
KEY=VALUE
আমরা আপনার কম্পিউটারের সমস্ত প্রোগ্রামের মধ্যে কনফিগারেশন বিকল্পগুলি ভাগ করতে এই ভেরিয়েবলগুলি ব্যবহার করি৷
সেজন্য ENV
ব্যবহার করে আপনার রুবি প্রোগ্রামগুলি থেকে কীভাবে তারা কাজ করে এবং কীভাবে সেগুলি অ্যাক্সেস করতে হয় তা শেখা গুরুত্বপূর্ণ। বিশেষ পরিবর্তনশীল।
পরিবেশ ভেরিয়েবলের উদাহরণ :
- আপনার ডিফল্ট সম্পাদক কনফিগার করা হচ্ছে
- রুবিকে জানাচ্ছেন কোথায় রত্ন খুঁজে পাবেন (
GEM_PATH
/GEM_HOME
) - সোর্স কন্ট্রোল (গিট) এ কমিট না করেই আপনার অ্যাপ্লিকেশনে API কী পাস করা
- আপনার অপারেটিং সিস্টেমের বাইনারি ফাইলগুলি কোথায় দেখা উচিত তা নির্ধারণ করা (উইন্ডোজে .exe)
- পরীক্ষা/উন্নয়ন/উৎপাদন মোডে রেল তৈরি করা শুরু হয়
আপনি env
দিয়ে আপনার সমস্ত পরিবেশ ভেরিয়েবলের একটি তালিকা খুঁজে পেতে পারেন লিনাক্স / ম্যাক এবং set
-এ কমান্ড উইন্ডোজে কমান্ড।
উদাহরণ :
PWD=/home/jesus SHELL=/usr/bin/zsh RUBY_ENGINE=ruby RUBY_VERSION=2.6.0 GEM_ROOT=/opt/rubies/ruby-2.6.0/lib/ruby/gems/2.6.0 # ...
তালিকাটি বেশ দীর্ঘ হতে পারে, তবে আপনাকে এটি মুখস্থ করতে হবে না।
এছাড়াও আপনি gem env
দিয়ে সমস্ত রত্ন-নির্দিষ্ট ভেরিয়েবল এবং কনফিগারেশন মুদ্রণ করতে পারেন আদেশ৷
এখন :
আপনি যদি রুবি থেকে এই পরিবেশের ভেরিয়েবলগুলি অ্যাক্সেস করতে চান তবে একটি বিশেষ বস্তু রয়েছে যা আপনি ব্যবহার করতে পারেন।
আসুন আবিষ্কার করি কিভাবে এটি কাজ করে!
রুবিতে এনভায়রনমেন্ট ভেরিয়েবল ব্যবহার করা
রুবির এই ENV অবজেক্ট রয়েছে যা হ্যাশের মতো আচরণ করে এবং এটি আপনাকে আপনার কাছে উপলব্ধ সমস্ত পরিবেশের ভেরিয়েবলগুলিতে অ্যাক্সেস দেয়৷
এখানে কিছু উদাহরণ আছে...
আপনার কাছে কতগুলি কী আছে তা আপনি খুঁজে পেতে পারেন৷ :
ENV.size # 48
তাদের একটি তালিকা পান :
ENV.keys
এবং নির্দিষ্ট কীগুলি অ্যাক্সেস করুন৷ :
ENV["GEM_HOME"] # "/home/jesus/.gem/ruby/2.6.0"
এমনকি আপনি মানচিত্র এবং নির্বাচনের মতো পদ্ধতিগুলিও ব্যবহার করতে পারেন:
ENV.select { |k,v| k.size < 4 }
কিন্তু কিভাবে আপনি রুবির বাইরে এই পরিবেশ ভেরিয়েবল সেট করবেন?
এনভায়রনমেন্ট ভেরিয়েবল কিভাবে সেট করবেন
আপনি একবার ব্যবহারের জন্য একটি পরিবেশ পরিবর্তনশীল সেট করতে পারেন।
এরকম :
API_KEY=1 ruby -e 'p ENV["API_KEY"]'
irb-এর বাইরে একটি টার্মিনালে এটি ব্যবহার করুন, তারপর রুবি এই API_KEY
-এ অ্যাক্সেস পাবে মান।
এটি API কীগুলির জন্য সহায়ক, কিন্তু রেল মোড সেট করতেও৷
৷উদাহরণ :
RAILS_ENV=production rails console
মনে রাখবেন :
আপনি এখন চালু করছেন এই প্রক্রিয়াটির জন্য এটি এই নির্দিষ্ট পরিবেশ পরিবর্তনশীল সেট করে৷
মানে যদি আমি API_KEY=1 <command>
করি ...
এটি শুধুমাত্র সেই কমান্ডের জন্য কাজ করবে!
আপনি যদি চান যে এই ভেরিয়েবলটি আপনার বর্তমান টার্মিনাল সেশন থেকে চালু করা অন্য সমস্ত কমান্ডের দ্বারা ব্যবহার করা হোক৷
এটি করুন৷ :
export API_KEY=1
এখন যদি আপনি করেন :
ruby -e 'p ENV["API_KEY"]'
আপনি 1
পাবেন , এমনকি উপসর্গ পরিবর্তনশীল ছাড়াই।
সতর্কতা :
ENV
ব্যবহার করবেন না আপনার রুবি অ্যাপ্লিকেশনের মধ্যে কনফিগারেশনের জন্য, এটি এর উদ্দেশ্য নয়। ENV শুধুমাত্র রুবির বাইরের বাহ্যিক কনফিগারেশন পড়ার জন্য।
অভ্যন্তরীণ কনফিগারেশন বিকল্পগুলির জন্য শুষ্ক-কনফিগারযোগ্য মত একটি রত্ন চেষ্টা করুন৷
পরিবেশ ভেরিয়েবলের গুরুত্বপূর্ণ গুণাবলী
আপনি এই বৈশিষ্ট্যগুলি সহায়ক বলে মনে করতে পারেন কারণ তারা (সম্ভবত অপ্রত্যাশিত) আচরণ ব্যাখ্যা করে৷
- স্ন্যাপশট৷ , আপনি যখন একটি প্রোগ্রাম চালু করেন তখন পরিবেশ ভেরিয়েবল সেট করা হয় এবং বাইরের পরিবর্তন দ্বারা প্রভাবিত হয় না
- বন্ধ পরিবেশ , একটি প্রক্রিয়ার ভিতরে ভেরিয়েবল পরিবর্তন করা (আপনার রুবি প্রোগ্রাম একটি প্রক্রিয়া) প্রক্রিয়ার বাইরে পরিবেশের ভেরিয়েবল পরিবর্তন করে না
- পরিবেশের ভেরিয়েবল স্থায়ী নয় , যখন আপনি আপনার কম্পিউটার রিবুট করেন, বা এমনকি আপনি যখন আপনার টার্মিনাল বন্ধ করেন, তখন পরিবেশ ভেরিয়েবলের পরিবর্তনগুলি হারিয়ে যায় (যদিও আপনি
export
ব্যবহার করেন Linux + Mac /set
উইন্ডোজে)
এইগুলি মনে রাখবেন!
রেল শংসাপত্র
Rails 5.2 আপনাকে API কীগুলি পরিচালনা করতে সাহায্য করার জন্য একটি নতুন সিস্টেম চালু করেছে৷
এটি সরাসরি config/credentials.yml.enc
-এ শংসাপত্র সংরক্ষণ করে কাজ করে , এটি একটি এনক্রিপ্ট করা ফাইল যা আপনি শুধুমাত্র তখনই পড়তে পারবেন যদি আপনার master.key
থাকে ফাইল।
ধারণাটি হল আপনি শুধুমাত্র credentials.yml.enc
কমিট করবেন এবং আপনি কী ব্যক্তিগত রাখুন৷
আপনি কিভাবে নতুন শংসাপত্র যোগ করবেন?
আচ্ছা, আপনি .enc
সম্পাদনা করতে পারবেন না সরাসরি ফাইল।
এর পরিবর্তে এই কমান্ডটি ব্যবহার করুন :
bin/rails credentials:edit
এটি একটি YAML ফাইল, এটি সঠিকভাবে ফরম্যাট করা নিশ্চিত করুন৷
৷এখন :
আপনি এইভাবে আপনার Rails অ্যাপ থেকে শংসাপত্রগুলি পড়তে পারেন...
Rails.application.credentials.github_api_key
ভিডিও টিউটোরিয়াল দেখুন
সারাংশ
আপনি এনভায়রনমেন্ট ভেরিয়েবল সম্পর্কে শিখেছেন, একটি দরকারী টুল যা আপনাকে আপনার অপারেটিং সিস্টেম কনফিগারেশন পরিচালনা করতে এবং আপনার API কীগুলিকে ব্যক্তিগত রাখতে দেয়৷
অনুগ্রহ করে এই নিবন্ধটি আপনার বন্ধুদের সাথে শেয়ার করুন যাতে আরো মানুষ এটি খুঁজে পেতে পারে 🙂
৷পড়ার জন্য ধন্যবাদ!