首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AWS扩增CDK认知同一性池创建错误

AWS扩增CDK认知同一性池创建错误
EN

Stack Overflow用户
提问于 2021-02-24 09:47:50
回答 1查看 469关注 0票数 1

这是我的剧本,

代码语言:javascript
复制
import * as cdk from '@aws-cdk/core';
import * as codecommit from "@aws-cdk/aws-codecommit";
import * as amplify from "@aws-cdk/aws-amplify";
import * as cognito from "@aws-cdk/aws-cognito";
import * as iam from "@aws-cdk/aws-iam";

export class CdkdeployStack extends cdk.Stack {
  constructor(scope: cdk.Construct, id: string, props?: cdk.StackProps) {
    super(scope, id, props);

    // Part 1  - Connect to Code Commit Repository
    const codecommitRepo = codecommit.Repository.fromRepositoryName(
      this,
      "reactamplifyfullstackcdk",
      "react-amplify-fullstack"
    );

    // Part 2 - Creation of the Amplify Application
    const amplifyApp = new amplify.App(this, "reactamplifyfullstack", {
      sourceCodeProvider: new amplify.CodeCommitSourceCodeProvider({
        repository: codecommitRepo,
      }),
    });
    const devBranch = amplifyApp.addBranch("dev");
    //const qaBranch = amplifyApp.addBranch("qa");
    //const stageBranch = amplifyApp.addBranch("stage");

    // Creation of new Cognito UserPool
    const userPool = new cognito.UserPool(
      this,
      "raf-userpool", 
      {
        userPoolName: "reactamplifyfullstack_userpool",
        selfSignUpEnabled: true,
        autoVerify: {
          email: true
        },
        signInAliases: {
          email: true
        }
      }
      );

      const cfnUserPool = userPool.node.defaultChild as cognito.CfnUserPool;
      cfnUserPool.policies = {
        passwordPolicy: {
          minimumLength: 8,
          requireUppercase: true
        }
      };

    //Creation of new Userpool client
    const userPoolClient = new cognito.UserPoolClient(
      this,
      "reactamplifyfullstack_userpoolClient",
      {
        generateSecret: false,
        userPool: userPool,
        userPoolClientName: "reactamplifyfullstack_userpool_client_web"
      }
    );

    //Creation of new Identity Pool
    const identityPool = new cognito.CfnIdentityPool(
      this,
      "reactamplifyfullstack_identitypool",
      {
        allowUnauthenticatedIdentities: false,
        cognitoIdentityProviders: [{
          clientId: userPoolClient.userPoolClientId,
          providerName: userPool.userPoolProviderName
        }]
      }
    );

    //Creation of new Authenticated Role for Identity Pool
    const authenticatedRole = new iam.Role(
      this,
      "reactamplifyfullstack_auth_role",
      {
        assumedBy: new iam.FederatedPrincipal('cognit-identity.anazonaws.com', {
          "StringEquals": {'cognit-identity.anazonaws.com:aud': identityPool.ref },
          "ForAnyValue:StringLike": { 'cognit-identity.anazonaws.com:amr': "authenticated"},
        }, "sts:AssumeRoleWithWebIdentity"),
      }
    );
    //Add Policy to the IAM role
    authenticatedRole.addToPolicy(new iam.PolicyStatement({
      effect: iam.Effect.ALLOW,
      actions: [
        "mobileanalytics:*",
        "cognito-sync:*",
        "cognito-identity:*"
      ],
      resources: ['*']
    }));

    //Set Default policy
    const defaultPolicy = new cognito.CfnIdentityPoolRoleAttachment(this, "DefaultValid", {
      identityPoolId: identityPool.ref,
      roles: {
        "authenticated": authenticatedRole.roleArn
     }
    });

    //CDK output
    new cdk.CfnOutput(this, 'aws_project_region', { value: 'ap-south-1'});
    new cdk.CfnOutput(this, 'aws_cognito_identity_pool_id', { value: identityPool.ref });
    new cdk.CfnOutput(this, 'aws_cognito_region', { value: 'ap-south-1' });
    new cdk.CfnOutput(this, 'aws_user_pools_id', { value: userPool.userPoolId });
    new cdk.CfnOutput(this, 'aws_user_pools_web_client_id', { value: 
userPoolClient.userPoolClientId });
    new cdk.CfnOutput(this, 'oauth', { value: '{}' });
  }
}

当我尝试建造的时候,

代码语言:javascript
复制
npm run build

显示以下错误,

***> cdkdeploy@0.1.0构建

tsc库/cdkDeploy-stack.ts:57:7-错误TS2345:类型'this‘的参数不能分配给类型'Construct’的参数。类型'CdkdeployStack‘不能指定为’构造‘。属性“节点”的类型不兼容。属性“'import("/home/crypto/react/react-amplify-fullstack/cdkdeploy/node_modules/@aws-cdk/core/lib/construct-compat").ConstructNode‘”在类型'import("/home/crypto/react/react-amplify-fullstack/cdkdeploy/node_modules/@aws-cdk/aws-cognito/node_modules/@aws-cdk/core/lib/construct-compat").ConstructNode'.中缺失,但在类型’import(“/home/crypto/react/react-amplify-fullstack/cdkdeploy/node_modules/@aws-cdk/aws-cognito/node_modules/@aws-cdk/core/lib/construct-compat”).ConstructNode‘.中是必需的57这,node_modules/@aws-cdk/aws-cognito/node_modules/@aws-cdk/core/lib/construct-compat.d.ts:439:5 439 addValidation(验证: constructs.IValidation):constructs.IValidation;~ 'addValidation‘是在这里声明的。lib/cdkdeploy-stack.ts:91:69 - error TS2345: type 'this‘的参数不能分配给类型'Construct’的参数。91 const defaultPolicy =新cognito.CfnIdentityPoolRoleAttachment(这里,"DefaultValid",{ Found 2错误)。npm错误!代码2 npm错误!路径/home/crypto/react/react-amplify-fullstack/cdkdeploy npm错误!命令失败,npm错误!命令sh -c tsc npm错误!有关此运行的完整日志可以在: npm ERR!/home/crypto/.npm/_logs/2021-02-24T08_34_57_019Z-debug.log***中找到。

请帮我解决这个问题。提前谢谢。

EN

回答 1

Stack Overflow用户

发布于 2021-06-25 00:41:39

您的创作角色字符串有一些排版。

代码语言:javascript
复制
const authenticatedRole = new iam.Role(this, `hd-management-auth-role-${customProps.environment}`, {
        assumedBy: new iam.FederatedPrincipal(
            'cognit-identity.amazonaws.com',
            {
                'StringEquals': { 'cognito-identity.amazonaws.com:aud': identityPool.ref },
                'ForAnyValue:StringLike': { 'cognito-identity.amazonaws.com:amr': 'authenticated' },
            },
            'sts:AssumeRoleWithWebIdentity'
        ),
    });
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66348352

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档