Aws-cli: Cloudformation外部パラメータファイルはYAMLファイルをサポートしていません

作成日 2016年11月03日  ·  143コメント  ·  ソース: aws/aws-cli

aws-cliを使用してスタックを更新し、外部yamlファイル(dev.yaml)を以下のようなパラメーターファイルとして使用したいと考えています。

aws cloudformation update-stack --stack-name test --template-body file://./api-test.yaml --parameters file://./dev.yaml

dev.yamlには、次のものしかありません。

---
- ParameterKey: APICacheClusterSize
  ParameterValue: '1.6'

ただし、上記のupdateコマンドを実行すると、次のエラーメッセージが表示されます。

Error parsing parameter '--parameters': Expected: '=', received: '-' for input:

---
- ParameterKey: APICacheClusterSize
^
  ParameterValue: '1.6'

以下と同じコンテキストでJSONファイルを使用し、 dev.yamlの代わりに使用すると、正常に機能します。

[
  {
    "ParameterKey": "APICacheClusterSize",
    "ParameterValue": "1.6"
  }
]

では、aws cloudformationの外部パラメーターファイルをYAMLファイルにすることはできますか? またはします...?

feature-request

最も参考になるコメント

この機能リクエストを2番目にします。

全てのコメント143件

こんにちは。現在、コマンドライン引数の一部としてYAMLをサポートする予定はありません。 一部の人にとってどのように役立つかがわかるので、これを機能リクエストとしてマークします。

--parametersに指定したファイルの内容は、引数として直接ロードおよびダンプされるため、ファイルの内容は次の2つの形式のいずれかになります。
省略構文:
ParameterKey=string,ParameterValue=string,UsePreviousValue=boolean
またはJSON構文:

[
    {
         "ParameterKey": "string",
         "ParameterValue": "string",
         "UsePreviousValue": true|false
     }
]

この機能リクエストを2番目にします。

私も2番目にします

+1

お願いします。 これは私たちにとって重要です。

+1

絶対に+1

+1 --template-bodyではYAML形式のデータを許可するが、 --parametersでは許可しないのは厄介です

👍

+1

+1

+1

yamlでテンプレートを提供できるので、yamlでもパラメーターを提供できるはずです。
この機能は必須だと思います

+1

+100

+1

+100

+1

" https://gist.github.com/mbailey/2f7c878eed123cab6fb125117f35aecc
「」
"yamlise-vimでJSONファイルを編集する場合はYAMLを参照してください。
「」
「JSON恐怖症の人のために作成されました。これは
"JSONをマスターしようとするすべての試みでのみ使用されます
"失敗しました。http://www.json.org/
「」
「これらの人々にとって手遅れではないことを願っています!
「お願いします。これは私たちにとって重要です。」
" https://github.com/aws/aws-cli/issues/2275#issuecomment -277829948
「」
"インストール
"============
"1. cfn-fliphttps://github.com/awslabs/aws-cfn-template-flipをインストールします
"2.このファイルを〜/ .vimrcに含めます
"3. vim cloudformation-params.json
「あなたは今あなたが切望するYAMLを見る必要があります
"4.:wq
"ファイルには、AmazonCLIが期待するJSONが含まれているはずです。
「」
:augroup yamlise
:autocmd!
:autocmd BufReadPost、FileReadPost * .json '[、']!cfn-flip
:autocmd BufWritePre、FileWritePre * .json '[、']!cfn-flip
:autocmd FileAppendPre * .json '[、']!cfn-flip
:augroup END

+1

+1

+1

+1

+1

+1

+1

+1

+1

+1

+999

+1

+1

+1

+1

+2

+1

+1

+1

+1

+1

+1

+1

+10000000

+1

+ Inf

+1

+1

+1

+1

+1

Bashプロセス置換cfn-flipを使用した簡単な回避策は次のとおりです。
aws cloudformation ... --parameters file://<(cfn-flip parameters.yml)

