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. -
Un
LICENSE.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:
Aprire la console Amazon S3 su https://console.aws.amazon.com/s3/
. -
Scegliere il nome del bucket Amazon S3 utilizzato per impacchettare l'applicazione.
-
Seleziona Permissions (Autorizzazioni).
-
Nella sezione Autorizzazioni, alla voce Policy del bucket, scegliere Modifica.
-
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'
Resource
elemento e l'ID del tuoAWS account nell'Condition
elemento. L'espressione nell'Condition
elemento 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
" } } } ] } -
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àCodeUri
LicenseUrl
, 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
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. Metadata
Nella 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
).