2017-09-22 45 views
0

次のAWS Lambdaベースのアプリケーションクライアントを使用して、私はCognitoのユーザープールからすべてのユーザーをリストしようとしています。AWS Cognito ListUsers InvalidParameterExceptionカスタム属性でAttributesToGetを使用しています

let AWS = require('aws-sdk') 
const COGNITO_CLIENT = new AWS.CognitoIdentityServiceProvider() 
COGNITO_CLIENT.listUsers({ 
    UserPoolId: 'MyUserPoolId', 
    AttributesToGet: ['default_attribute', 'custom:my_attribute'] 
}, callback) 

すべての属性をデフォルトで照会するとすべて正常に動作します(AttributesToGet: [] // or excluding this field altogether)。ただし、カスタム属性を対象とする場合、InvalidParameterExceptionが発生します。これは、Node.jsにAmazon SDKを使用しています。

ターゲットデフォルトの属性は、しかし許可されています。

AttributesToGet: ['email', 'name', /* other non-custom */] 
+0

'AttributesToGet'がパターン' [\\ p {L} \\ p {M} \\ p {S} \\ p {N} \\ p {P}] + ' –

+0

と一致していることを確認してください。カスタム属性への読み取りアクセス権を持ちます。クライアントの後に属性が作成された場合、クライアントはデフォルトでクライアントにアクセスできません。クライアントの詳細の下にあり、リンクをクリックしてアクセスを変更します。 – doorstuck

+0

私はチェックして、アプリケーションクライアントに読み取りアクセス権があります。すべての属性が返されるように要求すると、カスタム属性が返されます。 'AttributesToGet'を使ってそれらを対象とすると、例外が発生する – Nogurenn

答えて

0

あなたのコードが正しいです。しかし、私はCognitoチームを務めており、現時点ではカスタム属性の検索はサポートしていません。

+1

AttributesToGetについてその部分を文書化できますか?フィルタパラメータのドキュメントにはカスタム属性を検索できないと書かれていますが、AttributesToGetセクションでは、フィルタと同じ検索アルゴリズムを暗黙的に使用するため、カスタム属性のターゲティングは許可されていない。私はそれが直感的ではないことがわかります。正確には検索ではなく、返された属性をターゲットにしているだけです。それは、カスタム属性をAttributeToGetのターゲットとして扱うことができるはずです – Nogurenn

関連する問題