+1

+1

++

+0.5

+1

++

+1!

YAMLにテンプレートがあり、JSONにパラメーターがある理由がわかりません。 奇妙な省略のようですが、AWSが取り組んでいることを願っています。

+1

+1

おはようございます!

AWS CLIに関連する機能リクエストのUserVoiceへの移行の一環として、この問題をGitHubでクローズします。

これにより、バグレポートで会話を薄めることなく、最も重要な機能の検索とサポートの表示が簡単になり、最も重要な機能を利用できるようになります。

簡単なUserVoice入門書として(まだなじみがない場合):アイデアが投稿された後、人々はアイデアに投票することができ、製品チームは最も人気のある提案に直接応答します。

GitHubから既存の機能リクエストをインポートしました-この問題をそこで検索してください!

そして心配しないでください、この問題は後世のためにGitHubにまだ存在します。 元の投稿をUserVoiceにテキストのみでインポートするため、GitHubの問題に関してすでにここに存在するコメントとディスカッションを引き続き念頭に置いておく必要があります。

GitHubは、バグを報告するためのチャネルであり続けます。

繰り返しになりますが、この問題は、 https ://aws.uservoice.com/forums/598381-aws-command-line-interfaceでタイトルを検索することで見つけることができます。

-AWS SDK&Toolsチーム

このエントリは、UserVoiceのhttps://aws.uservoice.com/forums/598381-aws-command-line-interface/suggestions/33168310-cloudformation-external-parameter-file-do-not-suppにあります。

+1

コミュニティのフィードバックに基づいて、機能リクエストをGitHubの問題に返すことにしました。

+1

+1

+1

+100

+1

+1

+1

+1
全体的な一貫性を高めるために+1000をお願いします;)

+1

この問題は2年前のものです; _;

@matthewflanneryいいえ、実際には587日です。

+1

@Yaowenjie 587/365 = 1。608〜2年

+1

もっと11!1!1one !! 1!11

:+1:

:heavy_plus_sign :: 100:

👍

+1

皆さん、この号の2周年記念式典はあと2か月です。 👨‍👩‍👧‍👦🎉🎉🎊🎊👨‍👨‍👧‍👦

私のチームはYAMLに慣れているため(すべてのテンプレートはYAMLにあります)、YAMLファイルをjsonファイルに変換してCFに渡すシェル自動化があります。 これは、(少なくとも私には)この機能がいかに求められているかを示しています。顧客にこのような基本的な機能を中心に独自の自動化を構築させることは答えではありません。

また、CloudFormationで動作するparametersKey / ParamaterValueの方法全体がばかげていることに注意する必要があります。

YAMLでCloudFormationテンプレートを使用し、JSONでパラメーターファイルを提供できますか?

@Yashswarnkarはい-テンプレートをYAMLに、パラメーターをJSONに設定できます。 この問題は、パラメーターがJSONにのみ存在する可能性があるためです。テンプレートがYAMLにあるにもかかわらず、YAMLファイルはサポートされていません。

+1本当にパラメータファイルにコメントを追加してCLIから実行できるようにしたいと考えています。 yamlをサポートするために--parametersを使用してcreate-stackCLIコマンドの.yamlサポートをまだ追加する予定はありますか?

この機能のETAはありますか?

+1

