Доступ к UserPoolId из aws -cdk Стек вне aws -cdk - PullRequest
0 голосов
/ 28 апреля 2020

Я развернул AWS Cognito UserPool через aws-cdk как CognitoStack.

Теперь я хочу автоматизировать тестирование API-интерфейса GraphQL, в котором для аутентификации используется AWS Cognito UserPool.

Как программно получить UserPoolId, необходимый для аутентификации от CogntioStack?

Мой CognitoStack:

export class CognitoStack extends Stack {
  public readonly userPool: UserPool;

  constructor(scope: App, id: string, props?: StackProps) {
    super(scope, id, props);

    this.userPool = new UserPool(this, 'UserPool', {
      signInAliases: {
        email: true,
        phone: false,
        username: false,
        preferredUsername: false,
      },
      autoVerify: {
        phone: false,
        email: false,
      },
      selfSignUpEnabled: true,
    });

    this.userPool.addClient('web', {
      authFlows: {
        refreshToken: true,
        userSrp: true,
      },
    });

    new CfnOutput(this, 'UserPoolId', {
      value: this.userPool.userPoolId,
    })
  }
}

Когда я do cdk deploy CognitoStack Я получаю:

Outputs:
CognitoStack.UserPoolId = eu-central-1_xafasds
CognitoStack.ExportsOutputRefUserPool6BA7E5F296FD7236 = eu-central-1_xasdfdd

Однако, когда я проверяю cdk.out/CognitoStack.template.json (что я легко мог require в моем тесте), eu-central-1_xasdfdd не появляется.

1 Ответ

1 голос
/ 29 апреля 2020

Лучший способ, который я нашел на данный момент, - использовать флаг --outputs-file при запуске команды deploy, а затем у меня есть файл json со всеми нужными мне полями.

cdk deploy CognitoStack --outputs-file outputs.json
...