バージョン 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 をサポートするため、SDK バージョン 3.5 の AWSSDK.Core パッケージから Unity 固有のコードが除外されました。一部の上位レベルの機能も除外されました。すべての レガシー Unity コードは aws/aws-sdk-unity-net GitHub リポジトリで参照可能であり、移行に役立てることができます。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/20https://github.com/aws/dotnet/issues/19) のいずれかまたは両方で報告できます。また、Amazon Cognito Sync マネージャーと Amazon Mobile Analytics マネージャーのライブラリは、GitHub リポジトリ (aws/amazon-cognito-sync-manager-netaws/aws-mobile-analytics-manager-net) から入手できます。

同期コードの移行

AWS SDK for .NETのバージョン 3.5 は、.NET フレームワークと.Net Standard (.NET Core 3.1、.NET 5 などの.NET Core バージョンによる) の両方をサポートしています。.Net Standardに準拠する 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 を使用するには、代わりに 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}");