Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Publier votre candidature à l'aide du AWS SAMCLI
Pour mettre votre AWS SAM application à la disposition d'autres utilisateurs qui pourront la trouver et la déployer, vous pouvez utiliser le AWS SAMCLI pour la publier sur le AWS Serverless Application Repository. Pour publier votre application à l'aide du AWS SAMCLI, vous devez la définir à l'aide d'un AWS SAM modèle. Vous devez également l'avoir testée localement ou dans le Cloud AWS .
Suivez les instructions de cette rubrique pour créer une nouvelle application, créer une nouvelle version d'une application existante ou mettre à jour les métadonnées d'une application existante. (Ce que vous faites dépend de l'existence ou non de l'application dans le AWS Serverless Application Repository et de la modification des métadonnées de l'application.) Pour plus d'informations sur les métadonnées des applications, veuillez consulter Propriétés de la section Métadonnées du modèle AWS SAM.
Prérequis
Avant de publier une application à l' AWS Serverless Application Repository aide du AWS SAMCLI, vous devez disposer des éléments suivants :
-
La CLI AWS SAM installée. Pour plus d’informations, consultez Installer la AWS SAM CLI. Pour déterminer si la CLI AWS SAM est installée, exécutez la commande suivante :
sam --version
-
Un AWS SAM modèle valide.
-
Le code de votre application et les dépendances auxquels le AWS SAM modèle fait référence.
-
Une version sémantique, uniquement nécessaire pour partager publiquement votre application. Cette valeur peut être aussi simple que 1.0.
-
Une URL qui pointe vers le code source de votre application.
-
Un fichier
README.md
. Ce fichier doit décrire comment les clients peuvent utiliser votre application et comment la configurer avant de la déployer sur leurs propres comptes AWS . -
Un fichier
LICENSE.txt
, uniquement nécessaire pour partager publiquement votre application. -
Si votre application contient des applications imbriquées, vous devez les avoir déjà publiées dans le AWS Serverless Application Repository.
-
Une stratégie de compartiment Amazon Simple Storage Service (Amazon S3) valide qui accorde les autorisations de lecture du service pour les artefacts que vous téléchargez sur Amazon S3 quand vous empaquetez votre application. Pour configurer cette règle, procédez comme suit :
Ouvrez la console Amazon S3 sur https://console.aws.amazon.com/s3/
. -
Choisissez le nom du compartiment Amazon S3 que vous avez utilisé pour empaqueter votre application.
-
Choisissez Permissions (Autorisations).
-
Dans l'onglet Permissions (Autorisations), sous Bucket Policy (Stratégie de compartiment), choisissez Edit (Modifier).
-
Dans la page Edit bucket policy (Modifier la stratégie de compartiment), collez l'instruction de stratégie suivante dans l'éditeur de Policy (Stratégie). Dans la déclaration de stratégie, veillez à utiliser le nom de votre compartiment dans l'élément
Resource
et votre ID de compte AWS dans l'élémentCondition
. L'expression contenue dans l'Condition
élément garantit qu'il AWS Serverless Application Repository est autorisé à accéder uniquement aux applications du AWS compte spécifié. Pour plus d'informations sur les déclarations de stratégie, consultez Référence des éléments de stratégie IAM JSON dans le Guide de l'utilisateur 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
" } } } ] } -
Sélectionnez Save Changes (Enregistrer les modifications).
Publication d'une nouvelle application
Étape 1 : ajouter une Metadata
section au AWS SAM modèle
Ajoutez d'abord une Metadata
section à votre AWS SAM modèle. Fournissez les informations relatives à l'application à publier dans le AWS Serverless Application Repository.
Voici un exemple de section Metadata
:
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
...
Pour plus d'informations sur la Metadata
section du AWS SAM modèle, consultezPropriétés de la section Métadonnées du modèle AWS SAM.
Étape 2 : empaqueter l'application
Exécutez la commande CLI AWS SAM suivante, qui télécharge les artefacts de l'application sur Amazon S3 et génère un nouveau fichier modèle appelé packaged.yaml
:
sam package --output-template-file packaged.yaml --s3-bucket
<your-bucket-name>
Vous utilisez le modèle packaged.yaml
dans l'étape suivante pour publier l'application sur le AWS Serverless Application Repository. Ce fichier est similaire au fichier de modèle original (template.yaml
) mais présente une différence significative : le CodeUri
, la LicenseUrl
et les propriétés ReadmeUrl
pointent vers le compartiment Amazon S3 et les objets qui contiennent les artefacts respectifs.
L'extrait suivant d'un exemple de fichier de modèle packaged.yaml
montre la propriété CodeUri
:
MySampleFunction: Type: AWS::Serverless::Function Properties: CodeUri: s3://
bucketname
/fbd77a3647a4f47a352fcObjectGUID
...
Étape 3 : publier l'application
Pour publier une version privée de votre AWS SAM application sur le AWS Serverless Application Repository, exécutez la AWS SAMCLI commande suivante :
sam publish --template packaged.yaml --region us-east-1
La sortie de la commande sam publish
inclut un lien vers votre application sur le AWS Serverless Application Repository. Vous pouvez également accéder directement à la page d'accueil AWS Serverless Application Repository
Étape 4 : partager l'application (facultatif)
Par défaut, votre application est définie sur privée, de sorte qu'elle n'est pas visible par les autres comptes AWS . Pour partager votre application avec d'autres personnes, vous devez soit la rendre publique, soit autoriser une liste spécifique de AWS comptes.
Pour plus d'informations sur le partage de votre application à l'aide de AWS CLI, consultez les exemples de politiques AWS Serverless Application Repository basées sur les ressources dans le guide du AWS Serverless Application Repository développeur. Pour plus d'informations sur le partage de votre application à l'aide du AWS Management Console, consultez Partage d'une application dans le Guide du développeur AWS Serverless Application Repository .
Publication d'une nouvelle version d'une application existante
Après avoir publié une application sur le AWS Serverless Application Repository, vous souhaiterez peut-être en publier une nouvelle version. Par exemple, vous avez peut-être modifié votre code de fonction Lambda ou ajouté un nouveau composant à votre architecture d'application.
Pour mettre à jour une application que vous avez déjà publiée, publiez-la à nouveau en utilisant le même processus que celui décrit précédemment. Dans la section Metadata
du fichier de modèle AWS SAM
, indiquez le même nom d'application que vous avez publié à l'origine, mais incluez une nouvelle valeur SemanticVersion
.
Par exemple, considérons une application publiée avec le nom SampleApp
et un SemanticVersion
de 1.0.0
. Pour mettre à jour cette application , AWS SAM
doit avoir le nom de l'application SampleApp
et un SemanticVersion
de 1.0.1
(ou autre que 1.0.0
).