設定適用於 .NET 和 Xamarin 的 AWS Mobile SDK - AWS Mobile SDK

Xamarin 的AWS行動 SDK 現在已包含在AWS SDK for .NET. 本指南參考 Xamarin 行動 SDK 的封存版本。

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

設定適用於 .NET 和 Xamarin 的 AWS Mobile SDK

您可以設置適用於 .NET 和 Xamarin 的 AWS 移動開發工具包,並開始構建新項目,也可以將開發工具包與現有項目集成。您也可以複製和執行樣本來瞭解 SDK 的工作原理。請按照以下步驟設定並開始使用適用於 .NET 和 Xamarin 的 AWS Mobile SDK。

先決條件

在使用適用於 .NET 和 Xamarin 的 AWS Mobile SDK in 之前,您必須執行以下操作:

在您完成事前準備後:

  1. 通過使用 Amazon Cognito 獲取 AWS 證書。

  2. 為您將在應用程序中使用的每個 AWS 服務設置所需的權限。

  3. 在 IDE 中建立新專案。

  4. 安裝適用 .NET 和 Xamarin 的 AWS Mobile SDK

  5. 配置適用於 .NET 和 Xamarin 的 AWS Mobile SDK

步驟 1:取得 AWS 憑證

要在應用程序中調用 AWS,您必須首先獲取 AWS 證書。您可以使用 Amazon Cognito(AWS 服務)來完成此操作,該服務允許您的應用程序訪問軟件開發工具包中的服務,而無需在應用程序中嵌入私有 AWS 證書。

要開始使用 Amazon Cognito,您需要創建一個身份池。身分集區是特定於您的帳户的信息存儲區,由如下所示的唯一身份集區 ID 進行標識。 :

"us-east-1:00000000-0000-0000-0000-000000000000"
  1. 登錄到Amazon Cognito 主控台,選擇管理聯合身分,然後選擇建立新的身分集區

  2. 輸入身分集區的名稱,然後選中該複選框以允許對未驗證身份的訪問。選擇建立集區以建立身分集區。

  3. 選擇Allow以建立與身分集區相關聯的兩個默認角色,一個用於未經驗證的使用者,另一個用於已驗證的使用者。這兩個預設角色可讓您的身分集區存取 Amazon Cognito Sync (Amazon Cognito) 和 Amazon Mobile Analytics

通常,每個應用程序只能使用一個標識池。

在您建立身分集區後,您 AWS 以通過創建CognitoAWSCredentials對象(傳遞您的身份池 ID),然後將其傳遞給 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 服務的權限,請修改附加到角色的策略。

  1. 前往IAM 控制台,然後選擇角色。在搜尋方塊中輸入您的身分集區名稱。選擇您要設定的 IAM 角色。如果您的應用程序同時允許經過身份驗證的用户和未經身份驗證的用户,則需要為這兩個角色授予權限。

  2. 按一下連接政策,選擇您希望下一步的政策,然後按一下連接政策。您創建的 IAM 角色的默認策略提供了對 Amazon Cognito 同步和 Mobile Analytics 的訪問權限。

有關創建政策或從現有政策列表中進行選擇的詳細資訊,請參IAM 政策

步驟 3:建立新的 專案

Windows

您可以使用 Visual Studio 開發您的應用程式。

OS X

您可以使用 Visual Studio 開發您的應用程序。使用 Xamarin 的 iOS 開發需要訪問 Mac 才能運行您的應用程序。如需詳細資訊,請參閱「」在窗口上安裝

注意

跨平台商用 IDE騎士從JetBrains在 Windows 和 Mac 平台上都包括 Xamarin 支持。

步驟 4:安裝適用於 .NET 和 Xamarin 的 AWS Mobile SDK

Windows

選項 1:使用套件管理員主控台進行安裝

適用於 .NET 和 Xamarin 的 AWS 行動開發套件由一組 .NET 集團組成。要安裝適用於 .NET 和 Xamarin 的 AWS 移動開發工具包,請在軟件包管理器控制台中為每個軟件包運行安裝包命令。例如,要安裝 Cognito 身份,請運行以下命令。 :

Install-Package AWSSDK.CognitoIdentity

所有項目都需要 AWS 核心運行時和 Amazon Cognito 身份包。以下是每個服務的軟件包名稱的完整列表。

服務 套件名稱

AWS 核心運行時間

AWSSDK.core

Amazon Cognito Sync

AWSSDK.CognitoSync

Amazon Cognito 身分

AWSSDK.CognitoIdentity

Amazon DynamoDB

AWSSDK.動態oDBv2

Amazon Mobile Analytics

AWSSDK.MobileAnalytics

Simple Storage Service (Amazon S3)

AWSSDK.S3

Amazon SNS

AWSSDK。SimpleNotificationService (服務)

要包含售前發佈包,請在-Pre命令行參數,同時安裝軟件包,如下所示。 :

Install-Package AWSSDK.CognitoSync -Pre

您可以在以下網址找到 AWS 服務包的完整列表:AWS 開發套件NuGet適用於 .NET 的 AWS 開發套件GitHub儲存庫

選項 2:通過使用 IDE 進行安裝

Visual Studio

  1. 用鼠右鍵按一下專案,然後按一下Manage (管理)NuGet套件

  2. 搜尋您要新增至項目的套件名稱。要包括預租用NuGet軟件包,選擇包含預租用。您可以在以下網址找到 AWS 服務包的完整列表:AWS 開發套件NuGet

  3. 選擇套件,然後選擇 Install (安裝)

Mac

Visual Studio

  1. 用鼠右鍵按一下套件文件夾,然後選擇新增套件

  2. 搜尋您要新增至項目的套件名稱。要包括預租用NuGet軟件包,選擇顯示預發佈軟件包。您可以在以下網址找到 AWS 服務包的完整列表:AWS 開發套件NuGet

  3. 選取您希望下載的套件旁的核取方塊,然後選擇新增套件

重要

如果您使用便攜式類庫開發,您還必須將AWSSDK.coreNuGet包添加到從可移植類庫派生的所有項目。

步驟 5:配置適用於 .NET 和 Xamarin 的 AWS Mobile SDK

設定記錄

您可以通過使用Amazon.AWSConfigs類別和Amazon.Util.LoggingConfig類別。您可以在AWSSdk.Core組件,可以通過 Visual Studio 中的 Nuget 套件管理員獲取。您可以將日誌記錄設置代碼放在OnCreate方法MainActivity.cs文件或AppDelegate.cs文件中的 iOS 應用程序。您也應該新增using Amazonusing 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旗標。這些值可以是「始終」、「從不」或OnError。

您還可以通過使用LogMetrics屬性。日誌格式可以通過使用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 博客上。

後續步驟

現在您已經設定適用於 .NET 和 Xamarin 的 AWS Mobile SDK in,您可以:

  • 開始使用。閱讀適用於 .NET 和 Xamarin 的 AWS Mobile SDK以取得有關如何使用和配置適用於 .NET 和 Xamarin 的 AWS Mobile SDK in 的快速入門説明。

  • 瀏覽服務主題。瞭解每項服務及其在適用於 .NET 和 Xamarin 的 AWS Mobile SDK in 的工作原理。

  • 執行示範。查看我們的範例 Xamarin 應用程式,展示常見的使用案例。要運行示例應用程序,請按照前述的方式設置適用於 .NET 和 Xamarin 的 AWS 移動開發工具包,然後按照單個示例的自述文件中包含的説明進行操作。

  • 瞭解 API。檢視|sdk-xamarin-ref|_

  • 提問問題:將問題發佈到AWS Mobile SDK或者打開問題GitHub