Es ist ein Framework, das automatisch AWS Gateway-Einstellungen und IAM-Rollen ab AWS Lambda bereitstellen kann.
:ought_balloon: Ich habe versucht, ein Framework zu finden, mit dem eine Webanwendung mit Lambda mit explosiver Geschwindigkeit erstellt werden kann.
$ pip install chalice
Sie müssen ~ / .aws / config`` ~ / .aws / credentials
konfigurieren. (Bitte beachten Sie andere Artikel)
$ chalice new-project handson
$ cd handson
$ ls -1a
./
../
.chalice/
.gitignore
app.py
requirements.txt
app.py ist das Hauptprogramm.
from chalice import Chalice
app = Chalice(app_name='handson')
@app.route('/')
def index():
return {'hello': 'world'}
An die Methode wird ein Decoder angehängt, und der im Argument festgelegte Pfad wird zur API-Gateway-Einstellung.
@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
Wenn Sie eine Anfrage in einem anderen Terminal senden, wird die als Gegenleistung für app.py festgelegte Zeichenfolge zurückgegeben.
$ 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/
Bei der Bereitstellung wird (1) IAM-Rolle (2) Lambda (3) API-Gateway erstellt und angehängt.
Wenn Sie die Bühneneinstellung ändern möchten, müssen Sie sie zu .chalice / config.json hinzufügen
.chalice/config.json
{
"version": "2.0",
"app_name": "chalicehandson",
"stages": {
"dev": {
"api_gateway_stage": "api"
},
"prod": {
"api_gateway_stage": "api-prod"
}
}
}
Bereitstellung durch Angabe der Stufe
$ 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
Löschen Sie die durch die Bereitstellung erstellte (in diesem Fall diese drei IAM-Rollen, Lambda, API-Gateway).
Da Stage sowohl dev als auch prod bereitstellt, führen wir einen Befehl aus, um sie zu löschen.
Im Fall von aws + python ist dies sehr praktisch. Außerdem freue ich mich auf immer mehr Dienstleistungen. Danach gibt es verschiedene Charis-Methoden, die gerundet sind. Die Lernkosten scheinen also niedriger zu sein als beim serverlosen Framework.
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