Infrastruttura dei componenti come file di codice - AWS Proton

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Infrastruttura dei componenti come file di codice

I file IAc (Component Infrastructure as Code) sono simili a quelli di altre AWS Proton risorse. Scopri qui alcuni dettagli specifici dei componenti. Per informazioni complete sulla creazione di file IAc per AWS Proton, vedere. Creazione di modelli e creazione di pacchetti per AWS Proton

Utilizzo dei parametri con i componenti

Lo spazio AWS Proton dei nomi dei parametri include alcuni parametri a cui un file IAc di servizio può fare riferimento per ottenere il nome e gli output di un componente associato. Lo spazio dei nomi include anche parametri a cui un file IAc del componente può fare riferimento per ottenere input, output e valori delle risorse dall'ambiente, dal servizio e dall'istanza del servizio a cui il componente è associato.

Un componente non dispone di input propri, ma riceve gli input dall'istanza di servizio a cui è collegato. Un componente può anche leggere gli output dell'ambiente.

Per ulteriori informazioni sull'utilizzo dei parametri nei file IAc del componente e del servizio associato, vedere. Dettagli ed esempi dei parametri del file CloudFormation IAc del componente Per informazioni generali sui AWS Proton parametri e un riferimento completo allo spazio dei nomi dei parametri, vedere. AWS Proton parametri

Creazione di file IAc robusti

In qualità di amministratore, quando create una versione del modello di servizio, potete decidere se consentire alle istanze di servizio create a partire dalla versione del modello di avere componenti allegati. Vedi il supportedComponentSourcesparametro dell'azione CreateServiceTemplateVersionAPI nell'AWS Proton API Reference. Tuttavia, per tutte le future istanze di servizio, la persona che crea l'istanza decide se allegarvi o meno un componente e (nel caso di componenti definiti direttamente) l'autore del componente IaC è in genere una persona diversa, uno sviluppatore che utilizza il modello di servizio. Pertanto, non è possibile garantire che un componente venga collegato a un'istanza di servizio. Inoltre, non è possibile garantire l'esistenza di nomi di output di componenti specifici o la validità e la sicurezza dei valori di questi output.

AWS Proton e la sintassi Jinja vi aiutano a risolvere questi problemi e a creare solidi modelli di servizio che eseguono il rendering senza errori nei seguenti modi:

  • AWS Proton filtri parametrici: quando si fa riferimento alle proprietà di output dei componenti, è possibile utilizzare filtri parametrici, ossia modificatori che convalidano, filtrano e formattano i valori dei parametri. Per maggiori informazioni ed esempi, consulta filtri parametrici per CloudFormation file IAc.

  • Proprietà singola predefinita: quando si fa riferimento a una singola risorsa o proprietà di output di un componente, è possibile garantire che il rendering del modello di servizio non abbia esito negativo utilizzando il default filtro, con o senza un valore predefinito. Se il componente o uno specifico parametro di output a cui ti riferisci non esiste, viene invece renderizzato il valore predefinito (o una stringa vuota, se non hai specificato un valore predefinito) e il rendering ha esito positivo. Per ulteriori informazioni, consulta Fornite valori predefiniti per riferimenti inesistenti.

    Esempi:

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

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

    Nota

    Non confondete la .default parte dello spazio dei nomi, che designa i componenti definiti direttamente, con il default filtro, che fornisce un valore predefinito quando la proprietà referenziata non esiste.

  • Riferimento all'intero oggetto: quando si fa riferimento all'intero componente o alla raccolta degli output di un componente, AWS Proton restituisce un oggetto vuoto e quindi garantisce che il rendering del {} modello di servizio non abbia esito negativo. Non è necessario utilizzare alcun filtro. Assicurati di inserire il riferimento in un contesto che può accettare un oggetto vuoto o usa una {{ if .. }} condizione per verificare la presenza di un oggetto vuoto.

    Esempi:

    • {{ service_instance.components.default }}

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