Pubblicazione di applicazioni serverless utilizzando AWS SAMCLI - 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 utilizzando AWS SAMCLI

Per rendere la tua AWS SAM applicazione disponibile ad altri utenti affinché la trovino e la distribuiscano, puoi utilizzare il AWS SAM CLI per pubblicarla su. AWS Serverless Application Repository Per pubblicare l'applicazione utilizzando il AWS SAMCLI, è necessario definirla utilizzando un AWS SAM modello. È inoltre necessario averlo testato localmente o nel AWS 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 fate dipende dal fatto che l'applicazione esista già nell'applicazione e che AWS Serverless Application Repository i metadati dell'applicazione stiano cambiando). Per ulteriori informazioni sui metadati dell'applicazione, vedere. AWS SAMproprietà della sezione Metadati del modello

Prerequisiti

Prima di pubblicare un'applicazione AWS Serverless Application Repository utilizzando il AWS SAMCLI, è necessario disporre di quanto segue:

  • L'AWS SAMCLIinstallato. Per ulteriori informazioni, consulta Installazione del AWS SAMCLI. Per determinare se AWS SAM CLI è installato, esegui il comando seguente:

    sam --version
  • Un AWS SAM modello valido.

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

  • Una versione semantica, necessaria solo per condividere pubblicamente l'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 propri AWS account.

  • Un LICENSE.txt file, necessario solo per condividere pubblicamente l'applicazione.

  • Se l'applicazione contiene applicazioni annidate, è necessario averle già pubblicate AWS Serverless Application Repository su.

  • Una policy bucket valida di Amazon Simple Storage Service (Amazon S3) Simple Storage Service (Amazon S3) che concede al servizio le autorizzazioni di lettura per gli artefatti che carichi su Amazon S3 quando crei il pacchetto dell'applicazione. Per configurare questa politica, procedi come segue:

    1. Apri la console Amazon S3 all'indirizzo https://console.aws.amazon.com/s3/.

    2. Scegli il nome del bucket Amazon S3 che hai usato per impacchettare la tua applicazione.

    3. Seleziona Autorizzazioni.

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

    5. Nella pagina Modifica policy del bucket, incolla la seguente dichiarazione di policy nell'editor Policy. Nella dichiarazione sulla politica, assicurati di utilizzare il nome del bucket nell'Resourceelemento e l'ID AWS dell'account nell'Conditionelemento. L'espressione nell'Conditionelemento garantisce che AWS Serverless Application Repository disponga del permesso di accedere solo alle applicazioni dell'AWSaccount specificato. Per ulteriori informazioni sulle dichiarazioni politiche, consulta il riferimento agli elementi delle policy IAM JSON nella IAM User Guide.

      { "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. Seleziona Salvataggio delle modifiche.

Pubblicazione di una nuova applicazione

Fase 1: Aggiungere una Metadata sezione al AWS SAM modello

Per prima cosa, aggiungi una Metadata sezione al tuo AWS SAM modello. Fornisci le informazioni sull'applicazione da pubblicare suAWS Serverless Application Repository.

Di seguito è riportata una Metadata sezione di esempio:

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 sulla Metadata sezione del AWS SAM modello, vedereAWS SAMproprietà della sezione Metadati del modello.

Fase 2: Package dell'applicazione

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

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

Utilizzerai il file packaged.yaml modello nel passaggio successivo per pubblicare l'applicazione su. AWS Serverless Application Repository Questo file è simile al file modello originale (template.yaml), ma presenta una differenza fondamentale: le ReadmeUrl proprietà CodeUriLicenseUrl, e puntano al bucket Amazon S3 e agli 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: Pubblicare l'applicazione

Per pubblicare una versione privata dell'AWS SAMapplicazione suAWS Serverless Application Repository, esegui il seguente AWS SAM CLI comando:

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

L'output del sam publish comando include un collegamento all'applicazione suAWS Serverless Application Repository. Puoi anche andare direttamente alla pagina di AWS Serverless Application Repository destinazione e cercare la tua applicazione.

Passaggio 4: Condividi l'applicazione (opzionale)

Per impostazione predefinita, l'applicazione è impostata come privata, quindi non è visibile agli altri AWS account. Per condividere l'applicazione con altri, è necessario renderla pubblica o concedere l'autorizzazione a un elenco specifico di AWS account.

Per informazioni sulla condivisione dell'applicazione utilizzando ilAWS CLI, consulta Esempi di policy AWS Serverless Application Repository basate sulle risorse nella Guida per gli AWS Serverless Application Repository sviluppatori. Per informazioni sulla condivisione dell'applicazione tramiteAWS Management Console, consulta Sharing an Application nella Developer Guide. AWS Serverless Application Repository

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, pubblica nuovamente l'applicazione utilizzando la stessa procedura descritta in precedenza. Nella Metadata sezione del file AWS SAM modello, fornite lo stesso nome di applicazione con cui l'avete pubblicata originariamente, ma includete un nuovo SemanticVersion valore.

Ad esempio, considerate un'applicazione pubblicata con il nome SampleApp e un SemanticVersion di1.0.0. Per aggiornare tale applicazione, il AWS SAM modello deve avere il nome dell'applicazione SampleApp e un SemanticVersion di 1.0.1 (o qualcosa di diverso1.0.0).

Argomenti aggiuntivi