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}"

deploytranslate 01

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

deploytranslate 02 deploytranslate 03 deploytranslate 04

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

lastDeploy 09 lastDeploy 10