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:
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'
}
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`
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. |
1 |
amplify add auth |
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 |
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 |
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.