Configuración de AWS Mobile SDK para .NET y Xamarin - SDK para móviles de AWS

El AWS SDK para móviles de Xamarin ahora está incluido en AWS SDK for .NET. Esta guía hace referencia a la versión archivada del SDK para móviles para Xamarin.

Configuración de AWS Mobile SDK para .NET y Xamarin

Puede configurar AWS Mobile SDK para .NET y Xamarin y comenzar a crear un nuevo proyecto o puede integrar el SDK en un proyecto existente. También puede clonar y ejecutar las muestras para hacerse una idea del funcionamiento del SDK. Siga estos pasos para configurar AWS Mobile SDK para .NET y Xamarin y comenzar a usarlo.

Requisitos previos

Para poder utilizar AWS Mobile SDK para .NET y Xamarin, debe hacer lo siguiente:

Una vez completados los requisitos previos:

  1. Obtenga las credenciales de AWS con Amazon Cognito.

  2. Defina los permisos necesarios para cada servicio de AWS que utilice en la aplicación.

  3. Cree un nuevo proyecto en su IDE.

  4. Instale AWS Mobile SDK para .NET y Xamarin.

  5. Configure AWS Mobile SDK para .NET y Xamarin.

Paso 1: obtener las credenciales de AWS

Para realizar llamadas a AWS en su aplicación, primero debe obtener las credenciales de AWS. Para ello, utilizará Amazon Cognito, un servicio de AWS que permite a su aplicación obtener acceso a los servicios del SDK sin tener que integrar las credenciales de AWS privadas en la aplicación.

Para comenzar a utilizar Amazon Cognito, debe crear un grupo de identidades. Un grupo de identidades es un almacén de información específica de su cuenta y se identifica por medio de un ID de grupo de identidades único con un aspecto similar al siguiente:

"us-east-1:00000000-0000-0000-0000-000000000000"
  1. Inicie sesión en la consola de Amazon Cognito, elija Manage Federated Identities (Administrar identidades federadar) y después elija Create new identity pool (Crear nuevo grupo de identidades).

  2. Escriba un nombre para el grupo de identidades y active la casilla de verificación para habilitar el acceso a las identidades sin autenticar. Elija Create Pool (Crear grupo) para crear un grupo de identidades.

  3. Elija Allow (Permitir) para crear los dos roles predeterminados asociados a su grupo de identidades, uno para los usuarios sin autenticar y otro para los usuarios autenticados. Estos roles predeterminados proporcionan al grupo de identidades acceso a Amazon Cognito Sync y a Amazon Mobile Analytics.

Normalmente se usa solo un grupo de identidades por aplicación.

Después de crear su grupo de identidades, obtendrá las credenciales de AWS mediante la creación de un objeto CognitoAWSCredentials (transfiriéndole su ID de grupo de identidades) y, a continuación, transfiriéndolo al constructor de un cliente de AWS como se indica a continuación:

