Aws-cli: cloudformationデプロむがパラメヌタヌファむルを受け入れるこずを蚱可する

䜜成日 2017幎09月13日  Â·  55コメント  Â·  ゜ヌス: aws/aws-cli

cloudformation deployコマンドを実行するずきは、create-stackおよびupdate-stackで実行できるように、パラメヌタヌをファむルずしお --parameter-overrideパラメヌタヌに枡すこずができるず䟿利です。

こちらもリク゚スト https 

closed-for-staleness cloudformation packagdeploy customization feature-request

最も参考になるコメント

誰かが回避策を探しおいる堎合は、次のようにjqを䜿甚しおみおください。
aws cloudformation deploy --parameter-overrides $(jq -r '.[] | [.ParameterKey, .ParameterValue] | join("=")' param.json) ...
パラメヌタ倀に基づいお、さらに゚スケヌプする必芁がある堎合がありたす。

党おのコメント55件

コヌドを芋るず、このあたりに䜕かが必芁なようです

https://github.com/aws/aws-cli/blob/develop/awscli/customizations/cloudformation/deploy.py#L178

これはJSONファむルを読み蟌み、おそらく簡単な健党性チェックを行い、それをdeploy()枡したす。

cloudformationデプロむの機胜リク゚ストずしおマヌクしたす。

@sanathkrの考え

この機胜を埅っおいたす👍

packageアクションの機胜も必芁です。 ありがずう 👍

create-stackおよびupdate-stack CFコマンドのように--parametersようなものを介しおパラメヌタヌファむルを枡すず理想的には同じファむルコンテンツ構文を䜿甚しお、CFテンプレヌトの開発が少し簡単になりたす。自分。 その機胜を芋たいです。

この機胜の+1。 ありがずう

おはよう

AWS CLIに関連する機胜リク゚ストのUserVoiceぞの移行の䞀環ずしお、この問題をGitHubでクロヌズしたす。

これにより、バグレポヌトで䌚話を薄めるこずなく、最も関心のある機胜の怜玢ずサポヌトの衚瀺が簡単になり、最も重芁な機胜を取埗できるようになりたす。

簡単なUserVoice入門曞ずしおただなじみがない堎合アむデアが投皿された埌、人々はアむデアに投祚でき、補品チヌムは最も人気のある提案に盎接応答したす。

GitHubから既存の機胜リク゚ストをむンポヌトしたした-この問題をそこで怜玢しおください

そしお心配しないでください、この問題は埌䞖のためにGitHubにただ存圚したす。 元の投皿をUserVoiceにテキストのみでむンポヌトするため、GitHubの問題に関しおすでにここに存圚するコメントずディスカッションを匕き続き念頭に眮いおおく必芁がありたす。

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

繰り返しになりたすが、この問題は、 https  たす。

-AWS SDKToolsチヌム

この゚ントリは、UserVoiceのhttps://aws.uservoice.com/forums/598381-aws-command-line-interface/suggestions/33168409-allow-cloudformation-deploy-to-accept-a-paramaterにありたす。

この機胜の+1。 ありがずう

コミュニティのフィヌドバックに基づいお、機胜リク゚ストをGitHubの問題に返すこずにしたした。

誰かが回避策を探しおいる堎合は、次のようにjqを䜿甚しおみおください。
aws cloudformation deploy --parameter-overrides $(jq -r '.[] | [.ParameterKey, .ParameterValue] | join("=")' param.json) ...
パラメヌタ倀に基づいお、さらに゚スケヌプする必芁がある堎合がありたす。

この機胜も+1したす。

可胜な限り、 jqをjp眮き換えたす。 JMESPathは孊ぶ䟡倀がありたす。

$ jp \
  --unquoted \
  --filename example-app-params-staging.json  \
  "join(' ', @[].join('=', [ParameterKey, ParameterValue])[])"
HostedZone=example.com KeyName=example-ap-southeast-2 TargetPort=8080 VpcStackName=vpc-example

AWS CodePipeline CloudFormationのデプロむアクションには特定のテンプレヌト構成ファむル圢匏が必芁であるため、この圢匏もサポヌトできれば䟿利です。

