Pubblicazione di applicazioni serverless tramiteAWS SAM CLI - 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à.

Pubblicazione di applicazioni serverless tramiteAWS SAM CLI

Per rendere la tuaAWS SAM applicazione disponibile per essere trovata e distribuita da altri, puoi utilizzare laAWS SAM CLI per pubblicarla suAWS Serverless Application Repository. Per pubblicare l'applicazione utilizzando laAWS SAM CLI, è necessario definirla utilizzando unAWS SAM modello. Inoltre, devi averlo testato localmente o nelAWS cloud.

Segui le istruzioni in questo argomento per creare una nuova applicazione, creare una nuova versione di un'applicazione esistente o aggiornare i metadati di un'applicazione esistente. (Ciò che si fa dipende dal fatto che l'applicazione esista già in e se iAWS Serverless Application Repository metadati dell'applicazione stanno cambiando.) Per ulteriori informazioni sui metadati delle applicazioni, consultaAWS SAMProprietà della sezione di metadati template.

Prerequisiti

Prima di pubblicare un'applicazione perAWS Serverless Application Repository utilizzare laAWS SAM CLI, è necessario disporre di quanto segue:

  • LaAWS SAM CLI installata. Per ulteriori informazioni, consulta Installazione dell'interfaccia a riga di comando AWS SAM. Per determinare se laAWS SAM CLI è installata, esegui il comando seguente:

    sam --version
  • UnAWS SAM modello valido.

  • Il codice dell'applicazione e le dipendenze a cui fa riferimento ilAWS SAM modello.

  • Una versione semantica, necessaria solo per condividere pubblicamente la tua applicazione. Questo valore può essere semplice come 1,0.

  • Un URL che rimanda al codice sorgente dell'applicazione.

  • Un file README.md. Questo file dovrebbe descrivere come i clienti possono utilizzare l'applicazione e come configurarla prima di distribuirla nei propriAWS account.

  • UnLICENSE.txt file, necessario solo per condividere pubblicamente la tua candidatura.

  • Se la tua applicazione contiene applicazioni annidate, devi averle già pubblicate inAWS Serverless Application Repository.

  • Una policy valida per i bucket di Amazon Simple Storage Service (Amazon S3) che concede al servizio le autorizzazioni di lettura per gli elementi caricati su Amazon S3 quando impacchettate l'applicazione. Per configurare questa policy, completa queste operazioni:

    1. Aprire la console Amazon S3 su https://console.aws.amazon.com/s3/.

    2. Scegliere il nome del bucket Amazon S3 utilizzato per impacchettare l'applicazione.

    3. Seleziona Permissions (Autorizzazioni).

    4. Nella sezione Autorizzazioni, alla voce Policy del bucket, scegliere Modifica.

    5. Nella pagina Modifica policy del bucket, incolla la seguente dichiarazione politica nell'editor delle politiche. Nella dichiarazione sulla politica, assicurati di utilizzare il nome del bucket nell'Resourceelemento e l'ID del tuoAWS account nell'Conditionelemento. L'espressione nell'Conditionelemento garantisce cheAWS Serverless Application Repository sia autorizzato ad accedere solo alle applicazioni dall'AWSaccount specificato. Per ulteriori informazioni sulle dichiarazioni delle policy IAM JSON nella Guida per l'utente IAM JSON nella Guida per l'utente IAM JSON nella Guida per l'utente IAM JSON nella Guida per l'utente IAM

      { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "serverlessrepo.amazonaws.com" }, "Action": "s3:GetObject", "Resource": "arn:aws:s3:::<your-bucket-name>/*", "Condition" : { "StringEquals": { "aws:SourceAccount": "123456789012" } } } ] }
    6. Sceglie Save changes (Salva modifiche).

Pubblicazione di una nuova applicazione

Passaggio 1: aggiungere unaMetadata sezione alAWS SAM modello

Per prima cosa, aggiungi unaMetadata sezione al tuoAWS SAM modello. Fornire le informazioni sulla domanda da pubblicare alAWS Serverless Application Repository.

