1

TL;DR。ローカル Pulumi スタックを保存して、以前のスタックからの出力を新しいスタックに準備したいと思います。たとえば、以前に作成した VPC/サブネットに AWS Fargate ECS クラスターを作成します。Pythonでそれを行う方法は?

Pulumi スタックを作成しdev、コードを適用しました。

$ mkdir pulumi-infra-az
$ pulumi login --local
$ pulumi stack init dev

そしてそのようなものを得ましたOutputs:

...
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。ここまでは順調ですね。他のディレクトリで、fargate クラスターの説明を作成したいと思います。

$ mkdir pulumi-ecs-fargate
$ pulumi stack init dev-ecs # by the way can I use the same `dev` stack name here?

pulumi-private-subnet-idsここで、以前に作成された, pulumi-public-subnet-ids,pulumi-vpc-id出力値を読み取る必要がありますか? それを正しく行う方法は?

https://app.pulumi.comバックエンドの例のみを見つけました:
https://www.pulumi.com/docs/intro/concepts/organizing-stacks-projects/#inter-stack-dependencies
https://www .pulumi.com/docs/intro/concepts/programming-model/#stack-references
https://www.pulumi.com/docs/tutorials/aws/aws-py-stackreference/

他のスタック/ディレクトリで出力を読み取る方法のローカルまたはAWS s3の例を誰かが提供できますか?

4

1 に答える 1

1

OK、ローカル状態出力の読み取りも可能です。ログインして最初のスタックを作成します。

$ pulumi logout
$ pulumi login --local

$ mkdrir pulumi-infra-az
$ cd pulumi-infra-az

$ pulumi stack init pulumi-infra-az-dev

それを適用します。

$ pulumi up
...
Outputs:
    pulumi-private-subnet-ids: [
        [0]: "subnet-0e8eb4cd276720a51"
        [1]: "subnet-0447d96727f6fdf62"
        [2]: "subnet-02e0e1d44183f7733"
    ]
    pulumi-public-subnet-ids : [
        [0]: "subnet-00b1c052633b93f73"
        [1]: "subnet-0333dd2abc409acb7"
        [2]: "subnet-006e949371228f8bd"
    ]
    pulumi-vpc-id            : "vpc-0e59fc2d7df06bac0"

Resources:
    + 25 created
...

新しいディレクトリとスタックを作成します。

$ mkdir pulumi-ecs-fargate
$ cd pulumi-ecs-fargate

$ pulumi stack init pulumi-ecs-fargate-dev

スタック名は異なる必要があります。そして、新しい出力で出力を読み取るよりも:

...
# Reading local state
infra = pulumi.StackReference(f"pulumi-infra-az-dev")

# Read back the default VPC and public subnets, which we will use.
pulumi_vpc = infra.get_output("pulumi-vpc-id")
pulumi_private_subnets = infra.get_output("pulumi-private-subnet-ids")
pulumi_public_subnets = infra.get_output("pulumi-public-subnet-ids")
...

Pulumi に適切なマニュアル/例がないことは非常に残念です。

于 2020-04-25T17:34:51.600 に答える