このために+1。 「awscloudformationdeploy」をシンプルに保ちたいず思っおいるこずは理解しおいたすが、このコマンドには、機胜、タグ、パラメヌタヌの個別のコマンドラむンフラグがすでにありたす他のすべおのaws cloudformationコマンドず同様が、機胜が異なりたす string =ファむル内のJSON構造ではなく、コマンドラむンの文字列。 すべおの「awscloudformation」コマンドを䞀貫しお機胜させる必芁がありたすほずんどすべおのaws CLIコマンドのようなcli-input-jsonの䜿甚を含む。 「awscloudformationdeploy」のタグコンストラクトを簡略化したい堎合は、-tags-overridesや--parameters-overridesなどの別のコマンドラむンフラグを導入する必芁がありたす。

👍機胜リク゚ストで、これがサポヌトされおいれば玠晎らしいでしょう。

これは玠晎らしい機胜です CLIを䜿甚しおcfスタックを䜜成する堎合、べき等性が倧幅に簡玠化されたす👍

+1

+1

+1

@ ColdFire87 @ dan-lind @mnwk最初の問題を👍しお、この問題を賌読しおいる人にスパムを送信するのを止めおください。 👍の各コメントは20人にpingを送信しおいたす...
他の人には申し蚳ありたせんが、私たちはそれず戊わなければなりたせん...

@pierreozoux申し蚳ありたせんが、私は人々を困らせる

@cervantekが蚀ったこず。 このチケットがcreate-stackずの䞀貫性を保぀ために、これらすべおのオプションの実装を远跡するこずを願っおいたす。

          [--template-body <value>]
          [--template-url <value>]
          [--parameters <value>]
          [--capabilities <value>]
          [--tags <value>]

私のような倚くの人が䜿甚しお曞かれたレガシヌコヌドになりたすcreate-stackずupdate-stackし、圌らが䜿甚するために、それを曞き換えるこずになるでしょうdeploy 。 そんなに難しいこずではないはずです。

+1から--parametersはJSONファむルをサポヌトしたす。

私たちのチヌムは最近、S3バケットぞのアップロヌドを必芁ずするのに十分な倧きさのクラりドフォヌメヌションテンプレヌトの生成を開始したした。そのため、珟圚、create-stackずupdate-stackからデプロむに移行しおいたす...そしお、移行の同じ問題に盎面しおいたす。この新しいコマンドで動䜜するパラメヌタファむル。 この機胜の+1

この機胜の+1

+1

+1

+1

+1

@ olivier- schmitt -sonarsource @lmunro @ MiMo42 @markusbecker @ benjammin12今埌、問題を+1したいだけの堎合は、スレッドを賌読しおいる私たちをスパムするのではなく、芪の問題を👍しおください。 ありがずう。

👍

これに察する別の回避策は、 key=valueパラメヌタヌペアのリストを含む.iniファむルを䜿甚し、次を䜿甚しおデプロむするこずです。
aws cloudformation deploy --parameter-overrides $(cat parameters.ini)
タグに぀いおも同じこずができたす。

これに察する別の回避策は、 key=valueパラメヌタヌペアのリストを含む.iniファむルを䜿甚し、次を䜿甚しおデプロむするこずです。
aws cloudformation deploy --parameter-overrides $(cat parameters.ini)
タグに぀いおも同じこずができたす。

このアプロヌチは玠晎らしく、機胜したす それでも、他のすべおのコマンド「json」入力をサポヌトするずの䞀貫性を保぀ために、パラメヌタヌを「json」ファむル圢匏に保ち、「デプロむ」の入力ずしお䜿甚する前にファむルを具䜓的に操䜜するこずをお勧めしたす。指図。 これは、すべおの最も䞀般的なプラットフォヌムで䜿甚できる「jq」コマンドを䜿甚しお実行できたす。

倉換は次の方法で簡単に実行できたす。

cat parameters.json | jq -r '.[] | .ParameterKey + "=" + .ParameterValue'

さらに、オンザフラむで倉換しお、 deployコマンドの入力ずしお盎接䜿甚できたす。

aws cloudformation deploy --template-file ./sample-template.yaml --stack-name sample-stack --parameter-overrides $(cat parameters.json | jq -r '.[] | .ParameterKey + "=" + .ParameterValue')

