【问题标题】:Pulumi inputs outpus and resource dependency Python GCPPulumi 输入输出和资源依赖 Python GCP
【发布时间】:2023-04-05 05:09:02
【问题描述】:

我在尝试了解如何将资源的输出作为输入传递给另一个资源时遇到了一些麻烦,因此它们具有依赖关系并且创建时的顺序正常工作。

场景: 资源 B 依赖于资源 A。

我试图将类似的东西传递给资源 B

opts = ResourceOptions(depends_on=[ResourceA])

但由于某种原因,它作为该参数不存在并在创建资源A之前不断创建资源B,因此引发错误。

如果我第二次执行 pulumi,因为资源 A 存在,资源 B 会被创建。

我注意到你也可以将输出作为另一个资源的输入传递,正因为如此,Pulumi 理解存在关系并自动生成它

https://www.pulumi.com/docs/intro/concepts/inputs-outputs/

但我不知道如何通过它,所以,任何有关这方面的帮助将不胜感激。

我还使用了以下关于如何使用 ResourceOptions 的解释,我认为我在上面的代码中使用它是正确的,但仍然没有任何情况

How to control resource creation order in Pulumi

提前致谢。

【问题讨论】:

    标签: python google-cloud-platform pulumi


    【解决方案1】:

    @mrthopson,

    让我试着用一个公开的例子来解释。我从这个 Pulumi 例子中得到它:

    https://github.com/pulumi/examples/blob/master/aws-ts-eks/index.ts

    // Create a VPC for our cluster.
    const vpc = new awsx.ec2.Vpc("vpc", { numberOfAvailabilityZones: 2 });
    
    // Create the EKS cluster itself and a deployment of the Kubernetes dashboard.
    const cluster = new eks.Cluster("cluster", {
        vpcId: vpc.id,
        subnetIds: vpc.publicSubnetIds,
        instanceType: "t2.medium",
        desiredCapacity: 2,
        minSize: 1,
        maxSize: 2,
    });
    

    该示例首先在 AWS 中创建一个 VPC。 VPC 包含许多不同的网络,这些网络的标识符作为输出公开。当我们创建 EKS 集群时,我们将公共子网的 ID(输出 vpc.publicSubnetIds)作为输入传递给集群(输入:subnetIds)。

    这是您唯一需要做的事情,以使 VPC 上的 EKS 集群具有依赖关系。运行 Pulumi 时,引擎会发现它首先需要创建 VPC,然后才能创建 EKS 集群。

    林哥

    【讨论】:

    • 感谢您的回复。我想我已经理解了,我将在 python 中尝试它,看看它是如何进行的。对于dependsOn部分,我传递了错误的部分,我将它传递给了“resourceArgs”部分,我应该将它传递给“资源”。这样做之后,Pulumi 设法建立了依赖关系。稍后我将根据您的建议进行尝试,因为我认为 Pulumi 建议如何管理依赖项,并且它看起来更有代码效率。干杯
    猜你喜欢
    • 2021-12-26
    • 2021-10-31
    • 1970-01-01
    • 1970-01-01
    • 2023-03-02
    • 2022-11-11
    • 1970-01-01
    • 2015-09-21
    • 2018-10-22
    相关资源
    最近更新 更多