Infrastruktur komponen sebagai file kode - AWS Proton

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

Infrastruktur komponen sebagai file kode

Infrastruktur komponen sebagai kode (IAC) file mirip dengan yang untukAWS Proton sumber daya lainnya. Pelajari di sini tentang beberapa detail yang spesifik untuk komponen. Untuk informasi lengkap tentang authoring file iAC untukAWS Proton, lihatMenulis template dan membuat bundel untuk AWS Proton.

Menggunakan parameter dengan komponen

NamespaceAWS Proton parameter mencakup beberapa parameter yang dapat dirujuk oleh file iAC layanan untuk mendapatkan nama dan output komponen terkait. Namespace juga mencakup parameter yang dapat dirujuk oleh file IAC komponen untuk mendapatkan input, output, dan nilai sumber daya dari instance lingkungan, layanan, dan layanan yang terkait dengan komponen tersebut.

Komponen tidak memiliki masukan sendiri—ia mendapatkan masukan dari instance layanan yang dilampirkan. Sebuah komponen juga dapat membaca output lingkungan.

Untuk informasi selengkapnya tentang cara menggunakan parameter dalam file komponen dan layanan terkait IAC, lihatDetail dan contoh parameter file CloudFormation iAc komponen. Untuk informasi umum tentangAWS Proton parameter dan referensi lengkap dari namespace parameter, lihatAWS Proton parameter.

Membuat file IAC yang kuat

Sebagai administrator, ketika Anda membuat versi template layanan, Anda dapat memutuskan apakah Anda ingin mengizinkan instance layanan yang dibuat dari versi template untuk memiliki komponen terlampir. Lihat supportedComponentSourcesparameter aksi CreateServiceTemplateVersionAPI di ReferensiAWS Proton API. Namun, untuk setiap contoh layanan future, orang yang membuat instance, memutuskan apakah akan melampirkan komponen ke dalamnya atau tidak, dan (dalam kasus komponen yang didefinisikan secara langsung) penulis komponen IAC biasanya orang yang berbeda—pengembang yang menggunakan template layanan Anda. Oleh karena itu, Anda tidak dapat menjamin bahwa komponen akan dilampirkan ke instance layanan. Anda juga tidak dapat menjamin keberadaan nama keluaran komponen tertentu atau validitas dan keamanan nilai output ini.

AWS Protondan sintaks Jinja membantu Anda mengatasi masalah ini dan penulis template layanan yang kuat yang membuat tanpa kegagalan dengan cara berikut:

  • AWS Protonfilter parameter - Saat Anda merujuk ke properti keluaran komponen, Anda dapat menggunakan filter parameter —modifier yang memvalidasi, menyaring, dan memformat nilai parameter. Untuk informasi selengkapnya dan contoh tambahan, lihat Filter parameter untuk CloudFormation file IAc.

  • Default properti tunggal - Ketika Anda merujuk ke satu sumber daya atau properti keluaran komponen, Anda dapat menjamin bahwa rendering template layanan Anda tidak akan gagal dengan menggunakandefault filter, dengan atau tanpa nilai default. Jika komponen, atau parameter keluaran tertentu yang Anda maksud, tidak ada, nilai default (atau string kosong, jika Anda belum menentukan nilai default) akan diberikan sebagai gantinya, dan rendering berhasil. Untuk informasi selengkapnya, lihat Berikan nilai default untuk referensi yang tidak ada.

    Contoh:

    • {{ service_instance.components.default.name | default("") }}

    • {{ service_instance.components.default.outputs.my-output | default("17") }}

    catatan

    Jangan bingung.default bagian dari namespace, yang menunjuk komponen didefinisikan langsung, dengandefault filter, yang memberikan nilai default ketika properti direferensikan tidak ada.

  • Seluruh referensi objek - Saat Anda merujuk ke seluruh komponen, atau ke koleksi output komponen,AWS Proton kembalikan objek kosong{}, dan karenanya menjamin bahwa rendering template layanan Anda tidak akan gagal. Anda tidak perlu menggunakan filter apa pun. Pastikan untuk membuat referensi dalam konteks yang dapat mengambil objek kosong, atau menggunakan{{ if .. }} kondisi untuk menguji objek kosong.

    Contoh:

    • {{ service_instance.components.default }}

    • {{ service_instance.components.default.outputs }}