Publier votre candidature à l'aide du AWS SAMCLI - AWS Serverless Application Model

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 :

    1. Ouvrez la console Amazon S3 sur https://console.aws.amazon.com/s3/.

    2. Choisissez le nom du compartiment Amazon S3 que vous avez utilisé pour empaqueter votre application.

    3. Choisissez Permissions (Autorisations).

    4. Dans l'onglet Permissions (Autorisations), sous Bucket Policy (Stratégie de compartiment), choisissez Edit (Modifier).

    5. 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ément Condition. 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" } } } ] }
    6. 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 et rechercher votre application.

É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).

Rubriques supplémentaires