CognitoAWSCredentials credentials = new CognitoAWSCredentials ( "us-east-1:00000000-0000-0000-0000-000000000000", // Your identity pool ID RegionEndpoint.USEast1 // Region ); // Example for |MA| analyticsManager = MobileAnalyticsManager.GetOrCreateInstance( credentials, RegionEndpoint.USEast1, // Region APP_ID // app id );

Paso 2: definir los permisos

Debe definir los permisos de todos los servicios de AWS que desee utilizar en su aplicación. En primer lugar, debe comprender cómo ve AWS a los usuarios de su aplicación.

Cuando un usuario utiliza la aplicación y realiza llamadas a AWS, AWS le asigna una identidad. El grupo de identidades que creó en el paso 1 es la ubicación en la que AWS almacena estas identidades. Hay dos tipos de identidades: autenticadas y sin autenticar. Las identidades autenticadas pertenecen a los usuarios que se autentican con un proveedor de inicio de sesión público (por ejemplo, Facebook, Amazon, Google). Las identidades sin autenticar corresponden a los usuarios invitados.

Cada identidad está asociada a un rol de AWS Identity and Access Management. En el paso 1, creó dos roles de IAM, uno para los usuarios autenticados y otro para los usuarios sin autenticar. Cada rol de IAM tiene una o varias políticas adjuntas que especifican a qué servicios de AWS pueden obtener acceso las identidades asignadas a ese rol. Por ejemplo, la siguiente política de muestra concede acceso a un bucket de Amazon S3:

{ "Statement": [ { "Action": [ "s3:AbortMultipartUpload", "s3:DeleteObject", "s3:GetObject", "s3:PutObject" ], "Effect": "Allow", "Resource": "arn:aws:s3:::MYBUCKETNAME/*", "Principal": "*" } ] }

Para definir los permisos de los servicios de AWS que desea utilizar en su aplicación, tiene que modificar la política adjuntada a los roles.

  1. Vaya a la consola de IAM y elija Roles. Escriba el nombre del grupo de identidades en el campo de búsqueda. Elija el rol de IAM que desee configurar. Si su aplicación admite usuarios autenticados y no autenticados, debe conceder permisos a los dos roles.

  2. Haga clic en Attach Policy (Asociar política), seleccione la política que desee y haga clic en Attach Policy (Asociar política). Las políticas predeterminadas de los roles de IAM que ha creado proporcionan acceso a Amazon Cognito Sync y a Mobile Analytics.

Para obtener más información acerca de la creación de políticas o realizar una elección en una lista de políticas existentes, consulte Políticas de IAM.

Paso 3: Crear un nuevo proyecto de

Windows

Puede utilizar Visual Studio para desarrollar su aplicación.

OS X

Debe utilizar Visual Studio para desarrollar sus aplicaciones. El desarrollo con Xamarin en iOS requiere acceso a un equipo Mac para ejecutar la aplicación. Para obtener más información, consulte Installing Xamarin.iOS on Windows.

nota

El IDE comercial multiplataforma Rider de JetBrains incluye soporte para Xamarin en las plataformas Windows y Mac.

Paso 4: Instalar AWS Mobile SDK para .NET y Xamarin

Windows

Opción 1: instalar usando la consola de Package Manager

AWS Mobile SDK para .NET y Xamarin se compone de varios conjuntos de NET. Para instalar AWS Mobile SDK para .NET y Xamarin, ejecute el comando del paquete de instalación para cada paquete de la consola Package Manager. Por ejemplo, para instalar Cognito Identity, ejecute lo siguiente:

Install-Package AWSSDK.CognitoIdentity

Los paquetes AWS Core Runtime y Amazon Cognito Identity son necesarios para todos los proyectos. A continuación se ofrece una lista completa de los nombres de los paquetes de cada servicio.

Servicio Package name

AWS Core Runtime

AWSSDK.Core

Amazon Cognito Sync

AWSSDK.CognitoSync

Amazon Cognito Identity

AWSSDK.CognitoIdentity

Amazon DynamoDB

AWSSDK.DynamoDBv2

Amazon Mobile Analytics

AWSSDK.MobileAnalytics

Amazon S3

AWSSDK.S3

Amazon SNS

AWSSDK.SimpleNotificationService

Para incluir un paquete preliminar, inserte el argumento de línea de comandos -Pre al instalar el paquete como se indica a continuación:

Install-Package AWSSDK.CognitoSync -Pre

Puede encontrar una lista completa de los paquetes de servicios de AWS en Paquetes de AWS SDK en NuGet o en la sección sobre AWS SDK para .NET del repositorio de GitHub.

Opción 2: instalar por medio de un IDE

En Visual Studio

  1. Haga clic con el botón derecho en el proyecto y, a continuación, haga clic en Manage NuGet Packages.

  2. Busque el nombre del paquete que desee añadir a su proyecto. Para incluir los paquetes preliminares de NuGet, elija Include Prelease. Puede encontrar una lista completa de los paquetes de servicios de AWS en los paquetes de AWS SDK en NuGet.

  3. Elija el paquete y, a continuación, haga clic en Install (Instalar).

Mac (OS X)

En Visual Studio

  1. Haga clic con el botón derecho en la carpeta de paquetes y elija Add Packages.

  2. Busque el nombre del paquete que desee añadir a su proyecto. Para incluir los paquetes preliminares de NuGet, elija Show pre-release packages. Puede encontrar una lista completa de los paquetes de servicios de AWS en los paquetes de AWS SDK en NuGet.

  3. Active la casilla de verificación situada junto al paquete que desea y elija Add Package.

importante

Si está desarrollando aplicaciones mediante una biblioteca de clases portable, también debe añadir el paquete de NuGet AWSSDK.Core a todos los proyectos derivados de esa biblioteca.

Paso 5: Configurar AWS Mobile SDK para .NET y Xamarin

Definición del registro

Para configurar los ajustes de registro, use la clase Amazon.AWSConfigs y la clase Amazon.Util.LoggingConfig. Puede encontrarlas en el conjunto AWSSdk.Core, disponible a través de Nuget Package Manager en Visual Studio. Puede insertar el código de configuración de registro en el método OnCreate del archivo MainActivity.cs para las aplicaciones de Android o el archivo AppDelegate.cs para las aplicaciones de iOS. También debe añadir las declaraciones using Amazon y using Amazon.Util a los archivos .cs.

Configure los ajustes de registro como se indica a continuación:

var loggingConfig = AWSConfigs.LoggingConfig; loggingConfig.LogMetrics = true; loggingConfig.LogResponses = ResponseLoggingOption.Always; loggingConfig.LogMetricsFormat = LogMetricsFormatOption.JSON; loggingConfig.LogTo = LoggingOptions.SystemDiagnostics;

Al efectuar el registro en SystemDiagnostics, el marco de trabajo imprime internamente la salida en System.Console. Si desea registrar las respuestas de HTTP, defina la marca LogResponses. Los valores pueden ser Always, Never u OnError.

También puede registrar las métricas de desempeño de las solicitudes HTTP mediante la propiedad LogMetrics. El formato de registro se puede especificar mediante la utilización de la propiedad LogMetricsFormat. Los valores válidos son JSON o standard.

Definición del punto de enlace de la región

Configure la región predeterminada de todos los clientes de servicios como se indica a continuación:

AWSConfigs.AWSRegion="us-east-1";

De este modo se establece la región predeterminada para todos los clientes de servicios en el SDK. Puede invalidar este ajuste especificando explícitamente la región en el momento de crear una instancia del cliente de servicio, como se indica a continuación:

IAmazonS3 s3Client = new AmazonS3Client(credentials,RegionEndpoint.USEast1);

Configuración de los ajustes del proxy HTTP

Si su red está detrás de un proxy, puede configurar el proxy para las solicitudes HTTP como se indica a continuación.

var proxyConfig = AWSConfigs.ProxyConfig; proxyConfig.Host = "localhost"; proxyConfig.Port = 80; proxyConfig.Username = "<username>"; proxyConfig.Password = "<password>";

Corrección del sesgo del reloj

Esta propiedad determina si el SDK debe corregir el sesgo del reloj del cliente determinando la hora correcta del servidor y reenviando la solicitud con la hora correcta.

AWSConfigs.CorrectForClockSkew = true;

Este campo se define si una llamada a un servicio ha generado una excepción y el SDK ha determinado que existe una diferencia entre la hora del servidor y la local.

var offset = AWSConfigs.ClockOffset;

Para obtener más información acerca del sesgo del reloj, consulte Clock-skew Correction en el Blog de AWS.

Pasos siguientes

Ahora que ha configurado AWS Mobile SDK para .NET y Xamarin, puede:

  • Introducción. Lea Introducción a AWS Mobile SDK para .NET y Xamarin para obtener instrucciones de inicio rápido sobre cómo utilizar y configurar los servicios en AWS Mobile SDK para .NET y Xamarin.

  • Explorar los temas del servicio. Obtenga más información acerca de cada servicio y de cómo funciona en AWS Mobile SDK para .NET y Xamarin.

  • Ejecutar las demostraciones. Vea nuestras aplicaciones de muestra de Xamarin, que ejemplifican casos de uso comunes. Para ejecutar las aplicaciones de muestra, configure AWS Mobile SDK para .NET y Xamarin como se ha descrito anteriormente y siga las instrucciones incluidas en los archivos README de cada muestra.

  • Familiarizarse con las API. Ver la |sdk-xamarin-ref|_.

  • Plantee preguntas: publique preguntas en los foros de AWS Mobile SDK o abra una incidencia en GitHub.