ホームページ >バックエンド開発 >Golang >Pulumi auto.Result オブジェクトの構造またはマップをアンマーシャリングする方法

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

WBOY
WBOY転載
2024-02-10 12:30:171239ブラウズ

如何解组 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 までご連絡ください。