deployStageTranslate - silviaalejandra/todo-list-aws GitHub Wiki
Deploy de la función Translate
Inclusion de informes en test estático
Se modificó el archivo /test/unit/TestToDo.py incluyendo los nuevos casos por las funciones de Translate.
A su vez se incluyeron los informes de test estático con el Plugin Warning Next Generation en jenkins. Para ello se realizaron cambios en el script /pipelines/PIPELINE-FULL-staging/static_test.sh generando los archivos de salida de flake8 y bandit para ser publicados en jenkins.
flake8 --format=pylint src/*.py > flake8.out
bandit -r src/*.py -f custom -o bandit.out --msg-template "{relpath}:{line}: [{test_id}] {msg}"
La salida de las pruebas con error se encuentra en los ficheros
Ejecucion con errores #65 logs/deployTranslate65.log
Ejecucion sin errores #66 logs/deployTranslate66.log
Publicacion funcion lambda
Para publicar la funcion lambda se realizaron modificaciones en el archivo template.yaml indicando propiedades y origen y se generó el fichero translate.py
TranslateTodoFunction:
Type: AWS::Serverless::Function
Properties:
CodeUri: src/
Role: !Sub "arn:aws:iam::${AWS::AccountId}:role/LabRole"
Handler: translate.translate
Runtime: python3.7
Events:
Create:
Type: Api
Properties:
Path: /todos/{id}/{language}
Method: get
import json
import logging
import todoList
def translate(event, context):
logging.info('inicio traducciones --------------------')
logging.info(event)
if 'id' not in event['pathParameters'] or 'language' not in event['pathParameters']:
logging.error("Validation Failed")
raise Exception("Couldn't translate the todo item.")
result = todoList.translate_item(
event['pathParameters']['id'], event['pathParameters']['language']
)
# create a response
logging.info('resultado de la salida')
logging.info(result)
# return response
return result
Pruebas finales estáticas del código
Con el despliegue en staging se ejecutaron en el pipeline las pruebas de calidad y se aplicaron mejoras al código hasta superar todos los warning