クラス「CreateIdentityPool」を使用して、 AWS Cognito プール IDを設定する nodeJS スクリプトを作成しました。
var cognitoidentity = new AWS.CognitoIdentity();
var params = {
"IdentityPoolName": "samplePool",
"AllowUnauthenticatedIdentities": true,
"CognitoIdentityProviders": [
{
"ClientId": "xxxxxxxxxxx-qea4ebra0gipd0krefi37v8f48svrp8e.apps.googleusercontent.com", /* google client ID */
"ProviderName": "accounts.google.com"
}
],
"DeveloperProviderName": "mypool"
};
cognitoidentity.createIdentityPool(params, function(err, data) {
if (err) console.log(err, err.stack); // an error occurred
else console.log(data); // successful response
});
しかし、以下のエラーが発生しました:
{ [ValidationException: 1 個の検証エラーが検出されました: 'cognitoIdentityProviders.1.member.clientId' の値 'xxxxxxxxxxx-qea4ebra0gipd0krefi37v8f48svrp8e.apps.googleusercontent.com' は制約を満たせませんでした: メンバーは正規表現パターンを満たす必要があります: [\w_]+] メッセージ: '1 つの検証エラーが検出されました: 値 \'xxxxxxxxxxx-qea4ebra0gipd0krefi37v8f48svrp8e.apps.googleusercontent.com\' は、\'cognitoIdentityProviders.1.member.clientId\' で制約を満たせませんでした: メンバーは正規表現パターンを満たす必要があります: [\w_]+ '、コード: 'ValidationException'、時間: 2017 年 1 月 31 日火曜日 21:11:48 GMT+1100 (AEDT)、requestId: 'ad2b3366-e79d-11e6-b2e7-578f32ddcea5'、statusCode: 400、
再試行可能: false、retryDelay: 45.71310137398541}
2 番目の方法として、最初にCognitoIdentityProvidersを使用せずに ID プール ID を作成してから、クラス「UpdateIdentityPool」を使用して更新を実行し、CognitoIdentityProviders (認証プロバイダーのロックを解除) を追加しようとしました。しかし、それは上記と同じ問題でした。
3 番目の方法で、 aws cliから引数--cognito-identity-providersを使用して ID プール ID を作成しようとしましたが、同じ問題が発生しました。
UpdateIdentityPool 操作の呼び出し時にエラー (ValidationException) が発生しました: 1 つの検証エラーが検出されました: 値 'xxxxxxxxxxx-qea4ebra0gipd0krefi37v8f48svrp8e' は 'cognitoIdentityProviders.1.member.clientId' で制約を満たせませんでした: メンバーは正規表現パターンを満たさなければなりません: [\w_]+
4 番目の方法として、aws cli から --cognito-identity-providers なしで ID プール ID を作成してから、aws cli から更新してみました (--cognito-identity-providers を追加)。それはまだ同じ問題でした。
この問題に非常に不満を感じているため、nodeJS から設定する必要があります。そのため、AWS コンソールから認証プロバイダーのロックを解除するよう提案しないでください。この問題に関する参照は非常に貧弱です。解決済みの参照にリンクしていただければ幸いです。
ありがとうございました