Use Environment Variables in Lambda Functions
Serverless의 DynamoDB 구성 챕터 뒷부분에서 CloudFormation을 통해 테이블을 생성했습니다. 생성된 테이블은 현재 stage를 기반으로합니다. 즉, 우리 Lambda 함수에서 데이터베이스와 대화할 때 테이블 이름을 단순히 하드코딩할 수는 없습니다. dev
stage에서는 dev-notes
라고 불리우며 prod
에서는 prod-notes
라고 불릴 것입니다.
이와 같이 우리가 람다 함수에서 환경변수를 사용하여 어떤 테이블을 사용해야 하는지를 알려줍니다. 지금 create.js
를 열어 보면 다음 내용을 보게 될 것입니다.
const params = {
TableName: "notes",
Item: {
userId: event.requestContext.identity.cognitoIdentityId,
noteId: uuid.v1(),
content: data.content,
attachment: data.attachment,
createdAt: new Date().getTime()
}
};
관련 테이블 이름을 사용하려면 TableName : "notes"
행을 변경해야합니다. Serverless의 DynamoDB 구성 챕터에서는 environment:
블록 아래의 serverless.yml
에도 tableName :
을 추가했습니다.
# These environment variables are made available to our functions
# under process.env.
environment:
tableName: ${self:custom.tableName}
거기에서 확인했듯이, 람다 함수에서 이것을 process.env.tableName
으로 참조할 수 있습니다.
그럼 해당 내용으로 변경해보겠습니다.
create.js
의 아래 행을
TableName: "notes",
다음 내용으로 바꿉니다.:
TableName: process.env.tableName,
같은 방법으로,
get.js
파일도 수정합니다.:
TableName: "notes",
다음 내용으로 바꿉니다.:
TableName: process.env.tableName,
list.js
파일도 마찬가지로:
TableName: "notes",
수정합니다.:
TableName: process.env.tableName,
update.js
파일:
TableName: "notes",
마찬가지로 수정합니다.:
TableName: process.env.tableName,
마지막으로
delete.js
파일도:
TableName: "notes",
아래 내용으로 수정합니다.:
TableName: process.env.tableName,
코드 커밋
지금까지 수정한 내용을 커밋합니다.:
$ git add .
$ git commit -m "Use environment variables in our functions"
다음으로, 새로 구성된 Serverless 백엔드 API를 배포해보겠습니다.
For help and discussion
Comments on this chapterIf you liked this post, please subscribe to our newsletter, give us a star on GitHub, and follow us on Twitter.