Aws-cli: File parameter eksternal Cloudformation tidak mendukung file YAML

Dibuat pada 3 Nov 2016  ·  143Komentar  ·  Sumber: aws/aws-cli

Saya menggunakan aws-cli untuk memperbarui tumpukan saya, dan ingin menggunakan file yaml eksternal (dev.yaml) sebagai file parameter seperti di bawah ini:

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

Dalam dev.yaml , ia hanya memiliki:

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

Namun, saya mendapat pesan Kesalahan ini ketika saya menjalankan perintah pembaruan di atas:

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

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

Jika saya menggunakan file JSON dengan konteks yang sama seperti di bawah ini, dan menggunakannya sebagai ganti dev.yaml , itu berfungsi dengan baik:

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

Jadi, bisakah file parameter eksternal untuk aws cloudformation menjadi file YAML? atau akan...?

feature-request

Komentar yang paling membantu

Saya akan mendukung permintaan fitur ini.

Semua 143 komentar

Hai, saat ini kami tidak memiliki rencana untuk mendukung YAML sebagai bagian dari argumen baris perintah. Saya akan menandai ini sebagai permintaan fitur karena saya dapat melihat bagaimana ini mungkin berguna bagi sebagian orang.

Konten file yang Anda berikan ke --parameters dimuat dan dibuang langsung sebagai argumen sehingga Anda hanya dapat membuat konten file dalam salah satu dari dua format:
Sintaks singkatan:
ParameterKey=string,ParameterValue=string,UsePreviousValue=boolean
atau sintaks JSON:

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

Saya akan mendukung permintaan fitur ini.

Saya akan menggandakannya juga

+1

Tolong. Ini penting bagi kami.

+1

benar-benar +1

Memberi +1 mengizinkan data berformat YAML untuk --template-body tetapi tidak untuk --parameters adalah canggung

👍

+1

+1

+1

karena Anda dapat menyediakan template di yaml, Anda juga harus dapat menyediakan parameter di yaml
saya pikir fitur ini harus dimiliki

+1

+100

+1

+100

+1

" https://Gist.github.com/mbailey/2f7c878eed123cab6fb125117f35aecc
"
" yamlise - lihat YAML saat mengedit file JSON di vim.
"
" Dibuat untuk orang-orang dengan fobia JSON, ini seharusnya
" hanya digunakan ketika semua upaya untuk menguasai JSON
" telah gagal. http://www.json.org/
"
"Saya harap belum terlambat untuk orang-orang ini!
" 'Tolong. Ini penting bagi kami.'
" https://github.com/aws/aws-cli/issues/2275#issuecomment -277829948
"
"Instalasi
"==============
" 1. Instal cfn-flip https://github.com/awslabs/aws-cfn-template-flip
" 2. Sertakan file ini di ~/.vimrc . Anda
" 3. vim cloudformation-params.json
" ANDA SEKARANG HARUS MELIHAT YAML YANG ANDA INGINKAN
" 4. :wq
" File sekarang harus berisi JSON Amazon CLI yang diharapkan
"
:augroup yamlise
: autocmd!
: autocmd BufReadPost,FileReadPost *.json '[,']!cfn-flip
: autocmd BufWritePre,FileWritePre *.json '[,']!cfn-flip
: autocmd FileAppendPre *.json '[,']!cfn-flip
:grup AKHIR

+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

Berikut ini solusi sederhana menggunakan substitusi proses Bash dan cfn-flip :
aws cloudformation ... --parameters file://<(cfn-flip parameters.yml)

+1

+1

++

+0,5

+1

++

+1!

Tidak mengerti mengapa Anda memiliki template di YAML tetapi kemudian parameternya di JSON. Tampaknya kelalaian yang aneh dan apakah saya berharap AWS bekerja .... tolong?

+1

+1

Selamat pagi!

Kami menutup masalah ini di sini di GitHub, sebagai bagian dari migrasi kami ke UserVoice untuk permintaan fitur yang melibatkan AWS CLI.

