Herramienta para devops con aws lamnda
565
Herramientas para trabajar con Lambda
Esta herramienta comprende un gramework para desarrollar aplicaciones con Lambda y desplegarlas fácilmente con un par de comandos, sobre AWS usando cloudformation y SAM. Este herramienta genera todos los templates necesarios para el correcto despliegue, en modalidad automática, con poca intervención del usuario. Las intervenciones del usarios se concentran en la modificación de algunos templates (con guía en base a comentarios). Estos templates tienen la configuración por defecto para ser desplegados en AWS.
El usuario sin embargo puede usar la especificación SAM para hacer configuraciones mas complejas ver información avanzada en: AWS Serverless Applicatoin Model.
Adicionalmente se incluye una herramienta para probar las funciones localmente, que incluye tambien la prueba con uno o varios layers en forma local.
Actualmete solo esta desarrollada para Python 3.7, pero en el futuro, se pretende ampliar a otras versiones y a Node.
Antes de comenzar con el setup, se debe tener instalados las herramientas Docker, AWS Cli, SAM y la cuenta de acceso.
git clone https://gitlab.com/arkhotech/aws-lambda-tool.git
En realidad, no hace falta instalar nada, sino que copiar este repo en alguna carpeta en su SO. Podría ser /usr/local o /Users/usurios/lambdatool por ejemplo. Esto queda a criterio del usuario.
Una vez establecido el directorio definitivo, se debe establecer las siguientes variables de ambiente:
export SCRIPT_HOME=[path_to_lambdatool] #Apuntar al directorio clonado
export PATH=$PATH:$SCRIPT_HOME #para usar el comando desde la consola
Probar la instalación
[host]@user > create-stack.sh --version
Lambda Tools v0.0.1-beta - Arkhotech Spa 2020
Asegurar que estas variables estén siempre establecidas, agreagandolas al archivo ~/.bash_profile o ~/.profile
export BUCKET_NAME=path.to.bucket
Bajar la imagen de Docker (opcional) para que la priemra vez el comando no demore mucho en la ejecución, por que antes necesita hacer un pull de la imagen.
docker pull arkhotech/aws-backend-tool
Asegurar que el cliente AWS tiene los permisos necesarios para ejecutar cloudformation, lambda, codedeploy e IAM. La policy que debe tener asociada la cuenta AWS Cli debe ser como la siguiente:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"cloudformation:*",
"codedeploy:*"
],
"Resource": "*"
},
{
"Effect" : "Allow",
"Action": [
"lambda:*"
],
"Resource" : "*"
},
{
"Effect" : "Allow",
"Action": [
"iam:CreateRole",
"iam:AttachRolePolicy",
"iam:PutRolePolicy",
"iam:GetRole*",
"iam:PassRole",
"iam:CreatePolicy",
"iam:PutRolePolicy",
],
"Resource" : "*"
},
{
"Effect" : "Allow",
"Action": [
"s3:Get*",
"s3:Put*"
],
"Resource" : "*"
}
]
}
NOTA: La policy descrita anteriormente, es un policy básico. Con esta policy es suficiente para funcioar, este rol es usado por Cloudformation, lo que explica el action "iam:passRole".
Content type
Image
Digest
Size
365.5 MB
Last updated
over 6 years ago
docker pull arkhotech/aws-backend-tool