Riutilizza codice e risorse utilizzando applicazioni annidate in AWS SAM - AWS Serverless Application Model

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

Riutilizza codice e risorse utilizzando applicazioni annidate in AWS SAM

Un'applicazione serverless può includere una o più applicazioni annidate. Un'applicazione nidificata fa parte di un'applicazione più ampia e può essere impacchettata e distribuita come elemento autonomo o come componente di un'applicazione più grande. Le applicazioni annidate consentono di trasformare il codice utilizzato di frequente in un'applicazione propria, che può quindi essere riutilizzata su un'applicazione serverless più grande o su più applicazioni serverless.

Man mano che le architetture serverless crescono, in genere emergono modelli comuni in cui gli stessi componenti sono definiti in più modelli di applicazione. Le applicazioni annidate consentono di riutilizzare codice, funzionalità, risorse e configurazioni comuni separatamente AWS SAM modelli, che consentono di gestire solo il codice proveniente da un'unica fonte. Ciò riduce il codice e le configurazioni duplicati. Inoltre, questo approccio modulare semplifica lo sviluppo, migliora l'organizzazione del codice e facilita la coerenza tra le applicazioni serverless. Con le applicazioni annidate, puoi concentrarti maggiormente sulla logica di business che è unica per la tua applicazione.

Per definire un'applicazione nidificata nella tua applicazione serverless, utilizza il AWS::Serverless::Application tipo di risorsa.

È possibile definire applicazioni nidificate dalle seguenti due fonti:

  • Un AWS Serverless Application Repository applicazione: è possibile definire applicazioni nidificate utilizzando le applicazioni disponibili per l'account in AWS Serverless Application Repository. Queste possono essere applicazioni private nel tuo account, applicazioni condivise privatamente con il tuo account o applicazioni condivise pubblicamente in AWS Serverless Application Repository. Per ulteriori informazioni sui diversi livelli di autorizzazioni di distribuzione, vedere Autorizzazioni per la distribuzione delle applicazioni e applicazioni di pubblicazione nel AWS Serverless Application Repository Guida per gli sviluppatori.

  • Un'applicazione locale: è possibile definire applicazioni annidate utilizzando applicazioni archiviate nel file system locale.

Per informazioni dettagliate sull'uso, consulta le seguenti sezioni AWS SAM per definire entrambi questi tipi di applicazioni annidate nella vostra applicazione serverless.

Nota

Il numero massimo di applicazioni che possono essere annidate in un'applicazione serverless è 200.

Il numero massimo di parametri che un'applicazione annidata può avere è 60.

Definizione di un'applicazione nidificata da AWS Serverless Application Repository

È possibile definire applicazioni nidificate utilizzando applicazioni disponibili in AWS Serverless Application Repository. È inoltre possibile archiviare e distribuire applicazioni che contengono applicazioni annidate utilizzando AWS Serverless Application Repository. Per esaminare i dettagli di un'applicazione annidata nel AWS Serverless Application Repository, è possibile utilizzare il AWS SDK, il AWS CLI o la console Lambda.

Per definire un'applicazione ospitata in AWS Serverless Application Repository nelle tue applicazioni serverless AWS SAM modello, usa il pulsante Copia come SAM risorsa nella pagina dei dettagli di ogni AWS Serverless Application Repository applicazione. A tale scopo, seguire queste fasi:

  1. Assicurati di aver effettuato l'accesso al AWS Management Console.

  2. Trova l'applicazione in cui vuoi annidare AWS Serverless Application Repository utilizzando i passaggi indicati nella sezione Navigazione, ricerca e distribuzione delle applicazioni del AWS Serverless Application Repository Guida per gli sviluppatori.

  3. Scegli il pulsante Copia come SAM risorsa. La sezione dei SAM modelli per l'applicazione che stai visualizzando è ora negli appunti.

  4. Incolla la sezione SAM modello nella Resources: sezione del file SAM modello per l'applicazione che desideri annidare in questa applicazione.

Di seguito è riportato un esempio di sezione SAM modello per un'applicazione nidificata ospitata in AWS Serverless Application Repository:

Transform: AWS::Serverless-2016-10-31 Resources: applicationaliasname: Type: AWS::Serverless::Application Properties: Location: ApplicationId: arn:aws:serverlessrepo:us-east-1:123456789012:applications/application-alias-name SemanticVersion: 1.0.0 Parameters: # Optional parameter that can have default value overridden # ParameterName1: 15 # Uncomment to override default value # Required parameter that needs value to be provided ParameterName2: YOUR_VALUE

Se non sono presenti impostazioni dei parametri obbligatorie, è possibile omettere la Parameters: sezione del modello.

Importante

Applicazioni che contengono applicazioni annidate ospitate in AWS Serverless Application Repository ereditano le restrizioni di condivisione delle applicazioni nidificate.

Ad esempio, supponiamo che un'applicazione sia condivisa pubblicamente, ma contenga un'applicazione nidificata condivisa solo privatamente con AWS account che ha creato l'applicazione principale. In questo caso, se AWS L'account non dispone dell'autorizzazione per distribuire l'applicazione annidata, non sei in grado di distribuire l'applicazione principale. Per ulteriori informazioni sulle autorizzazioni per la distribuzione delle applicazioni, consulta Autorizzazioni per la distribuzione delle applicazioni e le applicazioni di pubblicazione nella AWS Serverless Application Repository Guida per gli sviluppatori.

Definizione di un'applicazione annidata dal file system locale

È possibile definire applicazioni annidate utilizzando applicazioni archiviate nel file system locale. A tale scopo, è necessario specificare il percorso del AWS SAM file modello archiviato nel file system locale.

Di seguito è riportato un esempio di sezione SAM modello per un'applicazione locale annidata:

Transform: AWS::Serverless-2016-10-31 Resources: applicationaliasname: Type: AWS::Serverless::Application Properties: Location: ../my-other-app/template.yaml Parameters: # Optional parameter that can have default value overridden # ParameterName1: 15 # Uncomment to override default value # Required parameter that needs value to be provided ParameterName2: YOUR_VALUE

Se non sono presenti impostazioni dei parametri, è possibile omettere la Parameters: sezione del modello.

Distribuzione di applicazioni annidate

È possibile distribuire l'applicazione nidificata utilizzando AWS SAM CLI comando. sam deploy Per ulteriori dettagli, consulta Implementa la tua applicazione e le tue risorse con AWS SAM.

Nota

Quando si distribuisce un'applicazione che contiene applicazioni nidificate, è necessario confermare che contiene applicazioni nidificate. A tale scopo, è possibile passare CAPABILITY_AUTO_EXPAND a o utilizzare CreateCloudFormationChangeSet APIil aws serverlessrepo create-cloud-formation-change-set AWS CLI comando.

Per ulteriori informazioni sul riconoscimento delle applicazioni nidificate, vedere Riconoscimento IAM dei ruoli, delle politiche delle risorse e delle applicazioni nidificate durante la distribuzione di applicazioni in AWS Serverless Application Repository Guida per gli sviluppatori.