use*_*846 2 amazon-web-services python-2.7 amazon-cognito boto3
我正在尝试将用户添加到 cognito 并为其分配一个组。添加组成功,但无法添加用户所属组。
import boto3
email = 'test@test.test'
poolId = 'ap-northeast-1_xxxxxx'
group = 'xxxx'
password = 'String1234'
aws_access_key_id = 'Axxxxxxxx'
aws_secret_access_key = '6xxxxxxxxx'
session = boto3.Session(aws_access_key_id=aws_access_key_id, aws_secret_access_key=aws_secret_access_key)
client = session.client('cognito-idp')
response = client.admin_create_user(
UserPoolId=poolId,
Username=email,
TemporaryPassword= password,
UserAttributes=[
{
"Name": "email",
"Value": email
},
{
"Name": "email_verified",
"Value": "true"
}
]
)
response = client.admin_add_user_to_group(
UserPoolId=poolId,
Username=email,
GroupName=group
)
Run Code Online (Sandbox Code Playgroud)
添加用户成功,但未添加组:
Traceback (most recent call last): File "test.py", line 24, in <module>
response = client.admin_add_user_to_group
( AttributeError: 'CognitoIdentityProvider' object has no attribute 'admin_add_user_to_group'
Run Code Online (Sandbox Code Playgroud)
在我的requirements.txt中,我使用为python创建虚拟环境
boto3==1.4.5
Run Code Online (Sandbox Code Playgroud)
使用这个boto3 文档作为参考。
我已经让它与 boto3 (1.4.6) 一起工作。我希望您那里的示例假设您已经创建了要尝试将用户添加到的组。另外,以下代码示例假设您已将访问密钥导出为环境变量。
import boto3
a='XXXXXXXXXXXXXXXXXXXX'
s='xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
r='us-west-2'
session = boto3.Session(aws_access_key_id=a, aws_secret_access_key=s, region_name=r)
client = boto3.client('cognito-idp', region_name=r)
email = 'tes1t@test1.test'
poolId = 'us-west-2_xxxxxxxxx'
group = 'foo'
password = 'String1234'
response = client.admin_create_user(
UserPoolId=poolId,
Username=email,
TemporaryPassword= password,
UserAttributes=[{"Name": "email","Value": email}, { "Name": "email_verified", "Value": "true" }]
)
reply = client.create_group(UserPoolId=poolId, GroupName=group)
reply = client.admin_add_user_to_group( UserPoolId=poolId, Username=email, GroupName=group )
Run Code Online (Sandbox Code Playgroud)