以下の内容はhttps://tech.guitarrapc.com/entry/2019/12/17/000000より取得しました。


Pulumiで他のstate参照を行う

この記事は、Pulumi dotnet Advent Calendar 2019の17日目です。

https://qiita.com/advent-calendar/2019/pulumi-dotnet

PulumiのTIPSを見ていきましょう。

TerraformのRemote Stateに相当する処理を見てみます。 Pulumiで他のStackで管理しているリソースは参照できるのでしょうか?

概要

  • 現状Stackの参照はC# 実装では提供されていない
  • Providerを分けて持つことはできるので、Providerでリソースを参照して使うことで回避できる
  • TypeScriptなどGAされた言語ではStack Referenceとして提供されている

Stack Reference

TypeScriptで次のように書いて、他のStackのOutputを参照できる。

import * as pulumi from "@pulumi/pulumi";
const other = new pulumi.StackReference("acmecorp/infra/other");
const otherOutput = other.getOutput("x")

これはdotnet (C#) ではまだサポートされいない。

そのため、もしほかのStackを参照したい場合、Stackを直接みるのではなく、そのStackのProviderを別途用意して参照するしかない。

using Pulumi;
using Pulumi.Aws;

class Program
{
   async Task Main() =>
       Deployment.Run(() =>
       {
           // Create an AWS provider for the us-east-1 region.
           var useast1 = new Provider("useast1", new ProviderArgs { Region = "us-east-1" });

           // Create an ACM certificate in us-east-1.
           var cert = new Aws.Acm.Certificate("cert", new Aws.Acm.CertifiateArgs
           {
               DomainName = "foo.com",
               ValidationMethod = "EMAIL",
           }, new ResourceArgs { Provider = useast1 });
       });
}

イメージ的には、terraformのproviderによる管理に近い。

1つの terraform で複数 AWS Account をまとめて構築・管理する - エムスリーテックブログ

REF

Inter-Stack Dependencies | Organizing Projects and Stacks | Pulumi




以上の内容はhttps://tech.guitarrapc.com/entry/2019/12/17/000000より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14