Ini akan memungkinkan kami mendapatkan fitur yang paling penting bagi Anda, dengan mempermudah pencarian dan menunjukkan dukungan untuk fitur yang paling Anda pedulikan, tanpa mengurangi percakapan dengan laporan bug.

Sebagai primer UserVoice cepat (jika belum terbiasa): setelah sebuah ide diposting, orang-orang dapat memilih ide tersebut, dan tim produk akan langsung menanggapi saran yang paling populer.

Kami telah mengimpor permintaan fitur yang ada dari GitHub - Cari masalah ini di sana!

Dan jangan khawatir, masalah ini akan tetap ada di GitHub demi anak cucu. Karena ini adalah impor teks saja dari posting asli ke UserVoice, kami akan tetap mengingat komentar dan diskusi yang sudah ada di sini pada masalah GitHub.

GitHub akan tetap menjadi saluran untuk melaporkan bug.

Sekali lagi, masalah ini sekarang dapat ditemukan dengan mencari judul di: https://aws.uservoice.com/forums/598381-aws-command-line-interface

-Tim Alat & SDK AWS

Entri ini secara khusus dapat ditemukan di UserVoice di: https://aws.uservoice.com/forums/598381-aws-command-line-interface/suggestions/33168310-cloudformation-external-parameter-file-do-not-supp

+1

Berdasarkan umpan balik komunitas, kami telah memutuskan untuk mengembalikan permintaan fitur ke masalah GitHub.

+1

+1

+1

+100

+1

+1

+1

+1
dan +1000 untuk lebih konsisten secara keseluruhan;)

+1

Masalah ini berumur 2 tahun ;_;

@matthewflannery tidak, sebenarnya hanya 587 hari.

+1

@Yaowenjie 587/365 = 1,608 ~ 2 tahun

+1

lebih 11!1!1satu!!1!11

:+1:

:heavy_plus_sign: :100:

👍

+1

ada dua bulan tersisa untuk perayaan ulang tahun kedua edisi ini, kawan! 👨👩👧👦🎉🎉🎊🎊👨👨👧👦.

Karena tim saya terbiasa dengan YAML (semua template kami menggunakan YAML), saya memiliki beberapa otomatisasi shell yang mengubah file YAML menjadi file json, lalu meneruskannya ke CF. Itu menunjukkan (setidaknya bagi saya) betapa menginginkan fitur ini - meminta pelanggan membangun otomatisasi mereka sendiri di sekitar fungsionalitas dasar seperti ini bukanlah jawaban.

Juga, kita harus mencatat bahwa seluruh cara kerja parameterKey/ParamaterValue untuk CloudFormation adalah bodoh.

Bisakah kita memiliki template CloudFormation di YAML dan menyediakan file parameter di JSON?

@Yashswarnkar Ya - Anda dapat memiliki template di YAML dan parameter di JSON. Masalah ini karena parameter hanya dapat berada di JSON - file YAML tidak didukung meskipun template berada di YAML.

+1 Sangat ingin dapat menambahkan komentar ke file parameter saya dan menjalankannya dari CLI. Adakah rencana untuk menambahkan dukungan .yaml untuk perintah create-stack CLI dengan --parameters untuk mendukung yaml?

Adakah ETA untuk fitur ini?

+1

