서버리스 프레임워크와 함께 dotenv 사용
4381 단어 serverlessframeworkdotenv
env
)에서 serverless.yml
변수를 해결하기 위해 제 시간에 환경 변수를 더 이상 로드할 수 없다고 조언했습니다. 이번 포스팅에서는 플러그인 없이 dotenv
을 사용하는 방법에 대해 자세히 알아보려고 합니다.Serverless Framework에서는
file
변수를 dynamically evaluate variables by executing JavaScript code 으로 사용할 수 있습니다. 이 기능을 활용하면 dotenv
을 호출하여 환경 변수를 로드하는 것과 같이 임의의 코드를 실행하도록 서버리스 프레임워크를 얻을 수 있습니다! 아래 프레임워크에 MY_ENV_VAR
이 어떻게 로드되는지 확인하세요..env.local
:MY_ENV_VAR=loaded-by-dotenv
configs.js
:const dotenv = require('dotenv');
module.exports = async ({ options, resolveConfigurationProperty }) => {
// Load env vars into Serverless environment
// You can do more complicated env var resolution with dotenv here
const envVars = dotenv.config({ path: '.env.local' }).parsed;
return envVars;
};
serverless.yml
:service: my-service
# Required to use the new variables engine
# https://www.serverless.com/framework/docs/providers/aws/guide/variables#exporting-a-function
variablesResolutionMode: 20210219
custom:
dotenvVars: ${file(configs.js)}
functions:
hello:
handler: src/hello.handler
environment:
MY_ENV_VAR: ${env:MY_ENV_VAR}
Serverless Framework가
${file(configs.js)}
을 볼 때 변수 해석기는 configs.js
에서 내보낸 함수를 호출합니다. 여기에 있는 JavaScript 코드에는 dotenv.config()
에 정의된 모든 환경 변수를 로드하는 .env.local
에 대한 호출이 포함되어 있습니다. 이렇게 하면 환경 변수가 프로세스에 로드되므로 플러그인도 이에 액세스할 수 있습니다.for
루프를 사용하면 여러 dotenv 파일(예: .env
및 .env.local
)을 로드하거나 options.stage
을 사용하여 --stage
매개변수 값을 기반으로 파일을 로드할 수 있습니다. dotenv
과 같이 사용에 관심이 있을 수 있는 dotenv-expand
플러그인을 로드할 수도 있습니다. 임의의 JavaScript 코드를 실행할 수 있기 때문에 JavaScript에서 수행할 수 있는 작업으로만 제한됩니다!전체 예제는 neverendingqs/serverless-dotenv-example에서 찾을 수 있습니다. 질문이 있거나 이와 같은 콘텐츠를 더 보고 싶으십니까? neverendingqs/ask-me-anything을 확인하세요!
Reference
이 문제에 관하여(서버리스 프레임워크와 함께 dotenv 사용), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/neverendingqs/using-dotenv-with-the-serverless-framework-4m9m텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)