ほぼ2年ですが、パラメーターのyamlはまだありません... :(

+1

+1

+1

安全な文字列とそれらをデコードする方法でSSMが利用できるようになったので、スクリプトを実行して変数をAWSアカウントに配置し、クラウドフォーメーションテンプレートからそれらを参照するというアイデアを楽しんでいます...誰もがこのような他のアイデアを持っています?

上記のコメントのように、 cfn-flipを使用できます
https://github.com/awslabs/aws-cfn-template-flip

in bash-parameters.yamlを<()演算子を使用してjsonファイルとして表示します

pip install cfn_flip

cat <(cfn-flip parameters.yaml)

cliコマンドで<()を指定して使用します

aws cloudformation update-stack --stack-name test --template-body file://./api-test.yaml --parameters file://<(cfn-flip parameters.yaml)

+100

これは明らかに需要の高い機能です-何百人もの人々がそれを要求しているように見えるにもかかわらず、なぜこれに動きがなかったのですか?

+1
実際のユースケースは、パラメーター内でJSONを指定する必要がある場合です。この場合、JSONは引用符をエスケープする必要があるという悪夢です...

[
    {
        "ParameterKey": "DistributionJSON",
        "ParameterValue": "{\"Account_ID_1\":\"region_1,region_2\",\"Account_ID_2\":\"region_1\"}"
    }
]

に比べ:

- ParameterKey: DistributionJSON
  ParameterValue: '{"Account_ID_1":"region_1,region_2","Account_ID_2":"region_1"}'

良い? これ以上の更新はありませんか?

良い? これ以上の更新はありませんか?

落ち着いて、それは2019年1月だけです

ねえ、PRにマージするこれらの人はどうですか?

チームが組織外のPRに定期的に統合されていることを知っていれば、これを書くことを検討したいと思います。

わからない。 これには十分な需要があると思います。彼らは最終的にそれを実装するでしょう。

これは永遠に開いたままにしておく必要があります。その上にいる全員が友達になり、毎年「Payameter Fam」(yamlパラメーターfamのように)と呼ばれる会議を開いて、全員が集まって反yamlトラウマについて話し合うことができます。

+1

👍

+1

+1

3年間、APIの90%がYAMLを使用し、多くの迷惑な+1とAWSがそのボールを引っ掻きます...

yamlに設定ファイルのコメントを使用したり、アイテムのコメントを解除したりしたいのですが。

+1

2019年6月ですが、AWSがまだこの問題を解決していない理由がわかりません。 彼らは毎年非常に多くの人を雇っています

本当に来ますか? これを動かしてみましょう

+1

+1

+1

+1

+1

+1

+1

待っている...待っている...

まだ待っている!

それでもパラメータはJsonのみですか?

この問題は就学前に始めるのに十分古いです。

誰かがこの問題について絆を深め、ジェフ・バーらとたわごとを話したいのであれば、私はre:Invent2019に参加します。 ツイッターでアル。

これは素敵だろう

+1

+1

+1

+1
この岩にぶつかっただけですが、YAMLパラメーターのサポートを受けられますか?
私の現在のプロジェクトはYAMLが大好きです(私はそうではありません:))

XMLサポートも追加していただけますか? これをSOAP経由で送信することはできません。 AWSサポートはWindowsフォームに不可欠です。

+1

+1

2019年10月31日木曜日午後4時4分[email protected]
書きました:

+1


コメントしたのでこれを受け取っています。
このメールに直接返信し、GitHubで表示してください
https://github.com/aws/aws-cli/issues/2275?email_source=notifications&email_token=AHCULG57Z7SJHTRO43JC6LLQRL6ZPA5CNFSM4CVAW4OKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN
または購読を解除する
https://github.com/notifications/unsubscribe-auth/AHCULG3TRJ5FGXG3NOVORBTQRL6ZPANCNFSM4CVAW4OA

+1

+1

更新:/?

+1

+1
idは、cloudformationのアップグレード可能なパラメーターとアップグレード不可能なパラメーターを分割することにより、パラメーターファイルにコメントできるようにしたいです。
例えば。 ボリュームのスナップショットIDをアップグレードしてみました。
-> AutoEnableIO、タイプ、サイズ、およびIOPS以外のボリュームプロパティは更新できません。 プロパティを以前の値に戻し、スタックを再度更新します。