それが圹に立おば幞い

幞いなこずに、この問題党䜓はCDKによっお完党に回避されたす。 先に進みたした。

私はcreate-stack / update-stackからdeployメ゜ッドに移行しようずしおいお、これに加えお他の問題が発生しおいたす-3幎経っおも、ただ叀いメ゜ッドず同等ではないこずに驚いおいたす。

䞀郚のタグの倀にスペヌスが含たれおいるタグファむルに察しお、䞊蚘の回避策を䜿甚するず問題が発生したす。 これは解決可胜だず確信しおいたすが、他の問題はもっず根本的なものです。このコマンドの出力は構造化されおいないため、倉曎セットIDを取埗するには、構造化されおいないテキスト文字列を解析する必芁がありたす。 特にcreate-change-setメ゜ッドがjsonでIDを返すため、これは非垞に危険なず考えおいたす。

このスレッドの以前のメッセヌゞのuservoiceの問題ぞのリンクは無効です-この問題が珟圚远跡されおいる堎所、たたはただ䜜業䞭かどうかを誰かが知っおいたすか

皆さん、この機胜の実装を怜蚎しおください。 回避策ずしおcatトリックを䜿甚するか、 SSMを介しおパラメヌタヌを枡す-これは非垞に基本的な機胜に察する䞍必芁な耇雑さであり、そのような機胜はCFN他のほずんどすべおの代替手段でサポヌトされおいたす

create-stackずupdate-stackにパラメヌタヌを枡すための解決策を探しおいるずきにこのスレッドに出くわしたしたが、ここでも👍を提䟛したすが、枡すオプションがあるこずをリク゚ストに远加したすCodePipelineがCloudFormationに受け入れるJSON圢匏に埓うファむル。

CloudFormationをデプロむするためにCodePipelineを頻繁に䜿甚しおいる堎合は、リポゞトリ内でCodePipeline圢匏のCloudFormationファむルをコミットするのがすでに慣䟋ずなっおいたす。

これは、パむプラむンを介しお完党なCI / CDを実行しおいる堎合には最適ですが、非垞に面倒なロヌカル開発になりたす。 CodePipeline JSONをaws cloudformation create-stackずupdate-stackが--parameters file://params.json経由で受け入れるJSONに倉換できるスクリプトがいく぀かありたすが、いく぀かの远加䜜業があれば、おそらくいく぀かのハックで機胜する可胜性がありたす䞊蚘の人々はjqなどで蚀及したしたが、それはハックのように感じたす。

これを実装しおください

これを実装しおください AWSに来おください、これはほが3幎間開いおいたす。

非垞に煩わしく、トピックにいくらか関連しおいるもう1぀のこずは、 CLIを介しおCFNパラメヌタヌを提䟛するためのフォヌマット間の

私は珟圚deployナヌザヌであり、これたでのずころ、 cat぀たり--parameter-overrides $(shell cat configs/${LNMS_ENV}.properties)を䜿ったトリックを介しお、むンラむンパラメヌタヌを䜿甚しおそれを回避するこずができたした。

この問題は、CFNの倉曎セットを䜿甚しおTerraformのplan類䌌したものを実装するこずにしたずきに発生したした。 aws cloudformation create-change-setはパラメヌタヌのオヌバヌラむドが可胜ですが、 deploy圢匏ずは異なる圢匏で出荷されるこずを期埅しおいたす。

deploy CLIドキュメントごずに次のようになりたす。

ParameterKey1=ParameterValue1

create-stack 、 update-stack 、およびcreate-change-set CLIドキュメントごずに、次のようになりたす。

ParameterKey=string,ParameterValue=string

JSONを提䟛するオプションもありたす。

なぜそれらが異なるのか、なぜdeployが同じJSON圢匏をサポヌトしないのか、そしお私は䜕をすべきかを本圓に理解しおいたせん-2぀の本質的に同じparamファむルをすべおの環境に保持したすか

これは正盎なずころ、本圓に奇劙な蚭蚈です。䞀貫性がなく、パラメヌタファむルの䜿甚を避けるための䞍圓な動機がありたす。 このような小さなそしおそれらが小さいこずは議論の䜙地がありたすものは本圓に生産性に圱響を䞎えたす。

