HEADER_lecciones_de_software

Cómo configurar y desplegar un local de recursos AWS para una app Android

por Santiago Arias Jaramillo, el 16 de junio de 2021

como configurar y desplegar un local de recursos AWS para app android-2

Uno de los recursos más importantes a la hora de construir una aplicación (en este caso Android) es su backend o infraestructura de servicios. Algunos de los módulos que se pueden configurar y desplegar desde local son:

  • Amplify DataStore
  • Amplify Authentication (Cognito)
  • Amplify Storage
  • Amplify Analytics

    Para iniciar el proceso de configuración y despliegue, debemos tener listo nuestro ambiente de desarrollo, para el cual se requiere tener las siguientes características o herramientas instaladas y configuradas:

  • NodeJS 12.x o superior
  • NPM 5.x o superior
  • git 2.14 o superior
  • Android Studio 4.0 o superior
  • Android SDK API Level 16 o superior


    Al hacer la configuración inicial y su correspondiente despliegue, es necesario tener una cuenta en AWS y se debe tener la capacidad o permisos correspondientes para generar un usuario con permisos de administrador o “Administrator Access”

    Sino se tiene cuenta de AWS se puede realizar el proceso de la creación de una, aprovechando que es gratuito y te permitirá disfrutar de los servicios que entrega AWS, en el siguiente enlace: AWS Sign up

    Antes de continuar con la configuración de los recursos se debe tener lista la app Android sobre la cual vamos a trabajar.

    Una vez construida la app se deben hacer algunas configuraciones iniciales como son:

  • Agregar la dependencia en el build.gradle
android {
compileOptions {
// Support for Java 8 features coreLibraryDesugaringEnabled true
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
}
dependencies {
// Amplify core dependency
implementation 'com.amplifyframework:core:1.17.4'
// Support for Java 8 features coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:1.1.5'
}


  • inicializar Amplify:
amplify init




Para la inicialización de Amplify se debe responder a lo siguiente:

? Enter a name for the environment
`dev`
? Choose your default editor:
`Android Studio`
? Where is your Res directory:
`app/src/main/res`
? Select the authentication method you want to use:
`AWS profile`
? Please choose the profile you want to use
`default`



Una vez ejecutada de forma satisfactoria la inicialización de Amplify, se debe visualizar un archivo llamado “amplifyconfiguration.json” el cual contiene los valores de conexión a la infraestructura que se desplegará a continuación.


Luego de tener el ambiente configurado en la cuenta de AWS con el respectivo usuario, administrador creado y la app android lista se inicia el paso a paso para el despliegue del backend.

  • Instalar y configurar Amplify CLI

Lo primero que se debe hacer es instalar el CLI de amplify con el siguiente comando:

1
npm install -g @aws-amplify/cli



Después de tener instalada la interfaz de línea de comandos de Amplify (Amplify CLI) se procede a hacer la configuración de Amplify así:

1
amplify configure


El comando “Amplify configure” solicita iniciar sesión en la consola de AWS.

Una vez se inicia sesión en consola, Amplify CLI solicita crear un usuario IAM

1
2
3
4
5
Specify the AWS Region
? region: # Your preferred region
Specify the username of the new IAM user:
? user name: # User name for Amplify IAM user
Complete the user creation using the AWS console


La creación del usuario se debe completar en la consola de AWS, allí se debe configurar el usuario de tipo “Administrator Access”, para permitir el aprovisionamiento de recursos AWs como AppSync, Cognito, entre otros

Una vez finalizada la creación del usuario, Amplify CLI solicita tanto el “AccesKeyId” como el “SecretAccesKey” para realizar la conexión entre el usuario IAM y Amplify CLI.

1
2
3
4
5
6
7
Enter the access key of the newly created user:
? accessKeyId: # YOUR_ACCESS_KEY_ID
? secretAccessKey: # YOUR_SECRET_ACCESS_KEY
This would update/create the AWS Profile in your local machine
? Profile Name: # (default)

Successfully set up the new user.

 

  • La configuración inicial de Amplify y del usuario administrador ha finalizado. Configuración y despliegue Amplify Authentication (Cognito).
    Para iniciar el aprovisionamiento de los recursos de autenticación en el backend, ejecutamos el siguiente comando en la raíz del proyecto:

1
amplify add auth

A continuación solicitan algunos datos para la configuración del recurso:
1
2
3
4
5
6
? Do you want to use the default authentication and security configuration?
`Default configuration`
? How do you want users to be able to sign in?
`Username`
? Do you want to configure advanced settings?
`No, I am done.`


Una vez se completa el proceso de configuración del recurso se continúa con el despliegue del mismo:

1
amplify push

 

  • Configuración y despliegue Amplify Storage.

Para iniciar el aprovisionamiento de los recursos de almacenamiento en el backend, ejecutamos el siguiente comando en la raíz del proyecto:
1
amplify add storage



A continuación solicitan algunos datos para la configuración del recurso:

? Please select from one of the below mentioned services:
`Content (Images, audio, video, etc.)`
? You need to add auth (Amazon Cognito) to your project in order to add storage for user files. Do you want to add auth now?
`Yes`
? Do you want to use the default authentication and security configuration?
`Default configuration`
? How do you want users to be able to sign in?
`Username`
? Do you want to configure advanced settings?
`No, I am done.`
? Please provide a friendly name for your resource that will be used to label this category in the project:
`S3friendlyName`
? Please provide bucket name:
`storagebucketname`
? Who should have access:
`Auth and guest users`
? What kind of access do you want for Authenticated users?
`create/update, read, delete`
? What kind of access do you want for Guest users?
`create/update, read, delete`
? Do you want to add a Lambda Trigger for your S3 Bucket?
`No`




Una vez se completa el proceso de configuración del recurso se continúa con el despliegue del mismo:

1
amplify push

 

  •  Configuración y despliegue Amplify Analytics.

    Para iniciar el aprovisionamiento de los recursos de analítica en el backend, ejecutamos el siguiente comando en la raíz del proyecto:
1
amplify add analytics



A continuación solicitan algunos datos para la configuración del recurso:

? Select an Analytics provider (Use arrow keys)
`Amazon Pinpoint`
? Provide your pinpoint resource name:
`yourPinpointResourceName`
? Apps need authorization to send analytics events. Do you want to allow guests and unauthenticated users to send analytics events? (we recommend you allow this when getting started)
`Yes`



Una vez se completa el proceso de configuración del recurso se continúa con el despliegue del mismo:

1
amplify push




Los pasos anteriormente descritos me permiten por un lado configurar el Amplify CLI, así como la app android para comunicarse con la infraestructura y adicional a lo anterior, crear, configurar y desplegar servicios como; Amplify Storage, Amplify Analytics, Amplify Authentication, entre otros.

Como se puede observar Amplify, me permite entre muchas otras funcionalidades, la de configurar y desplegar desde local mi infraestructura backend, así como consumir dicho backend desde el front de mi aplicación.

 

Nuevo llamado a la acción

 

 

Temas:Desarrollo de Software

Lecciones Pragma

Lecciones en Academia Pragma

Aquí encontrarás tutoriales técnicos para que apliques en temas de desarrollo de software, cloud, calidad en software y aplicaciones móviles. 

También puedes visitar nuestro Blog con contenido actual sobre Transformación Digital, Marketing, Conocimiento de Usuario y más. 

Blog

Suscríbete a la academia

Descarga la Guía para trabajar con ambientes IBM Websphere Portal