【问题标题】:AWS CDK cloudassembly directory change at each run每次运行时 AWS CDK cloudassembly 目录更改
【发布时间】:2020-07-15 16:56:29
【问题描述】:

我正在尝试使用 AWS CDK 构建一些玩笑测试,但我在尝试使用 JEST 快照时遇到了问题,因为我的 CloudAssembly 的目录在每次迭代时都会发生变化。

-     "directory": "/var/folders/_j/vkq9ggqd44d0mdfzk5rrfsg1_7f_x5/T/cdk.outQcAZSr",
+     "directory": "/var/folders/_j/vkq9ggqd44d0mdfzk5rrfsg1_7f_x5/T/cdk.outmqD7Qu",

你知道如何修复这个目录吗?

我正在做类似的事情来获取我的快照。

 const app = new cdk.App();


  const stack = new SearchInfraStack(app, 'SearchStack', {
    env: {region: "us-east-1"},
  });

  expect(SynthUtils.toCloudFormation(stack).toMatchSnapshot();

完整的快照如下所示:

// Jest Snapshot v1,

exports[`Empty Stack 1`] = `
CloudFormationStackArtifact {
  "_dependencyIDs": Array [],
  "_deps": Array [],
  "assembly": CloudAssembly {
    "artifacts": Array [
      [Circular],
      TreeCloudArtifact {
        "_dependencyIDs": Array [],
        "_deps": Array [],
        "assembly": [Circular],
        "file": "tree.json",
        "id": "Tree",
        "manifest": Object {
          "properties": Object {
            "file": "tree.json",
          },
          "type": "cdk:tree",
        },
        "messages": Array [],
      },
    ],
    "directory": "/var/folders/_j/vkq9ggqd44d0mdfzk5rrfsg1_7f_x5/T/cdk.outSwCvBU",
    "manifest": Object {
      "artifacts": Object {
        "SearchStack": Object {
          "environment": "aws://unknown-account/us-east-1",
          "properties": Object {
            "templateFile": "SearchStack.template.json",
          },
          "type": "aws:cloudformation:stack",
        },
        "Tree": Object {
          "properties": Object {
            "file": "tree.json",
          },
          "type": "cdk:tree",
        },
      },
      "runtime": Object {
        "libraries": Object {
          "@aws-cdk/assert": "1.51.0",
          "@aws-cdk/cfnspec": "1.51.0",
          "@aws-cdk/cloud-assembly-schema": "1.51.0",
          "@aws-cdk/cloudformation-diff": "1.51.0",
          "@aws-cdk/core": "1.51.0",
          "@aws-cdk/cx-api": "1.51.0",
          "jsii-runtime": "node.js/v14.5.0",
        },
      },
      "version": "5.0.0",
    },
    "runtime": Object {
      "libraries": Object {
        "@aws-cdk/assert": "1.51.0",
        "@aws-cdk/cfnspec": "1.51.0",
        "@aws-cdk/cloud-assembly-schema": "1.51.0",
        "@aws-cdk/cloudformation-diff": "1.51.0",
        "@aws-cdk/core": "1.51.0",
        "@aws-cdk/cx-api": "1.51.0",
        "jsii-runtime": "node.js/v14.5.0",
      },
    },
    "version": "5.0.0",
  },
  "assets": Array [],
  "assumeRoleArn": undefined,
  "cloudFormationExecutionRoleArn": undefined,
  "displayName": "SearchStack",
  "environment": Object {
    "account": "unknown-account",
    "name": "aws://unknown-account/us-east-1",
    "region": "us-east-1",
  },
  "id": "SearchStack",
  "manifest": Object {
    "environment": "aws://unknown-account/us-east-1",
    "properties": Object {
      "templateFile": "SearchStack.template.json",
    },
    "type": "aws:cloudformation:stack",
  },
  "messages": Array [],
  "name": "SearchStack",
  "originalName": "SearchStack",
  "parameters": Object {},
  "requiresBootstrapStackVersion": undefined,
  "stackName": "SearchStack",
  "stackTemplateAssetObjectUrl": undefined,
  "templateFile": "SearchStack.template.json",
  "terminationProtection": undefined,
}
`;

【问题讨论】:

  • 你能分享你的测试文件的完整代码吗? SynthUtils.toCloudFormation(stack) 应该返回模板,你会得到一个 CloudFormationStackArtifact

标签: typescript amazon-web-services jestjs aws-cdk


【解决方案1】:

这里没有解决根本问题,但您可以删除 directory 属性:

const currentSnapshot = SynthUtils.toCloudFormation(stack)
delete currentSnapshot.assembly.directory
expect(currentSnapshot).toMatchSnapshot()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-03-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-13
    • 2018-03-30
    • 2012-08-23
    相关资源
    最近更新 更多