Pulumi auto.Result オブジェクトの構造またはマップをアンマーシャリングする方法

WBOY
リリース: 2024-02-10 12:30:17
転載
1214 人が閲覧しました

如何解组 Pulumi auto.Result 对象结构或映射

php エディタ Xigua は、Pulumi auto.Result オブジェクトの構造またはマッピングをアンマーシャリングする方法を共有します。 Pulumi は、開発者がプロ​​グラミング言語を使用してクラウド インフラストラクチャを定義および管理できるようにする、クロスクラウドのコードとしてのインフラストラクチャ ツールです。 Pulumi を使用して開発する場合、多くの場合、複数のプロパティとネストされた構造が含まれる auto.Result オブジェクトに遭遇します。この記事では、データの処理と操作を容易にするために、Result オブジェクトをアンマーシャリングし、より使いやすいデータ構造にマップする方法について説明します。

質問内容

goでpulumiの自動化APIを使用してサーバーをhetznerにデプロイしているのですが、デプロイ結果から生成された接続情報を取得する方法がわかりません。

これは切り詰められたコードです:

リーリー

res.outputs から結果を取得できますが、これは文字列です。 serverconnectinfo にログインすると次のように表示されるため、サーバーのデプロイメントと接続の詳細による応答が成功したことがわかります:

リーリー

オンライン上のいくつかの疑わしい解決策に基づいて、json のようにマーシャリングしてから、pulumi remote.connectionargs インスタンスにアンマーシャリングしてみました。構造が次のようになっているため、これは明らかに機能しません:

リーリー

独自の構造体を構築して、JSON アンマーシャリングおよびマーシャリング ソリューションを再試行することを考えていましたが、connectionargs 構造体に既に pulumi タグがある場合は、それがどこかにあるはずのようです。何らかの pulumi.unmarshal メソッド。私が間違っている?とにかく、見つかりませんでした。

ドキュメントも見ましたが、役立つものは何もありませんでした。もしかしてページを見逃してしまったのでしょうか?

回避策

ピーターがコメントで指摘したように、res.outputs["server-connect-info"].value はマッピングであり、正しく実行したと思います。 fmt.sprintf 経由で。私はなんて愚かだったのでしょう。

これは機能します:

リーリー

組み込みのテスト パッケージを使用した go テストでもうまく機能します:

リーリー

以上がPulumi auto.Result オブジェクトの構造またはマップをアンマーシャリングする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:stackoverflow.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート