Il s'agit d'un cadre qui peut déployer automatiquement les paramètres AWS Gateway et les rôles IAM à partir d'AWS Lambda.
: think_balloon: J'ai essayé de trouver un framework permettant de créer une application Web en utilisant Lambda à une vitesse explosive.
$ pip install chalice
Vous devez configurer ~ / .aws / config`` ~ / .aws / credentials
. (Veuillez vous référer à d'autres articles)
$ chalice new-project handson
$ cd handson
$ ls -1a
./
../
.chalice/
.gitignore
app.py
requirements.txt
app.py est le programme principal.
from chalice import Chalice
app = Chalice(app_name='handson')
@app.route('/')
def index():
return {'hello': 'world'}
Un décodeur est attaché à la méthode et le chemin défini dans l'argument devient le paramètre API Gateway.
@app.route('/XXX')
$ chalice local
Serving on http://127.0.0.1:8000
Restarting local dev server.
Serving on http://127.0.0.1:8000
Si vous envoyez une requête dans un autre terminal, la chaîne définie en retour de app.py sera renvoyée.
$ curl http://127.0.0.1:8000/
{"hello":"world"}
$ chalice deploy
Creating deployment package.
Creating IAM role: handson-dev
Creating lambda function: handson-dev
Creating Rest API
Resources deployed:
- Lambda ARN: arn:aws:lambda:ap-northeast-1:012345678900:function:handson-dev
- Rest API URL: https://xxxxxxxxx.execute-api.ap-northeast-1.amazonaws.com/api/
Une fois déployée, (1) le rôle IAM (2) lambda (3) API Gateway sera créé et attaché.
Si vous souhaitez modifier le paramètre de scène, vous devez l'ajouter à .chalice / config.json
.chalice/config.json
{
"version": "2.0",
"app_name": "chalicehandson",
"stages": {
"dev": {
"api_gateway_stage": "api"
},
"prod": {
"api_gateway_stage": "api-prod"
}
}
}
Déployer en spécifiant l'étape
$ chalice deploy --stage prod
Creating deployment package.
Reusing existing deployment package.
Creating IAM role: handson-prod
Creating lambda function: handson-prod
Creating Rest API
Resources deployed:
- Lambda ARN: arn:aws:lambda:ap-northeast-1:01234567890000:function:handson-prod
- Rest API URL: https://xxxxxxxxxx.execute-api.ap-northeast-1.amazonaws.com/api-prod/
$ chalice delete
$ chalice delete --stage prod
Supprimer celui créé par le déploiement (dans ce cas, ces trois rôles IAM, lambda, API Gateway)
Puisque Stage déploie à la fois dev et prod, nous exécutons une commande pour les supprimer.
Dans le cas de aws + python, c'est très pratique. De plus, j'attends avec impatience de plus en plus de services. Après cela, il existe différentes méthodes charis et elles sont arrondies, il semble donc que le coût d'apprentissage soit inférieur à celui du framework sans serveur.
https://qiita.com/takeh/items/e52ad1c541a435e2b2e3 https://programmagick.com/blogs/aws_chalice_intro/ https://www.youtube.com/watch?v=u4LKbQZawaQ https://aws.github.io/chalice/index.html
Recommended Posts