問題タブ [viper-go]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
3 に答える
2361 参照

go - golang: フラグを使用する他のパッケージで pflag を使用するにはどうすればよいですか?

フラグを使用する他のパッケージを使用しながら、pflag を使用するにはどうすればよいですか?

これらのパッケージのいくつかは、flag パッケージのフラグを (たとえば、init 関数で) 定義し、flag.Parse() を呼び出す必要があります。

pflag パッケージを使用してフラグを定義するには、pflag.Parse() を呼び出す必要があります。

引数が混在していると、flag.Parse() と pflag.Parse() の呼び出しの 1 つが失敗します。

フラグを使用する他のパッケージで pflag を使用するにはどうすればよいですか?

0 投票する
0 に答える
3048 参照

go - Viper で新しい Go 構成を初期化する

私は、別の質問で学んだviper パッケージを使用して、Go での構成管理を調査してきました。新しい構成を初期化する方法がわかりません。私がやりたいことは、システム構成が存在する場合はそれを見つけ、次にユーザー構成を見つけ、他のすべてが失敗した場合は、デフォルトから新しいユーザー構成を作成 (および使用) することです。次にアプリを実行すると、以前に作成した構成が見つかるはずです。私はこのように使用しています:

この時点で、次のように ~/.myapp/test.json を作成したいと思います。

その結果、ファイルは空になり、ファイルが存在するにもかかわらず、「open : no such file or directory」というメッセージが表示され、2 回目の読み取り試行も失敗します。ファイルを手動で編集すると、Viper がファイルを見つけて解析します。もちろん、JSON ファイルをプログラムで作成することもできますが、これは非常に明白な使用例のように思われるため、ここで何かが欠けているはずです。

0 投票する
1 に答える
8671 参照

go - Viperを使用してGoで環境変数として文字列マップを渡す

私が取り組んでいるプロジェクトでは、Viper を使用して文字列のマップを環境変数として渡そうとしています。これを達成するためにいくつかのアプローチを試みましたが、成功しませんでした。コードから env 変数を読み取ると、空です。これは私が使用しているコードです:

そして、これは私が値を渡す方法です:

CONFIG_OPTIONS_VALUES_ROOT="."

私も試しました:

CONFIG_OPTIONS_VALUES="{\"root\": \".\",\"cmd\": \"exec\", \"logging\": \"on\"}"

env 変数で渡される値を処理する方法は次のとおりです。

この構成を構成ファイルに記述し、viper を使用して読み取ると、これを完全に実行できます。

誰かがここで私を正しい方向に向けてくれることを願っています。

0 投票する
2 に答える
2143 参照

json - JSON オブジェクト配列を YAML に変換する

YAMLに変換する必要がある次のjsonがあります

オンラインの JSON から YAML へのコンバーターを使用したところ、次の出力が得られました。

同じ生成された YAML をオンライン サービスからjson に変換しようとすると、「解析できません」という例外が発生します。

1.) YAML で上記の種類の json を表現する正しい方法は何ですか?

私のgolangプログラム内でこの種のYAMLを読みたいです。そのために私は spf13/viper ライブラリを使用していますが、配列オブジェクトのこのキングをデコードできるメソッドが見つかりませんでした。

2.) viper を使用して golang でこの種の YAML を読み取るには? サンプルコードが役立ちます。

0 投票する
2 に答える
9301 参照

go - Cobra + Viper Golang サブコマンドをテストするには?

GoでWebアプリを開発しています。ここまでは順調ですが、今は Wercker を CI ツールとして統合し、テストに関心を持ち始めています。しかし、私のアプリは Cobra/Viper configuration/flags/environment_variables スキームに大きく依存しており、テスト スイートを実行する前に Viper の値を適切に初期化する方法がわかりません。どんな助けでも大歓迎です。

0 投票する
1 に答える
3288 参照

go - viper yaml 構成シーケンス

viper を使用して yaml 構成ファイルを読み込もうとしています ( viper docs を参照)。しかし、Issue-types の下にある一連のマップ値を読み取る方法がわかりません。さまざまな Get_ メソッドを試しましたが、これをサポートしているようには見えません。

map[strings] のシーケンスを繰り返し処理できるようにしたい

0 投票する
0 に答える
60 参照

go - Config file masks

We deploy services as docker containers using Marathon. The containers include a base config file, Marathon pulls an environment config file (which has a subset of the base keys) at deployment time so when the app starts it has;

  • environment.toml
  • config.toml

when reading the config we need to conflate the values in both files to a single set, effectively masking/shadowing the values present in both files with those in the environment file.

I didn't find this functionality in the Viper docs. Unless I have missed something it seems my options are;

  • Write a package that uses Viper to read both files and perform the conflation.
  • Extend Viper

Before I start writing code, is there already a mechanism for doing this?

0 投票する
1 に答える
5781 参照

go - cobra と viper の設定ファイル

基本情報: Go アプリケーションを作成し、Cobra を使用しました。Cobra は、コマンド ライン パラメーターとフラグに Viper を使用します。

フラグ bind を使用してリッスンするコマンドがあり、yaml ファイルで構成したいと考えています。

コード:

listen コマンドの init 関数は次のようになります。

私のアプリケーションのコードはhttps://github.com/sascha-andres/go-logsinkにあります

問題:

listen --bind "bla"フラグを正しく設定してアプリを呼び出すとbla、ホームディレクトリにある YAML ファイルを使用してこれを実現する方法が見つかりませんでした。

試した設定ファイル:

どちらの場合も、構成ファイルは見つかりましたが、フラグには期待値ではなくデフォルト値がありました。

フラグを正しく設定するには、どのように構成ファイルを作成する必要がありますか?

0 投票する
4 に答える
5815 参照

go - ネストされた構成 Yaml を構造体にマッピングする

私は初心者で、viper を使用してすべての構成をロードします。現在私が持っているのは、以下のような YAML です。

国コードは動的であり、どの国でもいつでも追加できることに注意してください。では、これを技術的に言えばできる構造体にマップするにはどうすればよいですか

ループして自分で構築しようとしましたが、ここで立ち往生しています