我正在使用AWS CDK、库@aws-cdk/aws-ssm和TypeScript来创建PatchBaseline。我可以创建补丁基线,但不能定义任何approvalRules。我发现了类似的线程,其中Alex Nelson使用RuleProperty将approvalRules创建为对象,他用Python语言创建,但我不能用TypeScript复制这个过程。由于某些原因,我不能像Alex在Python中那样在TypeScript中使用RuleProperty,在这个post中有更多。
这行代码给我一个错误,属性'RuleProperty‘在类型'typeof CfnPatchBaseline’上不存在。
const patch_baseline_rule = new ssm.CfnPatchBaseline.RuleProperty();我花了几个小时浏览了CDK文档,但我没有发现任何与我的问题相关的有用信息。对于RuleGroupProperty,文档根本没有提供任何示例。
我的问题是,如何在TypeScript中输入以下代码(Python)?
patch_baseline_rule = ssm.CfnPatchBaseline.RuleProperty(approve_after_days=0,
compliance_level='CRITICAL',
enable_non_security=True,
patch_filter_group=patch_baseline_patch_filter_group
)
patch_baseline_rule_group = ssm.CfnPatchBaseline.RuleGroupProperty(patch_rules=[patch_baseline_rule])
patch_baseline = ssm.CfnPatchBaseline(self, 'rPatchBaseline',
name=f'TestPatchBaseline_Linux',
description='TestPatchBaseline for Linux updates, Amazon_Linux_2 distr.',
operating_system='AMAZON_LINUX_2',
approved_patches_enable_non_security=True,
patch_groups=['AWS-Linux-2-Test'],
approval_rules=patch_baseline_rule_group,
)发布于 2021-07-20 20:51:01
像RuleProperty和RuleGroupProperty这样的东西是Python语言中的类,但在TypeScript中,它们只是接口,所以不能直接创建它们。相反,您可以创建普通的JavaScript对象,编辑器或CDK本身会告诉您是否创建了错误的对象。
如果您不知道,在JavaScript中使用camelCase名称也是很常见的做法,而不是像在Python中那样使用snake_case。因此,您还需要将属性名称指定为camelCase。
注意:在JavaScript/TypeScript中使用关键字this,而在Python中使用关键字self。
下面是Python代码的TypeScript等价物:
import ssm from "@aws-cdk/aws-ssm";
const patchBaselineRule = {
approveAfterDays: 0,
complianceLevel: "CRITICAL",
enableNonSecurity: true,
patchFilterGroup: patch_baseline_patch_filter_group,
};
const patchBaselineRuleGroup = {
patchRules: [patchBaselineRule],
};
const patchBaseline = new ssm.CfnPatchBaseline(this, "rPatchBaseline", {
name: "TestPatchBaseline_Linux",
description: "TestPatchBaseline for Linux updates, Amazon_Linux_2 distr.",
operatingSystem: "AMAZON_LINUX_2",
approvedPatchesEnableNonSecurity: true,
patchGroups: ["AWS-Linux-2-Test"],
approvalRules: patchBaselineRuleGroup,
});https://stackoverflow.com/questions/68440776
复制相似问题