Di seguito è riportato un esempio diMetadata sezione:

Metadata: AWS::ServerlessRepo::Application: Name: my-app Description: hello world Author: user1 SpdxLicenseId: Apache-2.0 LicenseUrl: LICENSE.txt ReadmeUrl: README.md Labels: ['tests'] HomePageUrl: https://github.com/user1/my-app-project SemanticVersion: 0.0.1 SourceCodeUrl: https://github.com/user1/my-app-project Resources: HelloWorldFunction: Type: AWS::Lambda::Function Properties: ... CodeUri: source-code1 ...

Per ulteriori informazioni sullaMetadata sezione delAWS SAM modello, vedereAWS SAMProprietà della sezione di metadati template.

Fase 2: Package dell'applicazione

Esegui il seguente comandoAWS SAM CLI, che carica gli artefatti dell'applicazione su Amazon S3 e genera un nuovo file modello chiamatopackaged.yaml:

sam package --output-template-file packaged.yaml --s3-bucket <your-bucket-name>

Utilizzerai il filepackaged.yaml modello nel passaggio successivo per pubblicare l'applicazione inAWS Serverless Application Repository. Questo file è simile al file modello originale (template.yaml), ma presenta una differenza fondamentale: leReadmeUrl proprietàCodeUriLicenseUrl, e indicano il bucket Amazon S3 e gli oggetti che contengono i rispettivi artefatti.

Il frammento riportato di seguito tratto dal file del modello di esempio packaged.yaml mostra la proprietà CodeUri:

MySampleFunction: Type: AWS::Serverless::Function Properties: CodeUri: s3://bucketname/fbd77a3647a4f47a352fcObjectGUID ...

Fase 3: Pubblicazione dell'applicazione

Per pubblicare una versione privata della tuaAWS SAM applicazione suAWS Serverless Application Repository, esegui il seguente comandoAWS SAM CLI:

sam publish --template packaged.yaml --region us-east-1

L'output delsam publish comando include un collegamento alla tua applicazione suAWS Serverless Application Repository. Puoi anche andare direttamente alla pagina diAWS Serverless Application Repository destinazione e cercare la tua applicazione.

Fase 4: condivisione dell'applicazione (opzionale)

Per impostazione predefinita, l'applicazione è impostata come privata, quindi non è visibile agli altriAWS account. Per condividere la tua candidatura con altri, devi renderla pubblica o concedere l'autorizzazione a un elenco specifico diAWS account.

Per informazioni sulla condivisione dell'applicazione tramiteAWS CLI, consulta Esempi di policyAWS Serverless Application Repository basati sulle risorse nella Guida per gliAWS Serverless Application Repository sviluppatori. Per informazioni sulla condivisione dell'applicazione tramiteAWS Management Console, vedere Condivisione di un'applicazione nella Guida per gliAWS Serverless Application Repository sviluppatori.

Pubblicazione di una nuova versione di un'applicazione esistente

Dopo aver pubblicato un'applicazione suAWS Serverless Application Repository, potresti volerne pubblicare una nuova versione. Ad esempio, potresti aver modificato il codice della funzione Lambda o aggiunto un nuovo componente all'architettura dell'applicazione.

Per aggiornare un'applicazione che hai pubblicato in precedenza, pubblicala nuovamente utilizzando lo stesso processo descritto in precedenza. MetadataNella sezione del fileAWS SAM modello, inserisci lo stesso nome dell'applicazione con cui l'hai pubblicato originariamente, ma includi un nuovoSemanticVersion valore.

Ad esempio, si consideri un'applicazione pubblicata con il nomeSampleApp e unSemanticVersion di1.0.0. Per aggiornare l'applicazione, ilAWS SAM modello deve avere il nome dell'applicazioneSampleApp e unSemanticVersion of1.0.1 (o qualcosa di diverso da1.0.0).

Argomenti aggiuntivi