

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

# データソースへの直接アクセスと Lambda データソース経由のプロキシのどちらかを選択する
<a name="choosing-data-source"></a>

 AWS AppSync と `APPSYNC_JS`ランタイムを使用すると、 AWS AppSync 関数を使用してデータソースにアクセスすることで、カスタムビジネスロジックを実装する独自のコードを記述できます。これにより、追加の計算 AWS サービスやインフラストラクチャをデプロイすることなく、Amazon DynamoDB、Aurora Serverless、OpenSearch Service、HTTP APIs、その他の サービスなどのデータソースと直接やり取りすることが容易になります。 AWS AppSync では、Lambda データソースを設定することで、 AWS Lambda 関数の操作も簡単です。Lambda データソースを使用すると、 AWS Lambdaのフルセット機能を使用して複雑なビジネスロジックを実行し、GraphQL リクエストを解決できます。ほとんどの場合、ターゲットデータソースに直接接続された AWS AppSync 関数は、必要なすべての機能を提供します。`APPSYNC_JS` ランタイムでサポートされていない複雑なビジネスロジックを実装する必要がある状況では、Lambda データソースをプロキシとして使用してターゲットデータソースとやり取りできます。


|  |  |  | 
| --- |--- |--- |
|  | データソースの直接統合 | プロキシとしての Lambda データソース | 
| ユースケース | AWS AppSync functions interact directly with API data sources. | AWS AppSync functions call Lambdas that interact with API data sources. | 
| Runtime | APPSYNC\$1JS (JavaScript) | サポートされる Lambda ランタイム | 
| Maximum size of code |  AWS AppSync 関数あたり 32,000 文字 | 50 MB (zip 圧縮済み、直接アップロード) | 
| External modules | 制限あり-APPSYNC\$1JS がサポートしている機能のみ | はい | 
| Call any AWS service | はい - AWS AppSync HTTP データソースの使用 | はい - AWS SDK の使用 | 
| Access to the request header | はい  | あり | 
| Network access | なし | あり | 
| File system access | なし | はい | 
| Logging and metrics | はい | はい | 
| Build and test entirely within AppSync | あり | なし | 
| Cold start | いいえ | No - プロビジョニング済み同時実行 | 
| Auto-scaling | はい - AWS AppSync によって透過的に | Yes - Lambda で設定されているとおり | 
| Pricing | 追加料金なし | Lambda の使用に対して課金 | 

ターゲットデータソースと直接統合するAWS AppSync 関数は、次のようなユースケースに最適です。
+  Amazon DynamoDB、Aurora サーバーレス、OpenSearch サービスとのやり取り
+  HTTP API とのやりとりと受信ヘッダーの受け渡し 
+  HTTP データソースを使用して AWS サービスとやり取りする (指定されたデータソースロールを使用してリクエスト AWS AppSync に自動的に署名する) 
+  データソースにアクセスする前のアクセス制御の実装 
+  リクエストに応答する前に、取得したデータをフィルター処理する。
+  リゾルバーパイプラインでの AWS AppSync 関数のシーケンシャル実行によるシンプルなオーケストレーションの実装 
+  クエリとミューテーションにおけるキャッシュ接続とサブスクリプション接続の制御。

Lambda データソースをプロキシとして使用するAWS AppSync 関数は、次のようなユースケースに最適です。
+  JavaScript または Velocity TL (VTL) 以外の言語を使用する 
+  CPU またはメモリの調整と制御によるパフォーマンスの最適化 
+  サードパーティ製ライブラリのインポートまたは `APPSYNC_JS` でサポートされていない機能の使用が必要 
+  複数のネットワークリクエストを行ったり、クエリを実行するためにファイルシステムにアクセスしたりする 
+  [バッチ設定](https://docs.aws.amazon.com/appsync/latest/devguide/resolver-reference-lambda-js.html)を使用してリクエストをバッチ処理する。