AWS Amplify で作成された AppSync GraphQL API を使用する iOS アプリがあります。IAM を介して、(認証されていないユーザーの) パブリック認証でいくつかのクエリを利用できるようにしたいと考えています。この公開ケースでは、API を呼び出すときに、から次のエラーが発生しますAWSAppSync/AWSAppSyncClient/AWSAppSyncHTTPNetworkTransport.swift
。
Fatal error: Credentials Provider and endpoint not set
AppSync の初期化は AppDelegate で行われます。
let serviceConfigIAM = try AWSAppSyncServiceConfig(forKey: "bookapi_AWS_IAM")
let cacheConfigIAM = try AWSAppSyncCacheConfiguration(useClientDatabasePrefix: true, appSyncServiceConfig: serviceConfigIAM)
let clientConfigIAM = try AWSAppSyncClientConfiguration(appSyncServiceConfig: serviceConfigIAM, cacheConfiguration: cacheConfigIAM)
appSyncClient = try AWSAppSyncClient(appSyncConfig: clientConfigIAM)
AWSAppSyncClientConfiguration#makeNetworkTransportForIAM
resolveCredentialsProvider が nil であることに気付きました:
// Evaluates to nil
let resolvedCredentialsProvider = authProvider ?? AWSServiceInfo().cognitoCredentialsProvider
認証情報プロバイダーを作成して AppSync クライアント構成に渡す必要がありますか? 認証されていないユーザーに IAM を使用するにはどうすればよいですか?