バージョン 3.5 の AWS SDK for .NET への移行 - AWS SDK for .NET

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

バージョン 3.5 の AWS SDK for .NET への移行

バージョン 3.5 の AWS SDK for .NET は、SDK のすべての非 Framework バリエーションに対するサポートを .NET Standard 2.0 に移行することで、.NET エクスペリエンスの標準化を進めます。環境とコードベースによっては、バージョン 3.5 の機能を利用するために、特定の移行作業が必要になる場合があります。

このトピックでは、バージョン 3.5 の変更点と、環境やコードをバージョン 3 から移行するために必要な作業について説明します。

バージョン 3.5 の変更点

AWS SDK for .NET バージョン 3.5 で変更された点と変更されていない点について以下に説明します。

.NET Framework と .NET Core

.NET Framework と .NET Core に対するサポートは変更されていません。

Xamarin

Xamarin プロジェクト (新規および既存) は、.NET Standard 2.0 を対象とする必要があります。「Xamarin.Forms での .NET Standard 2.0 のサポート」および「.NET 実装サポート」を参照してください。

Unity

Unity アプリは、Unity 2018.1 以降を使用する .NET Standard 2.0 または .NET 4.x プロファイルを対象とする必要があります。詳細については、「.NET profile suppot」を参照してください。さらに、IL2CPP を使用してビルドする場合は、link.xml ファイルを追加してコードストリッピングを無効にする必要があります。詳細については、「Referencing the AWS SDK for .NET Standard 2.0 from Unity, Xamarin, or UWP」を参照してください。推奨されているコードベースのいずれかにコードを移植すると、SDK が提供するすべてのサービスに Unity アプリからアクセスできます。

Unity は .NET Standard 2.0 をサポートしています。AWSSDK.CoreSDK バージョン 3.5 の Unity 固有のコードが除外されました。一部の上位レベルの機能も除外されました。より良い移行を提供するために、すべてのレガシーUnity コードは、参照できます。aws/aws-sdk-unity-net GitHub repository. Unity での AWS の使用に関連する機能が不足している場合は、https://github.com/aws/dotnet/issues で機能のリクエストを申請できます。

また、「Unity のサポートに関する特別な考慮事項」も参照してください。

ユニバーサル Windows プラットフォーム (UWP)

UWP アプリケーションの対象はバージョン 16299 以降 (2017 年 10 月リリースの Fall Creators Update、バージョン 1709) とします。

Windows Phone と Silverlight

これらのプラットフォームは、Microsoft で現在開発されていないため、バージョン 3.5 の AWS SDK for .NET ではサポートされません。詳細については、次を参照してください。

レガシーポータブルクラスライブラリ (プロファイルベースの PCL)

ライブラリを .NET Standard に再ターゲットすることを検討します。詳細については、「ポータブルクラスライブラリとの比較」を参照してください。

Amazon Cognito Sync マネージャーと Amazon Mobile Analytics マネージャー

Amazon Cognito Sync と Amazon Mobile Analytics の使用を容易にする高レベルの抽象化は、バージョン 3.5 の AWS SDK for .NET から削除されています。Amazon Cognito Sync の代わりに AWS AppSync の使用が推奨されます。Amazon Mobile Analytics の 代わりに Amazon Pinpoint の使用が推奨されています。

上位レベルのライブラリコードの欠如によって上位レベルのライブラリコードの欠如によっても影響を受ける場合は、上位レベルのライブラリコードの欠如によってAWS AppSyncと Amazon Pinpoint では、次のいずれかまたは両方で報告できます。 GitHub 問題点:https://github.com/aws/dotnet/issues/20)そしてhttps://github.com/aws/dotnet/issues/19)。Amazon Cognito Sync マネージャーと Amazon Mobile Analytics マネージャーと Amazon Mobile Analytics マネージャーは、Amazon Cogn GitHub リポジトリ:aws/amazon-cognito-sync-manager-netそしてaws/aws-mobile-analytics-manager-net

同期コードの移行

バージョン 3.5 のAWS SDK for .NET.NET フレームワークと .NET 標準の両方をサポートしています (.NET コア 3.1、.NET 5 などの.NET Core バージョンを介して)。.NET 標準に準拠する SDK のバリエーションでは非同期メソッドしか提供されないため、.NET Standard を利用するには、非同期で実行されるように同期コードを変更する必要があります。

次のコードスニペットは、同期コードを非同期コードに変更する方法を示しています。これらのスニペットのコードでは、Amazon S3 バケットの数を表示します。

元のコードは、次のようになります。ListBuckets

private static ListBucketsResponse MyListBuckets() { var s3Client = new AmazonS3Client(); var response = s3Client.ListBuckets(); return response; } // From the calling function ListBucketsResponse response = MyListBuckets(); Console.WriteLine($"Number of buckets: {response.Buckets.Count}");

バージョン 3.5 の SDK を使用するには、SDK を使用するには、SDK を使用するには、ListBucketsAsync代わりに。

private static async Task<ListBucketsResponse> MyListBuckets() { var s3Client = new AmazonS3Client(); var response = await s3Client.ListBucketsAsync(); return response; } // From an **asynchronous** calling function ListBucketsResponse response = await MyListBuckets(); Console.WriteLine($"Number of buckets: {response.Buckets.Count}"); // OR From a **synchronous** calling function Task<ListBucketsResponse> response = MyListBuckets(); Console.WriteLine($"Number of buckets: {response.Result.Buckets.Count}");