AWS Mobile SDK for Xamarin은 이제 AWS SDK for .NET에 포함됩니다. 이 안내서에서는 Xamarin용 모바일 SDK의 아카이브된 버전을 참조합니다.
.NET and Xamarin용 AWS Mobile SDK 설정
.NET 및 Xamarin용 AWS Mobile SDK를 설정한 후 새 프로젝트를 빌드하거나 SDK를 기존 프로젝트에 통합할 수 있습니다. 또한 샘플
필수 조건
.NET and Xamarin용 AWS Mobile SDK and Xamarin을 사용하려면 먼저 다음 작업을 수행해야 합니다.
사전 조건을 모두 충족한 후:
-
Amazon Cognito를 사용하여 AWS 자격 증명을 받습니다.
-
애플리케이션에서 사용할 각 AWS 서비스에 필요한 권한을 설정합니다.
-
IDE에서 새 프로젝트를 생성합니다.
-
.NET 및 Xamarin용 AWS Mobile SDK를 설치합니다.
-
.NET 및 Xamarin용 AWS Mobile SDK을 구성합니다.
1단계: AWS 자격 증명 얻기
애플리케이션에서 AWS를 호출하려면 먼저 AWS 자격 증명을 얻어야 합니다. 이렇게 하려면 애플리케이션에 프라이빗 AWS 자격 증명을 포함하지 않고도 애플리케이션이 SDK에서 서비스에 액세스할 수 있도록 하는 AWS 서비스인 Amazon Cognito를 사용합니다.
Amazon Cognito를 시작하려면 자격 증명 풀을 생성해야 합니다. 자격 증명 풀은 다음과 같은 고유한 자격 증명 풀 ID로 식별되는 계정에 고유한 정보의 스토어입니다.
"us-east-1:00000000-0000-0000-0000-000000000000"
-
Amazon Cognito 콘솔
에 로그인하고 연동 자격 증명 관리와 새 자격 증명 풀 생성을 차례대로 선택합니다. -
자격 증명 풀의 이름을 입력하고 확인란을 선택하여 인증되지 않은 자격 증명에 대해 액세스를 활성화합니다. 풀 생성을 선택하여 자격 증명 풀을 생성합니다.
-
허용을 선택하여 자격 증명 풀과 연결된 기본 역할 두 개(인증되지 않은 사용자의 역할 하나, 인증된 사용자의 역할 하나)를 생성합니다. 이 기본 역할은 Amazon Cognito Sync 및 Amazon Mobile Analytics에 대한 자격 증명 풀 액세스를 제공합니다.
일반적으로 애플리케이션당 하나의 자격 증명 풀만 사용합니다.
자격 증명 풀을 생성한 후 다음과 같이 CognitoAWSCredentials
객체를 생성(자격 증명 풀 ID를 전달)하고 AWS 클라이언트의 생성자에 전달하여 AWS 자격 증명을 얻습니다.
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 );
2단계: 권한 설정
애플리케이션에서 사용하려는 모든 AWS 서비스에 필요한 권한을 설정해야 합니다. 먼저 어떻게 AWS가 애플리케이션의 사용자를 보는지 이해해야 합니다.
누군가 애플리케이션을 사용하고 AWS를 호출하면 AWS는 해당 사용자에게 자격 증명을 할당합니다. 1단계에서 생성한 자격 증명 풀이 AWS가 이러한 자격 증명을 저장하는 위치입니다. 자격 증명에는 두 가지 유형, 즉 인증된 자격 증명과 인증되지 않은 자격 증명이 있습니다. 인증된 자격 증명은 퍼블릭 로그인 공급자(예: Facebook, Amazon, Google)에 의해 인증된 사용자를 위한 것이고, 인증되지 않은 자격 증명은 게스트 사용자를 위한 것입니다.
모든 자격 증명은 AWS Identity and Access Management 역할과 연결되어 있습니다. 1단계에서 인증된 사용자와 인증되지 않은 사용자에 대해 각각 IAM 역할을 하나씩 총 두 개 생성했습니다. 모든 IAM 역할에는 해당 역할에 할당된 자격 증명이 액세스할 수 있는 AWS 서비스를 지정하는 정책이 하나 이상 연결되어 있습니다. 예를 들어 다음 샘플 정책은 Amazon S3 버킷에 대한 액세스 권한을 부여합니다.
{ "Statement": [ { "Action": [ "s3:AbortMultipartUpload", "s3:DeleteObject", "s3:GetObject", "s3:PutObject" ], "Effect": "Allow", "Resource": "arn:aws:s3:::MYBUCKETNAME/*", "Principal": "*" } ] }
애플리케이션에서 사용하려는 AWS 서비스에 대한 권한을 설정하려면 역할에 연결된 정책을 수정합니다.
-
IAM 콘솔로 이동하여 역할을 선택
합니다. 검색 상자에 자격 증명 풀 이름을 입력합니다. 구성할 IAM 역할을 선택합니다. 애플리케이션이 인증된 사용자와 인증되지 않은 사용자를 모두 허용할 경우 두 역할 모두에 권한을 부여해야 합니다. -
정책 연결을 클릭하고 원하는 정책을 선택한 다음 정책 연결을 클릭합니다. 앞서 생성한 IAM 역할의 기본 정책은 Amazon Cognito Sync 및 Mobile Analytics에 대한 액세스 권한을 부여합니다.
정책 생성 또는 기존 정책 목록에서 정책 선택에 대한 자세한 내용은 IAM 정책을 참조하세요.
3단계: 새 프로젝트 생성
Windows
Visual Studio를 사용하여 애플리케이션을 개발할 수 있습니다.
OS X
Visual Studio를 사용하여 애플리케이션을 개발할 수 있습니다. Xamarin을 이용한 iOS 개발에서는 앱을 실행하기 위한 Mac 액세스 권한이 있어야 합니다. 자세한 내용은 Windows에 Xamarin.iOS 설치
참고
JetBrains의 크로스 플랫폼 상용 IDE Rider
4단계: .NET and Xamarin용 AWS Mobile SDK 설치
Windows
옵션 1: Package Manager 콘솔을 사용하여 설치
.NET 및 Xamarin용 AWS Mobile SDK는 일련의 .NET 어셈블리로 구성되어 있습니다. .NET 및 Xamarin용 AWS Mobile SDK를 설치하려면 Package Manager 콘솔에서 각 패키지에 대해 install-package 명령을 실행해야 합니다. 예를 들어 Cognito Identity를 설치하려면 다음을 실행합니다.
Install-Package AWSSDK.CognitoIdentity
AWS Core Runtime 및 Amazon Cognito Identity 패키지는 모든 프로젝트에 필요합니다. 다음은 각 서비스용 패키지 이름의 전체 목록입니다.
서비스 | 패키지 이름 |
---|---|
AWS Core Runtime |
AWSSDK.Core |
Amazon Cognito Sync |
AWSSDK.CognitoSync |
Amazon Cognito 자격 증명 |
AWSSDK.CognitoIdentity |
Amazon DynamoDB |
AWSSDK.DynamoDBv2 |
Amazon Mobile Analytics |
AWSSDK.MobileAnalytics |
Amazon S3 |
AWSSDK.S3 |
Amazon SNS |
AWSSDK.SimpleNotificationService |
프리뷰 버전 패키지를 포함하려면 패키지를 설치하는 동안 다음과 같이 -Pre
명령줄 인수를 삽입합니다.
Install-Package AWSSDK.CognitoSync -Pre
AWS 서비스 패키지의 전체 목록은 NuGet의 AWS SDK 패키지
옵션 2: IDE를 사용하여 설치
Visual Studio
-
프로젝트를 마우스 오른쪽 버튼으로 클릭하고 Manage NuGet Packages(NuGet 패키지 관리)를 클릭합니다.
-
프로젝트에 추가하려는 패키지 이름을 검색합니다. 프리뷰 버전 NuGet 패키지를 포함하려면 Include Prelease(프리뷰 포함)를 선택합니다. AWS 서비스 패키지의 전체 목록은 AWS SDK packages on NuGet
에서 확인할 수 있습니다. -
패키지를 선택하고 Install(설치)을 선택합니다.
Mac(OS X)
Visual Studio
-
패키지 폴더를 마우스 오른쪽 버튼으로 클릭하고 패키지 추가를 선택합니다.
-
프로젝트에 추가하려는 패키지 이름을 검색합니다. 프리뷰 버전 NuGet 패키지를 포함하려면 Show pre-release packages(프리뷰 패키지 표시)를 선택합니다. AWS 서비스 패키지의 전체 목록은 AWS SDK packages on NuGet
에서 확인할 수 있습니다. -
원하는 패키지 옆의 확인란을 선택하고 패키지 추가를 선택합니다.
중요
Portable Class Library를 사용하여 개발하는 경우 Portable Class Library에서 파생되는 모든 프로젝트에도 AWSSDK.Core NuGet 패키지를 추가해야 합니다.
5단계: .NET and Xamarin용 AWS Mobile SDK 구성
로깅 설정
Amazon.AWSConfigs
클래스 및 Amazon.Util.LoggingConfig
클래스를 사용하여 로깅 설정을 지정합니다. 이러한 클래스는 Visual Studio에서 Nuget Package Manager를 통해 사용할 수 있는 AWSSdk.Core
어셈블리에 포함되어 있습니다. 로깅 설정 코드는 OnCreate
파일(Android 앱의 경우) 또는 MainActivity.cs
파일(iOS 앱의 경우)의 AppDelegate.cs
메서드에 배치할 수 있습니다. using
Amazon
및 using Amazon.Util
문도 .cs 파일에 추가할 수 있습니다.
다음과 같이 로깅 설정을 구성합니다.
var loggingConfig = AWSConfigs.LoggingConfig; loggingConfig.LogMetrics = true; loggingConfig.LogResponses = ResponseLoggingOption.Always; loggingConfig.LogMetricsFormat = LogMetricsFormatOption.JSON; loggingConfig.LogTo = LoggingOptions.SystemDiagnostics;
SystemDiagnostics에 로깅할 때 프레임워크가 내부적으로 System.Console에 출력합니다. HTTP 응답을 로깅하려면 LogResponses
플래그를 설정합니다. 값은 Always, Never 또는 OnError가 될 수 있습니다.
또한 LogMetrics
속성을 사용하여 HTTP 요청에 대한 성능 지표를 로깅할 수도 있습니다. 로그 형식은 LogMetricsFormat
속성을 사용하여 지정할 수 있습니다. 유효한 값은 JSON 또는 표준입니다.
리전 엔드포인트 설정
다음과 같이 모든 서비스 클라이언트의 기본 리전을 구성합니다.
AWSConfigs.AWSRegion="us-east-1";
그러면 SDK 내 모든 서비스 클라이언트에 대해 기본 리전이 설정됩니다. 다음과 같이 서비스 클라이언트의 인스턴스를 생성할 때 명시적으로 리전을 지정하여 이 설정을 재정의할 수 있습니다.
IAmazonS3 s3Client = new AmazonS3Client(credentials,RegionEndpoint.USEast1);
HTTP 프록시 설정 구성
네트워크가 프록시를 사용하는 경우 다음과 같이 HTTP 요청에 대한 프록시 설정을 구성할 수 있습니다.
var proxyConfig = AWSConfigs.ProxyConfig; proxyConfig.Host = "localhost"; proxyConfig.Port = 80; proxyConfig.Username = "<username>"; proxyConfig.Password = "<password>";
클럭 스큐 보상
이 속성은 SDK가 정확한 서버 시간을 측정하고 올바른 시간으로 요청을 재발행하여 클라이언트 클럭 스큐를 보상해야 하는지 여부를 결정합니다.
AWSConfigs.CorrectForClockSkew = true;
서비스 호출에서 예외가 발생하고 SDK가 로컬 시간과 서버 시간 간 차이를 확인할 경우 이 필드가 설정됩니다.
var offset = AWSConfigs.ClockOffset;
클럭 스큐에 대한 자세한 내용은 AWS 블로그에서 Clock-skew Correction
다음 단계
.NET and Xamarin용 AWS Mobile SDK 설정 완료 후 다음을 수행할 수 있습니다.
-
시작하기. .NET용 AWS Mobile SDK 및 Xamarin에서 서비스를 사용하고 구성하는 방법에 대한 빠른 시작 지침은 .NET용 AWS Mobile SDK 및 Xamarin .NET용 AWS Mobile SDK 시작하기를 참조하세요.
-
서비스 주제 살펴보기. 각 서비스에 대해 알아보고 .NET and Xamarin용 AWS Mobile SDK and Xamarin에서 어떻게 작동하는지 알아보세요.
-
데모 실행. 일반 사용 사례를 보여 주는 샘플 Xamarin 애플리케이션
을 봅니다. 샘플 앱을 실행하려면 앞서 설명한 대로 .NET 및 Xamarin용 AWS Mobile SDK를 설정하고 개별 샘플의 README 파일에 수록된 지침을 따릅니다. -
API 알아보기. |sdk-xamarin-ref|_를 봅니다.
-
질문하기: AWS Mobile SDK Forums
에 질문을 올리거나 GitHub에 문제를 개설 합니다.