提问人:Luke 提问时间:1/25/2023 更新时间:1/25/2023 访问量:553
AWS CDK 断言 – 查看堆栈中的单个资源
AWS CDK Assertions - Looking at Individual Resources In A Stack
问:
现状:
- 我有一个有 11 个不同 s 的文件。我想用 CDK 模板写断言。
NodejsFunction
- 我有检查整个堆栈的代码,并说“是否有 Lambda 处理程序?
template.hasResourceProperties("AWS::Lambda::Function", { Handler: "index.handler" }))
要求:
如何确保每个函数都有?是否可以从堆栈中缩小到特定范围,或映射堆栈中的服务?NodejsFunction
Handler: "index.handler"
public readonly lambdaExample: NodejsFunction
电流测试:
import { Template } from "aws-cdk-lib/assertions";
import { createStacks } from "../../bin/template";
describe.only("lambdaStack", () => {
let allStacks, template: Template;
beforeAll(async () => {
allStacks= await createStacks(true);
template = Template.fromStack(allStacks.lambdaStack);
});
it("should have Handler = 'handler'", () => template.hasResourceProperties("AWS::Lambda::Function", { Handler: "index.handler" }));
});
答:
3赞
fedonev
1/25/2023
#1
若要断言每个资源都具有所需的属性,请使用 allResourceProperties:
template.allResourcesProperties("AWS::Lambda::Function", {
Handler: "index.handler",
});
要断言给定资源(按逻辑 ID)具有所需的属性,请筛选并断言:
expect(
Object.entries(template.findResources("AWS::Lambda::Function")).filter(
([k, v]) =>
k.match(/^LambdaExample[A-F0-9]{8}$/) &&
v["Properties"]?.["Handler"] === "index.handler"
)
).toHaveLength(1);
评论