Pembangun Python sering berurusan dengan data yang mereka tidak mahu orang lain lihat, seperti kunci API, rahsia API, nama pangkalan data, dll.
Salah satu cara pengaturcara menyimpan rahsia ini adalah dalam pembolehubah persekitaran. Dalam artikel ini, anda akan mempelajari semua yang anda perlu ketahui tentang menggunakan pembolehubah persekitaran dalam Python. Kami akan menunjukkan kepada anda cara menetapkan pembolehubah persekitaran Python, cara mendapatkannya, dan cara berbeza anda boleh menyimpan semua rahsia anda dengan selamat. Kami akan selesaikan dengan contoh kehidupan sebenar tentang cara kami menggunakannya di Vonage.
Gunakan pautan di bawah untuk melangkau ke hadapan dalam artikel:
Pembolehubah persekitaran (kadangkala dipanggil "env vars") ialah pembolehubah yang anda simpan di luar program anda yang boleh mempengaruhi cara ia berjalan. Sebagai contoh, anda boleh menetapkan pembolehubah persekitaran yang mengandungi kunci dan rahsia untuk API. Program anda kemudiannya mungkin menggunakan pembolehubah tersebut apabila ia bersambung ke API.
Menyimpan rahsia anda dalam persekitaran anda dan bukannya kod sumber anda mempunyai beberapa kelebihan:
Pada dasarnya, pembolehubah persekitaran membenarkan anda mengubah tingkah laku program anda tanpa mengubah program itu sendiri.
Anda boleh menyimpan pembolehubah persekitaran dalam sistem pengendalian anda, tetapi terdapat cara lain untuk menggunakannya yang akan kami pelajari sebentar lagi.
Untuk mengikuti tutorial ini, anda perlu memasang Python pada mesin anda. Anda boleh memasang Python dengan memuat turunnya daripada tapak web rasmi Python.
Anda mendapat dan menetapkan pembolehubah persekitaran dalam Python menggunakan modul os terbina dalam.
Anda boleh melihat semua pembolehubah persekitaran dalam program anda dengan menyimpan kod berikut dalam fail Python dan kemudian menjalankan program Python ini:
Jurubahasa Python anda harus mencetak semua pembolehubah persekitaran sistem pengendalian anda apabila menjalankan kod ini. Anda boleh mengakses pembolehubah persekitaran yang berbeza dalam os.environ seperti kamus Python. Berikut ialah dua cara untuk mendapatkan pembolehubah persekitaran dengan Python:
Dua baris terakhir dalam kod Python anda di atas melakukan perkara yang sama: kedua-duanya mendapatkan pembolehubah persekitaran PENGGUNA daripada sistem pengendalian anda. Walau bagaimanapun, apabila anda menggunakan cara pertama, Python membuang pengecualian jika ia tidak menemui pembolehubah.
Amalan yang baik ialah menggunakan os.environ['MY_ENVIRONMENT_VARIABLE'] jika pembolehubah persekitaran diperlukan untuk aplikasi Python anda dijalankan dan os.environ.get('MY_ENVIRONMENT_VARIABLE') jika ia adalah pilihan.
Untuk menetapkan pembolehubah persekitaran dalam Python, anda boleh menambahkannya pada objek os.environ seperti yang anda lakukan dengan kamus. Walau bagaimanapun, hanya rentetan yang dibenarkan, kerana ini dihantar terus ke cangkerang yang penterjemah anda jalankan.
Untuk mengemas kini pembolehubah persekitaran, cuma gantikannya dengan cara yang sama:
Terdapat pelbagai sebab anda mungkin ingin menyimpan pembolehubah persekitaran, jadi terdapat juga cara yang berbeza untuk menyimpan pembolehubah tersebut. Kadangkala, anda hanya memerlukan sesuatu untuk ditetapkan pada mesin tempatan anda, manakala dalam kes lain, anda mungkin perlu menjalankan aplikasi anda dalam pengeluaran - kes penggunaan ini memerlukan pendekatan yang berbeza!
Di bawah, kami akan menunjukkan kepada anda lima cara untuk menyimpan pembolehubah persekitaran untuk Python:
Kadangkala, anda tidak mahu mencipta pembolehubah persekitaran melalui Python jika anda hanya mahu menetapkan sesuatu dengan cepat. Nasib baik, ini boleh dilakukan melalui baris arahan. Contoh yang saya akan berikan di sini berfungsi untuk sistem seperti Unix (Mac, Linux, dll.), tetapi jika anda menggunakan Windows, anda boleh belajar cara mendapatkan dan menetapkan pembolehubah persekitaran dalam tutorial ini.
Dalam contoh sebelumnya, USER ialah pembolehubah persekitaran yang ditetapkan oleh sistem pengendalian anda, yang mewakili orang yang menggunakan komputer anda. Walaupun sistem pengendalian anda mencipta pembolehubah ini secara automatik, anda juga boleh mencipta pembolehubah persekitaran anda sendiri.
Anda boleh melihat semua pembolehubah persekitaran daripada baris arahan anda dengan membuka baris arahan dan menaip yang berikut (pada sistem seperti Unix):
eksport
Ini akan memberi anda senarai setiap pembolehubah persekitaran yang boleh diakses oleh shell baris arahan anda.
Berikut ialah cara mencipta pembolehubah persekitaran pada baris arahan anda:
eksport VONAGE_API=api_anda
Ini mencipta pembolehubah yang dipanggil VONAGE_API dan menetapkan nilainya kepada your_api. Anda boleh mencetak sebarang nilai pembolehubah seperti ini:
gema $VONAGE_API
Apabila anda menjalankan kod di atas, anda akan melihat api_anda sebagai output.
Apabila anda mencipta pembolehubah persekitaran baharu menggunakan terminal/baris arahan anda, ia hanya wujud untuk sesi itu. Apabila anda menutup terminal anda, pembolehubah persekitaran tidak lagi wujud. Selalunya apabila anda memprogramkan, anda mahu pembolehubah persekitaran anda berterusan supaya ia boleh digunakan setiap kali anda menjalankan kod anda. Satu cara untuk mencapainya ialah dengan menyimpannya dalam fail: contohnya, fail .env.
Mari kita buat contoh projek untuk menunjukkan cara menggunakan fail .env untuk menyimpan pembolehubah persekitaran.
Mula-mula, gunakan terminal anda untuk mencipta folder baharu untuk tutorial ini, pindah ke dalamnya dan buat fail .env di dalam:
mkdir env_variables_tutorial cd env_variables_tutorial touch .env
Tambahkan baris ini pada fail .env anda:
VONAGE_API=api_anda
python3 -m venv venv . ./venv/bin/aktifkan
Kini kami berada di dalam Persekitaran Maya Python, kami boleh memasang pakej yang kami perlukan.
pip pasang python-dotenv
Kini, kita boleh menggunakan modul dotenv daripada pakej ini untuk memuatkan pembolehubah persekitaran daripada fail .env ke persekitaran yang Python boleh akses dengan modul os. Cipta fail Python dengan kandungan berikut:
Fungsi load_dotenv membawa pembolehubah persekitaran daripada fail .env ke dalam os.environ, yang kemudiannya boleh digunakan seperti mana-mana pembolehubah persekitaran lain yang ditetapkan oleh sistem pengendalian anda.
Apabila anda mencipta perisian untuk pengeluaran, anda mungkin tidak akan menjalankannya daripada komputer anda. Sebaliknya, kemungkinan besar anda akan menjalankan kod anda pada pelayan.
Ini bermakna anda perlu tahu cara menetapkan dan mendapatkan pembolehubah persekitaran dari mana sahaja anda menjalankan kod anda dalam pengeluaran.
Berikut ialah senarai penyedia awan dan tempat anda boleh mendapatkan lebih banyak maklumat tentang menangani pembolehubah persekitaran menggunakannya:
Jika anda menggunakan sistem CI/CD berasaskan awan seperti GitHub Actions, CircleCI, Travis atau Jenkins, anda juga boleh menyimpan pembolehubah persekitaran dalam sistem mereka.
Jika anda menggunakan GitHub untuk projek anda, anda boleh menyimpan pembolehubah persekitaran dalam tetapan untuk repo anda dengan menavigasi ke tab "Tetapan" dan menetapkan kunci API dsb., dalam tetapan "Rahsia dan pembolehubah" di bawah "Keselamatan ".
Di sini, anda boleh mencipta rahsia repositori baharu dengan mengklik pilihan dan menetapkan nilai. Ini kini akan tersedia dalam GitHub Actions anda.
Terdapat banyak maklumat tentang menyediakan pembolehubah persekitaran dengan Tindakan GitHub, serta CircleCI, Travis dan Jenkins, serta maklumat untuk penyedia lain.
Menyimpan rahsia anda dalam fail .env mengekalkan pembolehubah persekitaran anda tetapi mempunyai beberapa masalah.
Sebagai contoh, katakan anda berada dalam pasukan dengan sepuluh orang. Semua orang menjejaki rahsia mereka dalam fail .env, dan salah satu rahsia berubah (katakan anda mendapat kunci API baharu). Dalam kes itu, sepuluh orang semua perlu mengemas kini fail .env mereka, yang tidak begitu cekap.
Atau, bagaimana jika anda memutuskan untuk beralih daripada Heroku kepada AWS? Dalam kes itu, anda perlu belajar cara menangani rahsia pada platform baharu, yang memerlukan kerja tambahan.
Untuk menyelesaikan masalah ini, sesetengah pengaturcara menggunakan pengurus rahsia sejagat seperti Doppler. Pengurus rahsia universal membolehkan anda menyimpan rahsia anda di satu tempat, supaya semua orang dalam pasukan anda boleh mengaksesnya.
Dengan pengurus rahsia universal, rahsia anda bebas daripada mesin tempatan anda atau pembekal awan, jadi anda boleh membawanya bersama anda tidak kira di mana anda menjalankan kod anda.
Kadangkala, jika anda menggunakan contoh projek API luaran atau coretan kod sampel, perkakas disediakan oleh pemilik/penyelenggara untuk memudahkan penggunaannya. Selalunya, anda perlu menggunakan pembolehubah persekitaran untuk menyediakan alatan secara optimum.
Di Vonage, kami menggunakan pembolehubah persekitaran dalam sampel kod Python kami untuk menghantar SMS, membuat panggilan telefon, menghantar kod pengesahan, menyemak markah penipuan dan banyak lagi.
Katakanlah anda mahu menggunakan Vonage's Number Insight API untuk mendapatkan maklumat tentang beberapa nombor telefon. Dalam kes ini, anda mungkin mahu menggunakan sampel kod seperti ini untuk membolehkan sesuatu berfungsi dengan cepat dalam Python.
Untuk menggunakan kod sampel ini, mula-mula buat akaun Vonage (jangan risau, ia percuma!) untuk mendapatkan kunci API dan rahsia untuk mengesahkan panggilan API anda.
Seterusnya, klon repo di https://github.com/Vonage/vonage-python-code-snippets/. Setelah ini selesai, cipta persekitaran maya Python baharu dan pasang kebergantungan yang diperlukan dengan
Anda sepatutnya melihat maklumat tentang nombor telefon yang anda masukkan, bermakna anda menggunakan API Vonage's Number Insight untuk mencari nombor telefon daripada pembolehubah persekitaran anda, tanpa perlu mengedit fail Python itu sendiri sama sekali! Ini adalah kelebihan utama menggunakan pembolehubah persekitaran.
nyahaktifkan # jika persekitaran maya dari tadi masih aktif python3 -m venv venv . ./venv/bin/aktifkan pip install -r requirements.txt
Akhir sekali, namakan semula fail .env.dist kepada .env dan tambahkan kunci API dan rahsia anda pada fail tersebut serta menukar nilai untuk INSIGHT_NUMBER menjadi nombor yang anda ingin cari. Kini anda sudah bersedia untuk menjalankan kod dengan
python number-insight/ni-basic.py
Anda sepatutnya melihat maklumat tentang nombor telefon yang anda masukkan, bermakna anda menggunakan API Vonage's Number Insight untuk mencari nombor telefon daripada pembolehubah persekitaran anda, tanpa perlu mengedit fail Python itu sendiri sama sekali! Ini adalah kelebihan utama menggunakan pembolehubah persekitaran.
Mendapatkan dan menetapkan pembolehubah persekitaran adalah bahagian penting dalam mencipta perisian pengeluaran. Jika anda telah melengkapkan tutorial ini, anda kini sudah biasa dengan cara mendapatkan dan menetapkan pembolehubah persekitaran menggunakan Python.
Anda juga kini memahami pilihan berbeza anda untuk menyimpan rahsia anda: menetapkannya buat sementara waktu menggunakan OS anda, menyimpannya dalam fail .env, menyimpannya dalam awan dan menggunakan pengurus rahsia universal. Kaedah yang anda gunakan akan bergantung pada keadaan projek yang anda sedang kerjakan. Jika anda ingin membaca lebih lanjut, siaran tentang menggunakan kunci peribadi dalam pembolehubah persekitaran ini mempunyai lebih banyak maklumat.
Jika anda ingin mula menggunakan API Vonage, anda boleh mendaftar untuk akaun pembangun percuma (dengan kredit percuma!) Jika anda mempunyai sebarang soalan tentang tutorial ini, sila hubungi kami di Vonage Community Slack kami dan tanya kami di sana atau dengan menghantar mesej kepada kami di X, sebelum ini dikenali sebagai Twitter.
Sekarang, teruskan dan cuba gunakan pembolehubah persekitaran dalam projek Python anda sendiri!
Atas ialah kandungan terperinci Pembolehubah Persekitaran Python (Env Vars): Primer. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!