python - Pulumi 输入输出和资源依赖 Python GCP
问题描述
我在尝试了解如何将资源的输出作为输入传递给另一个资源时遇到了一些麻烦,因此它们具有依赖性并且创建时的顺序正常工作。
场景:资源 B 依赖于资源 A。
我试图将类似的东西传递给资源 B
opts = ResourceOptions(depends_on=[ResourceA])
但由于某种原因,它充当该参数不存在并在创建资源 A 之前不断创建资源 B,因此引发错误。
如果我第二次执行 pulumi ,因为资源 A 存在,资源 B 被创建。
我注意到你也可以将输出作为另一个资源的输入传递,正因为如此,Pulumi 理解存在关系并使其如此自动
https://www.pulumi.com/docs/intro/concepts/inputs-outputs/
但是我无法理解如何通过它,因此,任何有关此的帮助将不胜感激。
我还使用了以下关于如何使用 ResourceOptions 的解释,我认为我在上面的代码中正确使用了它,但仍然没有
提前致谢。
解决方案
@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 集群。
林戈
推荐阅读
- android - 使用应用程序包时,<1% 的用户会收到 UnsatisfiedLinkError
- javascript - Electron 应用程序从任务管理器窗口处理结束任务
- ruby-on-rails - 类型上不存在 Graphql 字段
- laravel-5 - Laravel 图表包:找不到类“”
- angular - IE 11 Intranet 上的 Angular - 以编程方式禁用兼容性视图
- javascript - 使用 Selectize 时“未定义选项”
- javascript - 如何使用 console.trace() 记录 js 堆栈跟踪但保持折叠状态
- docker - systemctl 未在 Docker 上运行
- selenium - Openshift RHEL 容器 - 运行 google-chrome 的问题
- java - JAVA中的XML生成