[英]AWS CDK PatchBaseline - TypeScript
我正在使用 AWS CDK、庫@aws-cdk/aws-ssm和 TypeScript 來創建 PatchBaseline。 我可以創建補丁基線,但我無法定義任何批准規則。 我發現了類似的線程,其中Alex Nelson使用 RuleProperty 創建了 ApprovalRules 作為對象,他在 Python 中做到了,但我無法在 TypeScript 中復制此過程。 出於某種原因,我不能像 Alex 在 Python 中那樣在 TypeScript 中使用 RuleProperty,更多信息請參見這篇文章。
這行代碼給了我一個錯誤,即“typeof CfnPatchBaseline”類型上不存在“RuleProperty”屬性。
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,
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.