티스토리 뷰
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으로 하는 경우
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 설정
기본 설정은 위와 같이 하면 되지만 개발 서버 세팅을 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
config credentials
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.
'개발 > AWS' 카테고리의 다른 글
JAVA Aws Credential만들기, Lambda call하기 (0) | 2018.04.26 |
---|---|
aws configure로 profile 설정하기(local, dev, qa, prod) (0) | 2018.03.15 |
mac에서 aws profile등록 하는 방법(credentials, config) (0) | 2018.03.05 |
mac에서 ssh접속하기 (0) | 2018.02.20 |
aws-ubuntu에 nginx, git, node.js, python, pip설치하기, inbound 설정하기 (0) | 2017.11.24 |
- Total
- Today
- Yesterday
- 도커티슈박스
- Linux
- vim
- Sh
- 2017 티스토리 결산
- 도커각티슈박스
- 싱가폴
- docker container tissue
- 개발자
- 이직
- docker container case
- 도커컨테이너
- 도커티슈케이스
- docker container whale
- docker container
- shellscript
- docker container tissue box
- 도커각티슈케이스
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |