Я создал объект "CfnUserPool", используя https://docs.aws.amazon.com/cdk/api/latest/python/aws_cdk.aws_cognito/CfnUserPool.html aws документ.
Я хотел получить идентификатор пула для UserPool. Значение его идентификатора - "us-east-1_4kXXXXXXX". Я пробовал так много вариантов получить это значение с помощью python, но это не сработало.
Итак, я получил значение «Pool ARN» для UserPool, потому что в нем есть значение id. ARN пула - "arn: aws :ognito-idp: us-east-1: XXXXXXXXXXXX: userpool / us-east-1_4kXXXXXXX". Вы можете увидеть, что в строке есть подстрока "us-east-1_4kXXXXXXX" Пул ARN.
Я пробовал код ниже, чтобы получить значение «us-east-1_4kXXXXXXX» из пула ARN -
_cognito_user_pool = _cognito.CfnUserPool(stack, id="pool-id", user_pool_name="user-auth-pool")
_user_pool_id = _cognito_user_pool.attr_arn.split('/')[1]
Я получал ошибку «IndexError: индекс списка вне допустимого диапазона».
Я попытался распечатать это значение ARN на консоли и получил это значение - $ {Token [TOKEN.327]} Я не знаю, почему он печатает значение arn пула пользователей в формате Token. Я думаю, что всякий раз, когда я пытаюсь получить его, он находится в формате Token, и поэтому я не могу разделить его на «/». Когда мы передаем значение ARN любому ресурсу, оно передается в правильном формате или строковом формате, а не в формате токена. Но если мы попытаемся манипулировать им, он выдаст ошибку «IndexError: индекс списка вне допустимого диапазона». поскольку он имеет формат токена.