Python 读取本地状态/检查点值Pulumi

Python 读取本地状态/检查点值Pulumi,python,amazon-web-services,amazon-s3,infrastructure-as-code,pulumi,Python,Amazon Web Services,Amazon S3,Infrastructure As Code,Pulumi,TL;DR.我想用本地Pulumi堆栈保存,将上一个堆栈的输出准备在新的堆栈中。例如,在先前创建的VPC/子网中创建AWS Fargate ECS群集。如何在Python中实现这一点 我已经创建了devPulumi堆栈,应用代码: $ mkdir pulumi-infra-az $ pulumi login --local $ pulumi stack init dev 并得到这样的输出: ... Outputs: pulumi-private-subnet-ids: [

TL;DR.我想用本地Pulumi堆栈保存,将上一个堆栈的输出准备在新的堆栈中。例如,在先前创建的VPC/子网中创建AWS Fargate ECS群集。如何在Python中实现这一点

我已经创建了
dev
Pulumi堆栈,应用代码:

$ mkdir pulumi-infra-az
$ pulumi login --local
$ pulumi stack init dev
并得到这样的
输出

...
Outputs:
    pulumi-private-subnet-ids: [
        [0]: "subnet-0dcbaabe273db8feb"
        [1]: "subnet-08c63207611c6bae2"
        [2]: "subnet-00fa346a71a323551"
    ]
    pulumi-public-subnet-ids : [
        [0]: "subnet-02c50846690f2cd70"
        [1]: "subnet-06282506863db7ac1"
        [2]: "subnet-0cfae8a4f5e4fc03c"
    ]
    pulumi-vpc-id            : "vpc-0767f0d49e3a59d42"

Resources:
    ~ 3 updated
    22 unchanged

Duration: 10s

Permalink: file:///root/.pulumi/stacks/dev.json
...
正如您在这里看到的,我使用的是本地堆栈放置
/root/.pulumi/stacks/dev.json
。到现在为止,一直都还不错。现在,在other dir中,我想创建fargate集群描述:

$ mkdir pulumi-ecs-fargate
$ pulumi stack init dev-ecs # by the way can I use the same `dev` stack name here?
这里我需要读取以前创建的
pulumi私有子网id
pulumi公共子网id
pulumi专有网络id
输出值?如何纠正

我只找到了后端示例:



有人能提供本地或AWS s3示例如何读取其他堆栈/目录中的输出吗?

好的,也可以读取本地状态输出。登录并创建第一个堆栈:

$pulumi注销
$pulumi登录-本地
$mkdrir pulumi infra az
$cd pulumi infra az
$pulumi stack init pulumi infra az dev
应用它:

$pulumi up
。。。
产出:
pulumi专用子网ID:[
[0]:“子网-0e8eb4cd276720a51”
[1] :“子网-0447d96727f6fdf62”
[2] :“子网-02e0e1d44183f7733”
]
pulumi公用子网ID:[
[0]:“子网-00b1c052633b93f73”
[1] :“子网-0333dd2abc409acb7”
[2] :“子网-006e949371228f8bd”
]
pulumi vpc id:“vpc-0e59fc2d7df06bac0”
资源:
+25创建
...
现在创建新的目录和堆栈:

$mkdir pulumi ecs fargate
$cd pulumi ecs fargate
$pulumi堆栈初始化pulumi ecs fargate开发
堆栈名称应该不同。 然后读取新输出中的输出:

。。。
#解读地方政府
infra=pulumi.StackReference(f“pulumi infra-az-dev”)
#读回我们将使用的默认VPC和公共子网。
pulumi_vpc=基础get_输出(“pulumi vpc id”)
pulumi_private_subnets=infra.get_输出(“pulumi private subnets id”)
pulumi_公共子网=infra.get_输出(“pulumi公共子网ID”)
...

非常遗憾,Pulumi没有好的手册/示例。

也许它是新添加到文档中的,呃,您可以将您的答案标记为已解决。不幸的是,只有他们自己的后端app.Pulumi.com提供了示例。很难理解本地/s3堆栈需要哪条路径。例如,对于pulumi后端,您的完整堆栈名称带有斜杠,如
this/is/my/stack
,但您不能将斜杠用于s3/local/etc堆栈。我知道是的。到目前为止,这非常有效。我有一个infra和一个服务项目,通过
const infra=new pulumi.StackReference(
infra.${env}
按照问题注释中的示例使用
file://../
。实际上,我正计划制作一个关于如何使用Pulumi管理联系人表单api的视频,但不确定需要多长时间^^