次のコマンドでスタックを作成しようとしました:aws cloudformation create-stack --stack-name myfirsttest --region us-west-2 --template-body file://testcfn.yml
しかし、次のエラーメッセージが表示されます。
パラメータ '--template-body'の解析エラー:paramfileをロードできませんfile://testcfn.yml :[Errno 2]そのようなファイルまたはディレクトリはありません: 'testcfn.yml'

私のtestcfn.ymlファイルは次のとおりです。
Description: > Vritika / Udacity project This template deploys a VPC Resources: UdacityVPC: Type: AWS::EC2::VPC Properties: CidrBlock: 10.0.0.0/16 EnableDnsHostnames: true

› aws ssm get-parameters-by-path help                                                                               

# ...

SYNOPSIS
            get-parameters-by-path
          --path <value>
          [--recursive | --no-recursive]
          [--parameter-filters <value>]
          [--with-decryption | --no-with-decryption]
          [--cli-input-json | --cli-input-yaml]
          [--starting-token <value>]
          [--page-size <value>]
          [--max-items <value>]
          [--generate-cli-skeleton <value>]
          [--cli-auto-prompt <value>]

# ...

       --generate-cli-skeleton  (string)  Prints  a  JSON skeleton to standard
       output without sending an API request. If provided with no value or the
       value input, prints a sample input JSON that can be used as an argument
       for --cli-input-json. Similarly, if provided yaml-input it will print a
       sample  input  YAML that can be used with --cli-input-yaml. If provided
       with the value output, it validates the command inputs  and  returns  a
       sample output JSON for that command.

やった、yamlサポート!!!

› aws ssm get-parameters-by-path --path "/foo/bar/" --recursive --generate-cli-skeleton yaml-input
Path: ''  # [REQUIRED] The hierarchy for the parameter.
Recursive: true # Retrieve all parameters within a hierarchy.
ParameterFilters: # Filters to limit the request results.
- Key: ''  # [REQUIRED] The name of the filter.
  Option: '' # For all filters used with DescribeParameters, valid options include Equals and BeginsWith.
  Values: # The value you want to search for.
  - ''
WithDecryption: true # Retrieve all parameters in a hierarchy with their value decrypted.
MaxResults: 0 # The maximum number of items to return for this call.
NextToken: '' # A token to start the list.

これはまだ問題ではありませんか? または私はそれがどこかにあることを逃しましたか?

パラメータで.yamlを使用することに興味がある人は、これを参照してください
https://github.com/realestate-com-au/stackup

AWSは、このコードを購入してIPに移動するために、不動産のドアをノックする必要があると思います。

+1

ハッキーはかなり速く乱雑になるので、問題を解決するためのハッキーな方法の大ファンではありません。
しかし、テスト環境でparamsファイルを使用してこれを行うことに関心がある人は誰でも。

s3template.yml

AWSTemplateFormatVersion: '2010-09-09'
Description: create a single S3 bucket
Parameters: 
  BucketName:
    Description: Unique name for bucket.
    Type: String
  AccessControl:
    Description: Access Control of the bucket
    Type: String
    AllowedValues:
      - Private
      - PublicRead

Resources:
  SampleBucket:
    Type: AWS::S3::Bucket
    Properties:
      BucketName: !Ref BucketName
      AccessControl: !Ref AccessControl

s3template.params

BucketName=sample-unique-bucket-123456
AccessControl=Private

走る :
aws cloudformation deploy --template-file ./s3template.yml --stack-name sample-testbucket --region us-east-1 --parameter-overrides $(cat s3template.params)

YAMLとしてのparamsファイルの+1。 なぜ誰かにマークアップを混ぜさせるのですか?

このページは役に立ちましたか?
0 / 5 - 0 評価

関連する問題

vadimkim picture vadimkim  ·  3コメント

pawelkilian picture pawelkilian  ·  3コメント

ypant picture ypant  ·  3コメント

maanbsat picture maanbsat  ·  3コメント

schams-net picture schams-net  ·  3コメント