AWS CDK 补丁基线 - TypeScript
AWS CDK PatchBaseline - TypeScript
我正在使用 AWS CDK,库 @aws-cdk/aws-ssm and TypeScript to create PatchBaseline. I can create Patch baseline but I am not able to define any approvalRules. I have found similar thread where Alex Nelson creates approvalRules as an object using RuleProperty, he does it in Python but I am not able to replicate this procedure in TypeScript. For some reason I cannot use RuleProperty in TypeScript like Alex did in Python, more in this 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,
)
RuleProperty
和 RuleGroupProperty
之类的东西在 Python 中是 类,但在 TypeScript 中,它们只是接口,因此您不会直接创建它们。相反,您创建普通的 JavaScript 对象,如果您创建的对象不正确,您的编辑器或 CDK 本身会告诉您。
如果您不知道,在 JavaScript 中使用 camelCase
名称也是常见的做法,而不是像在 Python 中那样使用 snake_case
.因此,您还需要将 属性 名称指定为 camelCase
。
注意:this
关键字在 JavaScript/TypeScript 中使用,而在 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,
});
我正在使用 AWS CDK,库 @aws-cdk/aws-ssm and TypeScript to create PatchBaseline. I can create Patch baseline but I am not able to define any approvalRules. I have found similar thread where Alex Nelson creates approvalRules as an object using RuleProperty, he does it in Python but I am not able to replicate this procedure in TypeScript. For some reason I cannot use RuleProperty in TypeScript like Alex did in Python, more in this 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,
)
RuleProperty
和 RuleGroupProperty
之类的东西在 Python 中是 类,但在 TypeScript 中,它们只是接口,因此您不会直接创建它们。相反,您创建普通的 JavaScript 对象,如果您创建的对象不正确,您的编辑器或 CDK 本身会告诉您。
如果您不知道,在 JavaScript 中使用 camelCase
名称也是常见的做法,而不是像在 Python 中那样使用 snake_case
.因此,您还需要将 属性 名称指定为 camelCase
。
注意:this
关键字在 JavaScript/TypeScript 中使用,而在 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,
});