Python 개발자는 API 키, API 비밀, 데이터베이스 이름 등과 같이 다른 사람에게 공개하고 싶지 않은 데이터를 다루는 경우가 많습니다.
프로그래머가 이러한 비밀을 저장하는 한 가지 방법은 환경 변수에 있습니다. 이 기사에서는 Python에서 환경 변수를 사용하는 데 대해 알아야 할 모든 것을 배웁니다. Python 환경 변수를 설정하는 방법, 이를 가져오는 방법, 모든 비밀을 안전하게 유지할 수 있는 다양한 방법을 보여 드리겠습니다. Vonage에서 이를 어떻게 사용하는지 실제 사례로 마무리하겠습니다.
기사를 건너뛰려면 아래 링크를 사용하세요.
환경 변수("env vars"라고도 함)는 프로그램 외부에 저장하여 실행 방법에 영향을 줄 수 있는 변수입니다. 예를 들어 API에 대한 키와 비밀이 포함된 환경 변수를 설정할 수 있습니다. 그러면 프로그램이 API에 연결할 때 해당 변수를 사용할 수 있습니다.
소스 코드 대신 비밀을 환경에 저장하면 몇 가지 장점이 있습니다.
기본적으로 환경 변수를 사용하면 프로그램 자체를 변경하지 않고도 프로그램의 동작을 변경할 수 있습니다.
운영 체제에 환경 변수를 저장할 수 있지만 이를 사용하는 다른 방법도 곧 배우게 됩니다.
이 튜토리얼을 진행하려면 컴퓨터에 Python이 설치되어 있어야 합니다. Python 공식 홈페이지에서 Python을 다운로드하여 설치할 수 있습니다.
내장된 os 모듈을 사용하여 Python에서 환경 변수를 가져오고 설정합니다.
다음 코드를 Python 파일에 저장한 후 이 Python 프로그램을 실행하면 프로그램의 모든 환경 변수를 볼 수 있습니다.
이 코드를 실행할 때 Python 인터프리터는 운영 체제의 환경 변수를 모두 인쇄해야 합니다. Python 사전처럼 os.environ의 다양한 환경 변수에 액세스할 수 있습니다. Python으로 환경 변수를 가져오는 두 가지 방법은 다음과 같습니다.
위 Python 코드의 마지막 두 줄은 동일한 작업을 수행합니다. 둘 다 운영 체제에서 USER 환경 변수를 가져옵니다. 그러나 첫 번째 방법을 사용할 때 Python은 변수를 찾지 못하면 예외를 발생시킵니다.
Python 애플리케이션을 실행하는 데 환경 변수가 필요한 경우 os.environ['MY_ENVIRONMENT_VARIABLE']을 사용하고 선택 사항인 경우 os.environ.get('MY_ENVIRONMENT_VARIABLE')을 사용하는 것이 좋습니다.
Python에서 환경 변수를 설정하려면 사전을 사용하는 것처럼 os.environ 개체에 추가하면 됩니다. 그러나 문자열만 허용됩니다. 문자열은 인터프리터가 실행 중인 셸에 직접 전달되기 때문입니다.
환경 변수를 업데이트하려면 정확히 같은 방식으로 재정의하면 됩니다.
환경 변수를 저장하려는 이유는 다양하므로 저장 방법도 다양합니다. 때로는 로컬 컴퓨터에 무언가를 설정해야 하는 반면, 다른 경우에는 프로덕션 환경에서 애플리케이션을 실행해야 할 수도 있습니다. 이러한 사용 사례에는 다른 접근 방식이 필요합니다!
아래에서는 Python용 환경 변수를 저장하는 5가지 방법을 보여줍니다.
빠르게 설정하려는 경우 Python을 통해 환경 변수를 생성하고 싶지 않은 경우도 있습니다. 다행히도 이 작업은 명령줄을 통해 수행할 수 있습니다. 여기서 제공할 예제는 Unix 계열 시스템(Mac, Linux 등)에서 작동하지만 Windows를 사용하는 경우 이 튜토리얼에서 환경 변수를 가져오고 설정하는 방법을 배울 수 있습니다.
이전 예에서 USER는 운영 체제에서 설정한 환경 변수로, 컴퓨터를 사용하는 사람을 나타냅니다. 운영 체제에서 이 변수를 자동으로 생성하지만 사용자가 직접 환경 변수를 생성할 수도 있습니다.
명령줄을 열고 다음을 입력하면(Unix 계열 시스템에서) 명령줄에서 모든 환경 변수를 볼 수 있습니다.
내보내기
명령줄 셸에서 액세스할 수 있는 모든 환경 변수 목록이 제공됩니다.
명령줄에서 환경 변수를 만드는 방법은 다음과 같습니다.
VONAGE_API=your_api 내보내기
이렇게 하면 VONAGE_API라는 변수가 생성되고 해당 값이 your_api로 설정됩니다. 다음과 같이 모든 변수의 값을 인쇄할 수 있습니다.
에코 $VONAGE_API
위 코드를 실행하면 your_api가 출력되는 것을 볼 수 있습니다.
터미널/명령줄을 사용하여 새 환경 변수를 생성하면 해당 세션에 대해서만 존재합니다. 터미널을 닫으면 환경 변수가 더 이상 존재하지 않습니다. 프로그래밍을 할 때 환경 변수가 지속되어 코드를 실행할 때마다 사용할 수 있기를 원하는 경우가 많습니다. 이를 수행하는 한 가지 방법은 파일(예: .env 파일)에 저장하는 것입니다.
.env 파일을 사용하여 환경 변수를 저장하는 방법을 보여주는 예제 프로젝트를 만들어 보겠습니다.
먼저 터미널을 사용하여 이 튜토리얼을 위한 새 폴더를 만들고 그 폴더로 이동한 후 내부에 .env 파일을 만듭니다.
mkdir env_variables_tutorial cd env_variables_tutorial touch .env
.env 파일에 다음 줄을 추가하세요.
VONAGE_API=your_api
python3 -m venv venv . ./venv/bin/활성화
이제 Python 가상 환경에 있으므로 필요한 패키지를 설치할 수 있습니다.
pip install python-dotenv
이제 이 패키지의 dotenv 모듈을 사용하여 .env 파일의 환경 변수를 Python이 os 모듈로 액세스할 수 있는 환경으로 로드할 수 있습니다. 다음 내용으로 Python 파일을 만듭니다.
load_dotenv 함수는 .env 파일의 환경 변수를 os.environ으로 가져온 다음 운영 체제에서 설정한 다른 환경 변수처럼 사용할 수 있습니다.
프로덕션용 소프트웨어를 만들 때 컴퓨터에서 실행하지 않을 수도 있습니다. 대신 서버에서 코드를 실행할 가능성이 높습니다.
즉, 프로덕션 환경에서 코드를 실행할 때마다 환경 변수를 설정하고 가져오는 방법을 알아야 합니다.
다음은 클라우드 제공업체 목록과 이를 사용하여 환경 변수를 처리하는 방법에 대한 자세한 정보를 얻을 수 있는 곳입니다.
GitHub Actions, CircleCI, Travis, Jenkins와 같은 클라우드 기반 CI/CD 시스템을 사용하는 경우 해당 시스템에 환경 변수를 저장할 수도 있습니다.
프로젝트에 GitHub를 사용하는 경우 "설정" 탭으로 이동하여 "보안" 아래의 "비밀 및 변수" 설정에서 API 키 등을 설정하여 리포지토리 설정에 환경 변수를 저장할 수 있습니다. ".
여기에서 옵션을 클릭하고 값을 설정하여 새 저장소 비밀을 생성할 수 있습니다. 이제 GitHub Actions 실행에서 이 기능을 사용할 수 있습니다.
GitHub Actions는 물론 CircleCI, Travis, Jenkins를 통한 환경 변수 설정에 대한 정보와 기타 제공업체에 대한 정보가 많이 있습니다.
비밀 정보를 .env 파일에 저장하면 환경 변수가 유지되지만 몇 가지 문제가 있습니다.
예를 들어, 당신이 10명으로 구성된 팀에 속해 있다고 가정해 보겠습니다. 모든 사람이 .env 파일에서 자신의 비밀을 추적하고 있으며 비밀 중 하나가 변경되었습니다(예: 새 API 키를 받았다고 가정). 이 경우 10명이 모두 .env 파일을 업데이트해야 하는데 이는 그다지 효율적이지 않습니다.
아니면 Heroku에서 AWS로 전환하기로 결정했다면 어떻게 될까요? 이 경우 새로운 플랫폼에서 비밀을 처리하는 방법을 배워야 하며 추가 작업이 필요합니다.
이러한 문제를 해결하기 위해 일부 프로그래머는 Doppler와 같은 범용 비밀 관리자를 사용합니다. 범용 비밀 관리자를 사용하면 비밀을 한 곳에 저장할 수 있어 팀원 모두가 액세스할 수 있습니다.
Universal Secrets Manager를 사용하면 비밀이 로컬 시스템이나 클라우드 제공업체와 독립적이므로 코드를 실행하는 위치에 상관없이 비밀을 가져올 수 있습니다.
때때로 외부 API의 샘플 프로젝트나 샘플 코드 스니펫을 사용하는 경우 더 쉽게 사용할 수 있도록 소유자/유지관리자가 도구를 제공합니다. 도구를 최적으로 설정하려면 환경 변수를 사용해야 하는 경우가 많습니다.
Vonage에서는 SMS 전송, 전화 통화, 인증 코드 전송, 사기 점수 확인 등을 위해 Python 코드 샘플의 환경 변수를 활용합니다.
Vonage의 Number Insight API를 사용하여 일부 전화번호에 대한 정보를 얻고 싶다고 가정해 보겠습니다. 이 경우 Python에서 작업을 빠르게 수행하려면 이와 같은 코드 샘플을 사용하는 것이 좋습니다.
이 샘플 코드를 사용하려면 먼저 Vonage 계정을 생성하고(걱정하지 마세요. 무료입니다!) API 호출을 인증하기 위한 API 키와 비밀번호를 받으세요.
다음으로 https://github.com/Vonage/vonage-python-code-snippets/에서 저장소를 복제합니다. 이 작업이 완료되면 새로운 Python 가상 환경을 생성하고
를 사용하여 필요한 종속성을 설치합니다.입력한 전화번호에 대한 정보가 표시됩니다. 즉, Python 파일 자체를 전혀 편집할 필요 없이 Vonage의 Number Insight API를 사용하여 환경 변수에서 전화번호를 조회했다는 뜻입니다! 이것이 환경변수 사용의 가장 큰 장점입니다.
이전의 가상 환경이 여전히 활성 상태인 경우 # 비활성화 python3 -m venv venv . ./venv/bin/activate pip install -r 요구사항.txt
마지막으로 .env.dist 파일의 이름을 .env로 바꾸고 API 키와 비밀번호를 파일에 추가하고 INSIGHT_NUMBER 값을 조회하려는 숫자로 변경합니다. 이제
를 사용하여 코드를 실행할 준비가 되었습니다.파이썬 번호-insight/ni-basic.py
입력한 전화번호에 대한 정보가 표시됩니다. 즉, Python 파일 자체를 전혀 편집할 필요 없이 Vonage의 Number Insight API를 사용하여 환경 변수에서 전화번호를 조회했다는 뜻입니다! 이것이 환경변수 사용의 가장 큰 장점입니다.
환경 변수를 가져오고 설정하는 것은 프로덕션 소프트웨어를 만드는 데 필수적인 부분입니다. 이 튜토리얼을 완료하셨다면 이제 Python을 사용하여 환경 변수를 가져오고 설정하는 방법에 익숙해지셨을 것입니다.
이제 OS를 사용하여 임시로 설정하고, .env 파일에 저장하고, 클라우드에 보관하고, 범용 비밀 관리자를 사용하는 등 비밀 저장을 위한 다양한 옵션도 이해하셨습니다. 사용하는 방법은 작업 중인 프로젝트의 상황에 따라 달라집니다. 더 자세한 내용을 알고 싶다면 환경 변수에서 개인 키 사용에 대한 이 게시물에 더 많은 정보가 있습니다.
Vonage API 사용을 시작하려면 무료 개발자 계정에 가입하세요(무료 크레딧 제공!). 이 튜토리얼에 대해 궁금한 점이 있으면 언제든지 Vonage Community Slack에 문의해 주세요. 저쪽에 계시거나 이전에 Twitter로 알려진 X를 통해 메시지를 보내주세요.
이제 여러분의 Python 프로젝트에서 환경 변수를 사용해 보세요!
위 내용은 Python 환경 변수(Env Vars): 입문서의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!