티스토리 뷰

serverless로 aws-java-gradle 앱 빌드하고 배포하기

https://serverless.com/framework/docs/providers/aws/cli-reference/create/

 

요약

serverless create --template aws-java-gradle --path serverless/aws-java-gradle01
sh gradlew build

serverless deploy

custom으로 하는 경우

config credentials --provider aws --key <KEY> --secret <SECRET> --profile custom-profile
 
maven으로 하는 경우
sls create --template aws-java-maven --path ./aws-java-maven01

mvn clean package
 
 

1.build하기(create)

serverless create --template aws-java-gradle --path serverless/aws-java-gradle01

위 명령어를 쓰면 된다.

 

자주 쓰는 템플릿은 아래와 같다

  • aws-nodejs
  • aws-nodejs-typescript
  • aws-nodejs-ecma-script
  • aws-python
  • aws-python3
  • aws-kotlin-jvm-maven
  • aws-kotlin-jvm-gradle
  • aws-kotlin-nodejs-gradle
  • aws-groovy-gradle
  • aws-java-maven
  • aws-java-gradle
  • aws-scala-sbt
  • aws-csharp
  • aws-fsharp
  • plugin

 

그러면 이렇게 알아서 만들어 준다.

 

폴더 안에 내용을 확인 해보자

 

그러면 이렇게 build.gradle이 있다.

 

여기에서 빌드를 하려면 아래 명령어를 실행한다.

sh gradlew build

 

 

 

3.custom profile 설정

serverless config credentials --provider aws --key 1234 --secret 5678
sls config credentials --provider aws --key 1234 --secret 5678
 
두번째줄 처럼 sls라고 써도 된다.
 

기본 설정은 위와 같이 하면 되지만 개발 서버 세팅을 dev, qa, prod 이렇게 3가지로 구성을 하고 싶다면 dev, qa, prod등 profile설정을 해주어야 한다.

 

sls config credentials --provider aws --key <KEY> --secret <SECRET> --profile custom-profile

 

위 명령어를 이용하면 된다.

 

 

4.배포하기

그담에 deploy를 하려면

serverless deploy

 

를 하면 된다.

 

 

 

4.명령어(command)들

serverless(서버리스)를 쓰면 aws, ms 애저(azure), IBM Cloud, Google Cloud 이런데에 앱들은 빌드하고 배포하고 관리하고 할 수 있다.

 

serverless는 프레임웍인데 사용자가 빌드하고 배포하고 오토스케일링하고 pay-per-execution하는  이벤트 기반 함수를 만들  있게 해주는 CLI 이다.

 

CLI툴은 Command Line Interface Tool인데 명령어를 이용해서 작업을 하는 도구이다.

 

그러면 명령어들을 하나씩 알아보자

 

명령어 사용 방법은 serverless <명령어>이렇게 쓰거나 sls <명령어> 이렇게 쓰면 된다.

 

예를 들어 serverless config, sls config 등으로 쓰면 된다.

 

 

config

serverless 설정
 

config credentials

serverless 프레임웍에 provider(aws, azure 등)를 설정한다. 
 
ex) serverless config credentials --provider aws --key ABCDEFGHIJKLMNOP --secret ASDFQWERTYAAKKEEEES
 
 

create

새로운 serverless 서비스를 만든다

 

ex)  sls create --template aws-python3 --path aws-python3-2

5.배포 스크립트

profile="$1"
FUNCTION_NAME="$2"
if [ "$profile" == "" ] || [ "$FUNCTION_NAME" == "" ]; then
    echo "please enter profile like: sh deploy.sh dev trading"
    exit 0
fi

echo "--------- Start Deploy --------"
echo "AWS_PROFILE: ${profile}"
echo "FUNCTION_NAME: ${FUNCTION_NAME}"
export AWS_PROFILE=$profile
echo ${AWS_PROFILE}

git pull
# serverless-prod.yml 파일 복사함
cp "serverless-${profile}.yml" serverless.yml

mvn clean package


if [ "$FUNCTION_NAME" == "all" ] || [ "$FUNCTION_NAME" == "ALL" ]; then
    echo "all function deploy"
    sls deploy --stage $profile --aws-profile $profile --profile $profile
else
    echo "specific function deploy"
    sls deploy function -f $FUNCTION_NAME --stage $profile --aws-profile $profile --profile $profile
fi


# 작업 끝나고 AWS_PROFILE 다시 바꿔줌
export AWS_PROFILE=dev
echo ${AWS_PROFILE}


# 작업 끝나고 serverless-prod.yml 파일 지움
rm serverless.yml
 

end.

 

 

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
글 보관함