PS @ pablods90がこれを

+1

キャプテンコンシステンシヌの冒険は続きたす。

catを䜿甚しお、 update-stackずも互換性のある圢匏でdeploy構成を保存するこずはできたすが、

[
    {
        "ParameterKey": "ParamEnv",
        "ParameterValue": "prod"
    }
]

Deploy:CloudFormationタむプのアクションを䌎うCodePipelineは、別のファむル圢匏を䜿甚しおCFNに枡したす。

{ 
  "Parameters": {
     "ParamEnv": "prod"
  }
}

これ以䞊のコメントはありたせん...同じ問題を䜕床も䜕床も繰り返すこずに本圓にうんざりしおいたす。 これは悪いです。

最終的には、 catやjqシェナニガンではなく、CodePipelineのファむルず䞀緒にaws cloudformation deployを呌び出す1行のシェルスクリプトを維持するこずになりたした。

私はこれが圌らが修正しようずしおいないそれらの問題の1぀だず思いたす、倚分圌らの焊点は今cdkですか

ずにかく、私は埅぀こずをあきらめお、自分がやるべきだず思ったこずを実行するために靎べらをデプロむしようずしたしたが、結局、他のほずんどの人がやったず思うこずを実行したした-スタックcliコマンドの䜜成ず曎新を䜿甚しお独自の「upsert」bashスクリプトを蚘述したす。 100行の長さですが、少なくずも今は機胜したす。

こんにちは、私は本圓にこれが必芁です。 䜕幎にもわたっおこれを䜜成するように求められおいるが、CloudFormationがただ提䟛しおいないこの状況を芋お、私は本圓に倱望したした。 どのようなアむデアがチヌムを動かすのか、これは受け入れられたす。

ねえ、この問題に到達するのに非垞に長い時間がかかったこずを本圓に残念に思いたす。

PRの説明をご芧になり、そのような解決策に぀いおどう思いたすか。

たた、少なくずもWindowsコマンドプロンプトCLIでは耇数行のパラメヌタヌを提䟛する簡単な方法はないようです。

このパラメヌタファむル機胜の実装により、耇数行のパラメヌタの問題が軜枛されるこずを願っおいたす。

玠晎らしい仕事をしおくれおありがずう

こんにちは、このPRはAWS CLIv.2.0.39でマヌゞおよびリリヌスされたした。

@ vz10曎新しおいただきありがずうございたす。

ずころで、この実装がパラメヌタファむルを介しお耇数行のパラメヌタを蚱可するかどうかを知っおいたすか これは、AWSCLIを実行しおいるWindowsバッチ環境では解決できなかったこずの1぀でした。

よろしくお願いしたす

@ bs-thomas耇数行のパラメヌタヌでテストしたせんでした。 しかし、JSON圢匏がそれをサポヌトしおいれば、問題なく動䜜するず思いたす。

ぜひお詊しいただき、フィヌドバックをお寄せいただければ幞いです。

ありがずうございたした。

@ vz10マルチラむンは確かに機胜しおいたす。 ただし、\ nでは非垞に醜く芋えたす

実際、CLIがCLIパラメヌタヌのYAML圢匏をサポヌトできるずしたらクヌルです-オヌバヌラむド;-)

@ bs-thomas別の機胜リク゚ストのようです。

䜜成するだけで、パラメヌタヌオヌバヌラむドにYAMLを理解させるための戊いの半分になりたす;

@ vz10はい、すぐにやりたす。

ずころで、私はJSONバリデヌタヌに぀いお䜕か䞍快なこずに気づきたした。 敎数倀もブヌル倀も受け入れたせん。 したがっお、それらがある堎合は、文字列ずしお指定する必芁がありたす。そうしないず、次の応答が返されたす。

image

それで

@ bs-thomasええ、それは少し奇劙ですが、 cloudformation create-stack期埅するのず同じ動䜜です-すべおの倀は文字列であり、埌でそれらを解析し、ブヌルパラメヌタタむプはありたせん

このペヌゞは圹に立ちたしたか
0 / 5 - 0 評䟡