zappa 사용기

김수호·2024년 11월 7일

바빠졌기에 슬랙봇은 미룬이가 되었지만. 그래도 zappa는 제대로 구성해보고자 다시 돌아왔다.

zappa의 설치에 문제가 생겼다면 아래 링크를 참고하길 바란다.
kappa 이슈 127 : https://github.com/garnaat/kappa/issues/127
내가 해결한 방식 : https://velog.io/@zhzkal2/zappa-install-error

설치확인

이 명령어가 성공했을 것이다.

세팅

$ zappa init

1.자신이 만드는 환경 dev, staging, production 중 선택
2. aws에 대한 자격증명 설정을 하지 않았으므로 설정해달라는 문구
3. s3 bucket의 이름 아무것도 적지 않아도 이름을 만들어주긴 한다.
4. app 이름 설정 (나는 기본앱 이름인 app으로 할 예정이기 때문에 app.app이 되었다.)
5. 글로벌하게 사용할것이냐, 리전별로 람다를 사용하거나 할 경우에 대비해서 나오는 문구인것 같다. (n)

위 설정을 끝내면

이처럼 나올것이다.
json을 수정해도 문제없으니 필요하다면 추후에 수정하길 바란다.

괜찮냐고 묻는 멘트에 y를 누르면 생성이 완료된다.
나는 kappa 설정하느라 잘못해서 kappa 폴더에 생성했다. root에 두어야 하니 주의하길 바란다.

ps. zappa팀에서 enjoy! 이런 말을 두는거 보니 상당히 인싸일지도...

이젠 다 작성했다면 다음 순서로 가자

app.py 작성

import sys
from flask import Flask, redirect, request, jsonify, url_for, render_template

app = Flask(__name__, static_url_path="")


@app.route("/", methods=["GET"])
def index():
    return "hello zappa!"


if __name__ == "__main__":
    if len(sys.argv) > 1:
        app.debug = True
        app.jinja_env.auto_reload = True
        app.config["TEMPLATES_AUTO_RELOAD"] = True
        app.run(host="0.0.0.0", port=4000)
    else:
        app.run(host="0.0.0.0")

실행 해보자.

제대로 나오는걸 확인했으니 이제 deploy를 해보자.

deploy

앗! 오류가 발생했다.
리전 설정을 하지 않으면 발생하는 듯 싶다.

        "aws_region": "ap-northeast-2",

세팅에 리전 설정을 하고 재시도 해보자!

앗! 또 오류...
권한 설정의 문제인듯 싶다. aws configure로 설정을 했지만. iam계정에 권한을 부여하지 않았나 보다.

권한을 부여하고 재시도 해보자!

제대로 deploy된것 같다!
링크로 이동해보자

제대로 배포가 되었다.

undeploy로 까먹지 말자.. 돈은 소중하니까

마치며

추후에 간단하게 서버리스환경을 구축해야 한다면 고민해보는것도 나쁘진않아 보인다.

참고자료

[참고자료] "Python 월 몇 백원으로 사내 슬랙봇 운영해본 이야기"
https://www.youtube.com/watch?v=9LmDwhH7QzQ
[참고자료] "Python: 파이썬 Zappa로 AWS Lambda에 서버리스 Web 구현하기"
https://hidekuma.github.io/serverless/aws/lambda/apigateway/zappa/python-zappa/

profile
정답을 모르지만 답을 찾는 법을 알고, 그 답을 찾아낼 것이다. 그럼 괜찮지 않은가? -크리스 가드너-

0개의 댓글