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.
Créez votre application dans AWS SAM
Après avoir terminé Getting started et luComment utiliser AWS Serverless Application Model (AWS SAM), vous serez prêt à créer un AWS SAM projet dans votre environnement de développement. Votre AWS SAM projet servira de point de départ pour l'écriture de votre application sans serveur. Pour obtenir la liste des options de AWS SAMCLI sam init
commande, consultezsam init.
La AWS Serverless Application Model commande Command Line Interface (AWS SAMCLI) sam init
fournit des options permettant d'initialiser une nouvelle application sans serveur composée des éléments suivants :
-
Un AWS SAM modèle pour définir votre code d'infrastructure.
-
Une structure de dossiers qui organise votre application.
-
Configuration de vos AWS Lambda fonctions.
Pour créer un AWS SAM projet, reportez-vous aux rubriques de ces sections.
Rubriques
Initialiser une nouvelle application sans serveur
Pour initialiser une nouvelle application sans serveur à l'aide de la CLI AWS SAM
-
cd
vers un répertoire de départ. -
Dans la ligne de commande, exécutez la commande suivante :
$
sam init
-
La CLI AWS SAM vous guidera à travers un flux interactif pour créer une nouvelle application sans serveur.
Note
Comme indiqué dansTutoriel : Déployer une application Hello World avec AWS SAM, cette commande initialise votre application sans serveur et crée le répertoire de votre projet. Ce répertoire contiendra plusieurs fichiers et dossiers. Le fichier le plus important est
template.yaml
. Il s'agit de votre AWS SAM modèle. Votre version de python doit correspondre à la version de python répertoriée dans letemplate.yaml
fichier créé par la sam init commande.
Choisir un modèle de départ
Un modèle se compose des éléments suivants :
-
Un AWS SAM modèle pour votre code d'infrastructure.
-
Un répertoire de départ qui organise les fichiers de votre projet. Par exemple, cela peut inclure :
-
Une structure pour votre code de fonction Lambda et leurs dépendances.
-
Un dossier
events
qui contient les événements de test pour les tests locaux. -
Un dossier
tests
destiné à faciliter les tests d'unités. -
Un fichier
samconfig.toml
pour configurer les paramètres du projet. -
Un fichier
ReadMe
et d'autres fichiers de base du projet de départ.
Voici un exemple de répertoire de projet de départ :
sam-app ├── README.md ├── __init__.py ├── events │ └── event.json ├── hello_world │ ├── __init__.py │ ├── app.py │ └── requirements.txt ├── samconfig.toml ├── template.yaml └── tests ├── __init__.py ├── integration │ ├── __init__.py │ └── test_api_gateway.py ├── requirements.txt └── unit ├── __init__.py └── test_handler.py
-
Vous pouvez choisir parmi une liste de modèles de démarrage rapide AWS disponibles ou fournir votre propre emplacement de modèle personnalisé.
Pour choisir un modèle de démarrage AWS rapide
-
Lorsque vous y êtes invité, sélectionnez modèles de démarrage rapide AWS .
-
Sélectionnez un modèle de démarrage AWS rapide pour commencer. Voici un exemple :
Which template source would you like to use? 1 - AWS Quick Start Templates 2 - Custom Template Location Choice:
1
Choose an AWS Quick Start application template 1 - Hello World Example 2 - Multi-step workflow 3 - Serverless API 4 - Scheduled task 5 - Standalone function 6 - Data processing 7 - Hello World Example With Powertools 8 - Infrastructure event management 9 - Serverless Connector Hello World Example 10 - Multi-step workflow with Connectors 11 - Lambda EFS example 12 - DynamoDB Example 13 - Machine Learning Template:4
Pour choisir l'emplacement de votre modèle personnalisé
-
Lorsque vous y êtes invité, sélectionnez l'emplacement du modèle personnalisé.
Which template source would you like to use? 1 - AWS Quick Start Templates 2 - Custom Template Location Choice:
2
-
La CLI AWS SAM vous invitera à indiquer l'emplacement du modèle.
Template location (git, mercurial, http(s), zip, path):
Indiquez l'un des emplacements suivants pour l'archive du fichier .zip de votre modèle :
-
Référentiel GitHub : chemin d'accès au fichier .zip de votre référentiel GitHub. Le fichier doit se trouver à la racine de votre référentiel.
-
Référentiel Mercurial : chemin d'accès au fichier .zip de votre référentiel Mercurial. Le fichier doit se trouver à la racine de votre référentiel.
-
chemin .zip : chemin local HTTPS ou local vers votre fichier .zip.
-
-
La CLI AWS SAM initialisera votre application sans serveur à l'aide de votre modèle personnalisé.
Choisir une exécution
Lorsque vous choisissez un modèle de démarrage rapide AWS , la CLI AWS SAM vous invite à sélectionner une exécution pour vos fonctions Lambda. La liste des options affichées par la CLI AWS SAM correspond aux exécutions prises en charge nativement par Lambda.
-
Le runtime fournit un environnement spécifique au langage qui s’exécute dans un environnement d’exécution.
Vous pouvez utiliser n'importe quel autre langage de programmation doté d'une exécution personnalisée. Pour ce faire, vous devez créer manuellement la structure de votre application de départ. Vous pouvez ensuite utiliser sam init
pour initialiser rapidement votre application en configurant un emplacement de modèle personnalisé.
À partir de votre sélection, la CLI AWS SAM crée le répertoire de départ pour votre code de fonction Lambda et vos dépendances.
Si Lambda prend en charge plusieurs gestionnaires de dépendances pour votre exécution, vous serez invité à choisir votre gestionnaire de dépendances préféré.
Choisir un type de package
Lorsque vous choisissez un modèle de démarrage rapide AWS , et une exécution laCLI AWS SAM vous invite à sélectionner un type de package. Le type de package détermine la manière dont vos fonctions Lambda sont déployées pour être utilisées avec le service Lambda. Les deux types de packages pris en charge sont les suivants :
-
Image du conteneur : contient le système d'exploitation de base, l'exécution, les extensions Lambda, le code de votre application et ses dépendances.
-
.zip file archive : contient le code de votre application et ses dépendances.
Pour en savoir plus sur le package de déploiement, consultez Packages de déploiement Lambda dans le Guide du développeur AWS Lambda .
Voici un exemple de structure de répertoires d'une application avec une fonction Lambda packagée sous forme d'image de conteneur. AWS SAMCLITélécharge l'image et en crée une Dockerfile
dans le répertoire de la fonction pour spécifier l'image.
sam-app ├── README.md ├── __init__.py ├── events │ └── event.json ├── hello_world │ ├── Dockerfile │ ├── __init__.py │ ├── app.py │ └── requirements.txt ├── samconfig.toml ├── template.yaml └── tests ├── __init__.py └── unit ├── __init__.py └── test_handler.py
Voici un exemple de structure de répertoires d'une application avec une fonction packagée sous forme d'archive de fichier .zip.
sam-app ├── README.md ├── __init__.py ├── events │ └── event.json ├── hello_world │ ├── __init__.py │ ├── app.py │ └── requirements.txt ├── samconfig.toml ├── template.yaml └── tests ├── __init__.py ├── integration │ ├── __init__.py │ └── test_api_gateway.py ├── requirements.txt └── unit ├── __init__.py └── test_handler.py
Configuration du AWS X-Ray suivi
Vous pouvez choisir d'activer le AWS X-Ray suivi. Pour en savoir plus, consultez Qu'est-ce que c'est AWS X-Ray ? dans le Guide AWS X-Ray du développeur.
Si vous l'activez, votre AWS SAM modèle AWS SAMCLI est configuré. Voici un exemple :
Globals: Function: ... Tracing: Active Api: TracingEnabled: True
Configurer la surveillance avec Amazon CloudWatch Application Insights
Vous pouvez choisir d'activer la surveillance à l'aide d'Amazon CloudWatch Application Insights. Pour en savoir plus, consultez Amazon CloudWatch Application Insights dans le guide de CloudWatch l'utilisateur Amazon.
Si vous l'activez, votre AWS SAM modèle AWS SAMCLI est configuré. Voici un exemple :
Resources: ApplicationResourceGroup: Type: AWS::ResourceGroups::Group Properties: Name: Fn::Join: - '' - - ApplicationInsights-SAM- - Ref: AWS::StackName ResourceQuery: Type: CLOUDFORMATION_STACK_1_0 ApplicationInsightsMonitoring: Type: AWS::ApplicationInsights::Application Properties: ResourceGroupName: Fn::Join: - '' - - ApplicationInsights-SAM- - Ref: AWS::StackName AutoConfigurationEnabled: 'true' DependsOn: ApplicationResourceGroup
Nommer votre application
Saisissez un nom pour votre application. La CLI AWS SAM crée un dossier de niveau supérieur pour votre application sous ce nom.
Options pour sam init
Voici quelques-unes des principales options que vous pouvez utiliser avec la commande sam init
. Pour obtenir la liste de toutes les options, consultez sam init.
Initialiser une application à l'aide d'un emplacement de modèle personnalisé
Utilisez l'option --location
et indiquez un emplacement de modèle personnalisé pris en charge. Voici un exemple :
$
sam init --location
https://github.com/aws-samples/sessions-with-aws-sam/raw/master/starter-templates/web-app.zip
Initialiser une application sans le flux interactif
Utilisez l'option --no-interactive
et indiquez vos choix de configuration sur la ligne de commande pour ignorer le flux interactif. Voici un exemple :
$
sam init --no-interactive
--runtime go1.x --name go-demo --dependency-manager mod --app-template hello-world
Résolution des problèmes
Pour résoudre le problème AWS SAMCLI, voirRésolution des problèmes de la CLI AWS SAM.
Exemples
Initialisation d'une nouvelle application sans serveur à l'aide du modèle de démarrage Hello World AWS
Pour cet exemple, consultez Étape 1 : initialisation de l'exemple d'application Hello World dans le didacticiel : déploiement de l'application Hello World.
Initialiser une nouvelle application sans serveur avec un emplacement de modèle personnalisé
Vous trouverez ci-dessous des exemples d'ajout d'un emplacement GitHub à votre modèle personnalisé :
$
sam init --location
gh:aws-samples/cookiecutter-aws-sam-python
$
sam init --location
git+sh://git@github.com/aws-samples/cookiecutter-aws-sam-python.git
$
sam init --location
hg+ssh://hg@bitbucket.org/repo/template-name
Voici un exemple de chemin d'accès à un fichier local :
$
sam init --location
/path/to/template.zip
Voici un exemple de chemin accessible par HTTPS :
$
sam init --location
https://github.com/aws-samples/sessions-with-aws-sam/raw/master/starter-templates/web-app.zip
En savoir plus
Pour en savoir plus sur l'utilisation de la commande sam init
, reportez-vous à ce qui suit :
-
Apprentissage AWS SAM : sam init
— Série Serverless Land « Learning AWS SAM » surYouTube. -
Structuration d'applications sans serveur à utiliser avec AWS SAMCLI (Sessions avec SAM S2E7) — Sessions
avec série activée. AWS SAM YouTube
Étapes suivantes
Maintenant que vous avez créé votre AWS SAM projet, vous êtes prêt à commencer à créer votre application. Consultez Définissez votre infrastructure avec AWS SAM les instructions détaillées sur les tâches que vous devez effectuer pour ce faire.