AWS SAMCLIberkas konfigurasi - AWS Serverless Application Model

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

AWS SAMCLIberkas konfigurasi

AWS Serverless Application Model Command Line Interface (AWS SAMCLI) mendukung file konfigurasi tingkat proyek yang dapat Anda gunakan untuk mengkonfigurasi nilai parameter AWS SAMCLI perintah.

Untuk dokumentasi tentang membuat dan menggunakan file konfigurasi, lihatMengkonfigurasi AWS SAMCLI.

Pengaturan file konfigurasi default

AWS SAM menggunakan pengaturan file konfigurasi default berikut:

  • Namasamconfig.

  • Lokasi — Di akar proyek Anda. Ini adalah lokasi yang sama dengan template.yaml file Anda.

  • FormatTOML. Untuk mempelajari lebih lanjut, lihat TOMB di TOMLdokumentasi.

Berikut ini adalah contoh struktur proyek yang mencakup nama file konfigurasi default dan lokasi:

sam-app
├── README.md
├── __init__.py
├── events
├── hello_world
├── samconfig.toml
├── template.yaml
└── tests

Berikut ini adalah samconfig.toml file contoh:

...
version = 0.1

[default]
[default.global]
[default.global.parameters]
stack_name = "sam-app"

[default.build.parameters]
cached = true
parallel = true

[default.deploy.parameters]
capabilities = "CAPABILITY_IAM"
confirm_changeset = true
resolve_s3 = true

[default.sync.parameters]
watch = true

[default.local_start_api.parameters]
warm_containers = "EAGER"

[prod]
[prod.sync]
[prod.sync.parameters]
watch = false

Format file konfigurasi yang didukung

TOMLdan [YAML|YML] format didukung. Lihat sintaks dasar berikut:

TOML

version = 0.1 [environment] [environment.command] [environment.command.parameters] option = parameter value

YAML

version: 0.1 environment: command: parameters: option: parameter value

Tentukan file konfigurasi

Secara default, AWS SAMCLI mencari file konfigurasi dalam urutan sebagai berikut:

  1. File konfigurasi kustom - Jika Anda menggunakan --config-file opsi untuk menentukan nama dan lokasi file, AWS SAMCLI cari file ini terlebih dahulu.

  2. samconfig.tomlFile default — Ini adalah nama dan format file konfigurasi default, yang terletak di root proyek Anda. Jika Anda tidak menentukan file konfigurasi kustom, AWS SAMCLI cari file ini selanjutnya.

  3. samconfig.[yaml|yml]file — Jika samconfig.toml tidak ada di root proyek Anda, AWS SAMCLI mencari file ini.

Berikut ini adalah contoh menentukan file konfigurasi kustom menggunakan --config-file opsi:

$ sam deploy --config-file myconfig.yaml
catatan

--config-fileParameter harus relatif terhadap lokasi file AWS SAM template karena AWS SAMCLI kebutuhan untuk menentukan konteks di mana konfigurasi diterapkan. samconfig.tomlFile mengelola pengaturan konfigurasi untuk versi Anda AWS SAMCLI, dan CLI mencari samconfig.toml file (atau parameter file konfigurasi yang diganti) di relatif folder file. template.yaml

Dasar-dasar file konfigurasi

Lingkungan

Lingkungan adalah pengenal bernama yang berisi seperangkat pengaturan konfigurasi yang unik. Anda dapat memiliki beberapa lingkungan dalam satu AWS SAM aplikasi.

Nama lingkungan default adalahdefault.

Gunakan AWS SAMCLI --config-env opsi untuk menentukan lingkungan yang akan digunakan.

Perintah

Perintah adalah AWS SAMCLI perintah untuk menentukan nilai parameter untuk.

Untuk menentukan nilai parameter untuk semua perintah, gunakan global pengenal.

Saat mereferensikan AWS SAMCLI perintah, ganti spasi ( ) dan tanda hubung () dengan garis bawah (). _ Lihat contoh berikut:

  • build

  • local_invoke

  • local_start_api

Parameter

Parameter ditentukan sebagai pasangan kunci-nilai.

  • Kuncinya adalah nama opsi AWS SAMCLI perintah.

  • Nilai adalah nilai yang akan ditentukan.

Saat menentukan kunci, gunakan nama opsi perintah bentuk panjang dan ganti tanda hubung () dengan garis bawah (). _ Berikut ini adalah beberapa contohnya:

  • region

  • stack_name

  • template_file

Aturan nilai parameter

TOML

  • Nilai Boolean bisa true ataufalse. Misalnya, confirm_changeset = true.

  • Untuk nilai string, gunakan tanda kutip (""). Misalnya, region = "us-west-2".

  • Untuk nilai daftar, gunakan tanda kutip ("") dan pisahkan setiap nilai menggunakan spasi ( ). Sebagai contoh: capabilities = "CAPABILITY_IAM CAPABILITY_NAMED_IAM".

  • Untuk nilai yang berisi daftar pasangan kunci-nilai, pasangan adalah spasi-delimited ( ) dan nilai setiap pasangan dikelilingi oleh tanda kutip yang dikodekan (). \" \" Misalnya, tags = "project=\"my-application\" stage=\"production\"".

  • Untuk nilai parameter yang dapat ditentukan beberapa kali, nilainya adalah array argumen. Sebagai contoh: image_repositories = ["my-function-1=image-repo-1", "my-function-2=image-repo-2"].

YAML

  • Nilai Boolean bisa true ataufalse. Misalnya, confirm_changeset: true.

  • Untuk entri yang berisi nilai string tunggal, tanda kutip ("") bersifat opsional. Misalnya, region: us-west-2. Ini termasuk entri yang berisi beberapa pasangan kunci-nilai yang disediakan sebagai string tunggal. Berikut ini adalah contohnya:

    $ sam deploy --tags "foo=bar hello=world"
    default: deploy: parameters: tags: foo=bar hello=world
  • Untuk entri yang berisi daftar nilai, atau entri yang dapat digunakan beberapa kali dalam satu perintah, tentukan sebagai daftar string.

    Berikut ini adalah contohnya:

    $ sam remote invoke --parameter "InvocationType=Event" --parameter "LogType=None"
    default: remote_invoke: parameters: parameter: - InvocationType=Event - LogType=None

Keutamaan konfigurasi

Saat mengonfigurasi nilai, prioritas berikut terjadi:

  • Nilai parameter yang Anda berikan pada baris perintah lebih diutamakan daripada nilai yang sesuai dalam file konfigurasi dan Parameters bagian file template.

  • Jika --parameter-overrides opsi digunakan pada baris perintah atau dalam file konfigurasi Anda dengan parameter_overrides kunci, nilainya lebih diutamakan daripada nilai di Parameters bagian file template.

  • Dalam file konfigurasi Anda, entri yang disediakan untuk perintah tertentu lebih diutamakan daripada entri global. Dalam contoh berikut, sam deploy perintah akan menggunakan nama stackmy-app-stack.

    MAKAM
    [default.global.parameters]
    stack_name = "common-stack"
    
    [default.deploy.parameters]
    stack_name = "my-app-stack"
    YAML
    default: global: parameters: stack_name: common-stack deploy: parameters: stack_name: my-app-stack

Membuat dan memodifikasi file konfigurasi

Membuat file konfigurasi

Saat Anda membuat aplikasi menggunakansam init, samconfig.toml file default dibuat. Anda juga dapat membuat file konfigurasi secara manual.

Memodifikasi file konfigurasi

Anda dapat memodifikasi file konfigurasi secara manual. Juga, selama aliran AWS SAMCLI interaktif apa pun, nilai yang dikonfigurasi akan ditampilkan dalam tanda kurung ([ ]). Jika Anda memodifikasi nilai-nilai ini, AWS SAMCLI akan memperbarui file konfigurasi Anda.

Berikut ini adalah contoh aliran interaktif menggunakan sam deploy --guided perintah:

$ sam deploy --guided Configuring SAM deploy ====================== Looking for config file [samconfig.toml] : Found Reading default arguments : Success Setting default arguments for 'sam deploy' ========================================= Stack Name [sam-app]: ENTER AWS Region [us-west-2]: ENTER #Shows you resources changes to be deployed and require a 'Y' to initiate deploy Confirm changes before deploy [Y/n]: n #SAM needs permission to be able to create roles to connect to the resources in your template Allow SAM CLI IAM role creation [Y/n]: ENTER #Preserves the state of previously provisioned resources when an operation fails Disable rollback [y/N]: ENTER HelloWorldFunction may not have authorization defined, Is this okay? [y/N]: y Save arguments to configuration file [Y/n]: ENTER SAM configuration file [samconfig.toml]: ENTER SAM configuration environment [default]: ENTER

Saat memodifikasi file konfigurasi Anda, AWS SAMCLI menangani nilai global sebagai berikut:

  • Jika nilai parameter ada di global bagian file konfigurasi Anda, nilai AWS SAMCLI tidak akan menuliskan nilai ke bagian perintah tertentu.

  • Jika nilai parameter ada di kedua bagian perintah global dan spesifik, AWS SAMCLI menghapus entri spesifik yang mendukung nilai global.