Hampir 2 tahun dan masih belum ada yaml untuk parameter... :(

+1

+1

+1

Dengan SSM sekarang tersedia dengan string aman dan cara untuk memecahkan kodenya, saya senang dengan ide menjalankan skrip untuk menempatkan variabel ke dalam akun AWS, dan kemudian merujuknya dari template cloudformation... Ada yang punya ide lain seperti ini ?

Sesuai komentar di atas, Anda dapat menggunakan cfn-flip
https://github.com/awslabs/aws-cfn-template-flip

Di bash - Menampilkan parameter.yaml sebagai file json dengan operator <( )

pip install cfn_flip

cat <(cfn-flip parameters.yaml)

Gunakan, dengan <( ) dalam perintah cli

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

+100

Ini jelas merupakan fitur yang sangat diminati - mengapa tidak ada gerakan pada ini meskipun sepertinya ratusan orang memintanya?

+1
Kasus penggunaan NYATA, adalah di mana harus menentukan JSON dalam parameter, dalam hal ini JSON adalah mimpi buruk dengan harus menghindari tanda kutip...

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

Dibandingkan dengan:

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

Sehat? Tidak ada pembaruan lagi?

Sehat? Tidak ada pembaruan lagi?

Tenang saja, ini baru Januari 2019

Hei, bagaimana orang-orang ini bergabung dalam PR?

Saya akan mempertimbangkan untuk menulis ini jika saya tahu tim secara teratur bergabung dalam PR dari orang-orang di luar organisasi mereka.

Tidak ada ide. Saya pikir ada cukup permintaan untuk ini, mereka akan menerapkannya pada akhirnya.

ini mungkin harus tetap terbuka selamanya dan semua orang yang ada di dalamnya semua bisa berteman dan mengadakan konferensi setiap tahun yang disebut 'Payameter Fam' (seperti dalam parameter yaml fam) di mana kita semua berkumpul dan mendiskusikan trauma anti-yaml kita.

+1

👍

+1

+1

3 tahun, 90% API menggunakan YAML, banyak +1 yang mengganggu dan AWS menggaruk bolanya...

Saya sangat ingin yaml hanya menggunakan komentar untuk file konfigurasi / batalkan komentar item/etc

+1

Ini Juni 2019, saya tidak mengerti mengapa AWS masih belum menyelesaikan masalah ini. Mereka mempekerjakan begitu banyak orang setiap tahun

Ayo Benarkah? Mari kita bergerak ini

+1

+1

+1

+1

+1

+1

+1

menunggu...menunggu...

masih menunggu!

Masih parameter hanya Json?

Masalah ini sudah cukup untuk memulai prasekolah.

Saya akan berada di re:Invent 2019 jika ada yang ingin membahas masalah ini dan berbicara omong kosong dengan Jeff Barr, et. al di twitter.

Ini akan menyenangkan

+1

+1

+1

+1
baru saja menabrak batu ini, bisakah saya mendapatkan dukungan parameter YAML?
Proyek saya saat ini menyukai YAML (saya tidak :))

Bisakah Anda menambahkan dukungan XML juga? Saya tidak dapat mengirimkan ini melalui SOAP. Dukungan AWS sangat penting dalam Windows Forms.

+1

+1

+1

Ada update :/ ?

+1

+1
id ingin dapat berkomentar di file parameter saya dengan memisahkan params cloudformation yang dapat diupgrade dan yang tidak dapat diupgrade.
misalnya. saya mencoba memutakhirkan id snapshot saya dari suatu volume.
-> Properti volume selain AutoEnableIO, jenis, ukuran, dan IOPS tidak dapat diperbarui. Ubah properti kembali ke nilai sebelumnya dan perbarui tumpukan lagi.

Sedang mencoba membuat tumpukan dengan perintah berikut: aws cloudformation create-stack --stack-name myfirsttest --region us-west-2 --template-body file://testcfn.yml
Tetapi mendapat pesan kesalahan berikut:
Kesalahan penguraian parameter '--template-body': Tidak dapat memuat file paramfile://testcfn.yml : [Errno 2] Tidak ada file atau direktori seperti itu: 'testcfn.yml'

File testcfn.yml saya adalah sebagai berikut:
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.

Yay, yaml dukungan!!!

› 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.

Apakah ini masih tidak apa-apa?? Atau Apakah saya melewatkan bahwa itu ada di suatu tempat?

Bagi siapa pun yang tertarik menggunakan .yaml dalam parameternya, silakan lihat ini
https://github.com/realestate-com-au/stackup

Saya pikir AWS harus mengetuk pintu real estat untuk membeli kode ini dan memindahkannya ke IP mereka.....

+1

Bukan penggemar berat cara peretasan untuk menyelesaikan masalah, karena peretasan menjadi sangat cepat berantakan.
Tetapi bagi siapa saja yang tertarik melakukan ini dengan file params di env.

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

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

+1 untuk file params sebagai YAML. Mengapa memaksa seseorang untuk mencampur markup?

Apakah halaman ini membantu?
0 / 5 - 0 peringkat