簡體   English   中英

AWS CDK stack.regionalFact 不是 function

[英]AWS CDK stack.regionalFact is not a function

我正在為 typescript 使用 AWS CDK。 我的堆棧只包含一個角色

export class ModelServingStack extends BaseStack {
  constructor(scope: cdk.Construct, props: StackCommonProps, stackConfig: any) {
    const role: iam.IRole = this.createIamRole(`ModelEndpoint-Role`);
  }

  private createIamRole(roleBaseName: string): iam.IRole {
    return new iam.Role(this, "MyRole", {
      assumedBy: new iam.ServicePrincipal("sns.amazonaws.com"),
    });
  }
}

當我運行命令部署cdk deploy時,出現以下錯誤:


/workspaces/Zeus/node_modules/@aws-cdk/aws-iam/lib/principals.ts:540
    return stack.regionalFact(
                 ^
TypeError: Resolution error: Resolution error: Resolution error: Resolution error: stack.regionalFact is not a function.
Object creation stack:
  at stack traces disabled.
Object creation stack:
  at stack traces disabled..
    at ServicePrincipalToken.resolve (/workspaces/Zeus/node_modules/@aws-cdk/aws-iam/lib/principals.ts:540:18)
    at RememberingTokenResolver.resolveToken (/workspaces/Zeus/node_modules/@aws-cdk/core/lib/resolvable.ts:80:24)
    at RememberingTokenResolver.resolveToken (/workspaces/Zeus/node_modules/@aws-cdk/core/lib/private/resolve.ts:286:18)
    at resolve (/workspaces/Zeus/node_modules/@aws-cdk/core/lib/private/resolve.ts:212:51)
    at Object.resolve [as mapToken] (/workspaces/Zeus/node_modules/@aws-cdk/core/lib/private/resolve.ts:119:77)
    at TokenizedStringFragments.mapTokens (/workspaces/Zeus/node_modules/@aws-cdk/core/lib/string-fragments.ts:65:33)
    at RememberingTokenResolver.resolveString (/workspaces/Zeus/node_modules/@aws-cdk/core/lib/resolvable.ts:99:22)
    at RememberingTokenResolver.resolveString (/workspaces/Zeus/node_modules/@aws-cdk/core/lib/private/resolve.ts:290:23)
    at resolve (/workspaces/Zeus/node_modules/@aws-cdk/core/lib/private/resolve.ts:170:48)
    at Object.resolve (/workspaces/Zeus/node_modules/@aws-cdk/core/lib/private/resolve.ts:119:77)

任何想法? 先感謝您。

一個問題是您的構造函數缺少super(scope, id, props); 稱呼。

我還沒有推理this在你的角色工廠中是否會引起惡作劇。 但無論如何,在 Stack 構造函數中定義您的構造是慣用的 CDK ,其中this肯定會引用您的Stack實例。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM