簡體   English   中英

AWS CDK PatchBaseline - TypeScript

[英]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,
                                      )

RulePropertyRuleGroupProperty類的東西在 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.

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