[英]AWS CDK - get ProvisioningArtifactIds from ServiceCatalog product
[英]AWS CDK - Declare input variables from StackProps
我最近开始使用 AWS CDK,但遇到了一个问题。 我希望能够定义自定义输入变量,以便使用我的 AWS CDK 的最终用户能够自行定义输入,而无需编辑整个代码。 我已经设法采用标准类型,例如; 字符串、数字、布尔值等,但是我不太明白如何对自定义类型执行相同的操作,例如:
我尝试创建一个 AWS DynamoDB,首先我定义了一个接口,然后确保最终用户将准确输入所需的数据
这是我的界面:
export interface IDynamoDB extends StackProps {
tableClass: unknow,
billingMode: unknow
sortKeyName: string,
sortKeyType: unknow,
partitionKeyName: string,
partitionKeyType: unknow
inTimeRecovery: boolean
}
这是我的 class:
export class Ddb extends Stack {
constructor(scope: Construct, name: string, props: IDynamoDB) {
super(scope, name, props);
const table = new ddb.Table(this, name, {
tableName: name,
tableClass: ddb.TableClass.STANDARD,
billingMode: ddb.BillingMode.PROVISIONED,
sortKey: {
name: props.sortKeyName,
type: ddb.AttributeType.NUMBER
},
partitionKey: {
name: props.partitionKeyName,
type: ddb.AttributeType.STRING
},
})
}
}
进口
import { Construct } from 'constructs';
import { Stack, StackProps } from 'aws-cdk-lib';
import * as ddb from 'aws-cdk-lib/aws-dynamodb';
我的界面存在问题,如您所见,我将unknown作为一种类型,但我不知道如何使它变得更容易。 最后,我希望能够只放置一个字符串,例如:
ddb.TableClass.STANDARD = 标准表类
我希望我已经设法解释了我的问题
通常你的道具将具有与构造相同的ddb
枚举类型(参见下面的tableClass
)。 但是,当您根据评论优化短值时,您可以使用枚举的字符串值定义道具并在构造函数中查找类型(请参阅billingMode
)。
export interface IDynamoDB extends StackProps {
tableClass: ddb.TableClass;
billingMode: "PROVISIONED" | "PAY_PER_REQUEST"; // string values of the Typescript Enum type
sortKeyName: string;
sortKeyType: ddb.AttributeType;
partitionKeyName: string;
partitionKeyType: ddb.AttributeType;
inTimeRecovery: boolean;
}
table
构造函数:
tableClass: props.tableClass,
billingMode: ddb.BillingMode[props.billingMode], // map the enum
关于billingMode
方法的注意事项:(1) 您可能想要应用更严格的检查,并且 (2) 您的用户将失去智能感知文档上下文。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.