Création et déploiement à l'aide de l'AWS CLI

AWS CLIest un outil de ligne de commande qui permet de travailler avec les services AWS. Nous pouvons l'utiliser pour créer, mettre à jour, supprimer, invoquer la fonction aws lambda. Dans ce chapitre, vous aborderez en détail l'installation et l'utilisation de l'AWS CLI.

Installation de l'AWS CLI

Cette section vous guidera tout au long de l'installation de l'AWS CLI sur divers systèmes d'exploitation. Suivez les étapes indiquées et observez les captures d'écran correspondantes partout où elles sont attachées.

Pour les fenêtres

Vérifiez votre configuration Windows et choisissez l'un des liens suivants pour installer AWS CLI MSI -

Une fois que vous avez choisi le lien correspondant et cliquez dessus, vous pouvez trouver une fenêtre comme indiqué ici -

Ensuite, définissez le Environment path in windows comme indiqué dans les captures d'écran ci-dessous -

Une fois terminé, vous pouvez utiliser la commande suivante sur l'invite de commande, pour voir si aws cli est installé -

aws --version

Il affiche les détails de la version aws-cli comme indiqué dans la capture d'écran suivante -

Pour Linux / Mac

Pour l'installation sur Linux et Mac, vous avez besoin de Python 2.6.3 ou version supérieure. Ensuite, utilisez les commandes suivantes pour d'autres processus d'installation -

$ curl "https://s3.amazonaws.com/aws-cli/awscli-bundle.zip" -o "awscli-bundle.zip"
$ unzip awscli-bundle.zip
$ sudo ./awscli-bundle/install -i /usr/local/aws -b /usr/local/bin/aws

Maintenant, nous devons configurer les paramètres AWS. Vous pouvez utiliser la commande suivante à cet effet -

aws configure

À cette fin, il nécessite des détails tels que -

  • ID de clé d'accès AWS
  • Clé d'accès secrète AWS
  • Nom de la région par défaut
  • Sortie par défaut du format

Vous pouvez obtenir ces détails à partir de votre console aws. Accédez au nom de votre compte dans le coin supérieur droit comme indiqué -

Maintenant, cliquez sur My Security Credentialset sélectionnez les utilisateurs du côté gauche. Ajoutez un utilisateur avec les détails demandés.

Ajoutez l'utilisateur et pour obtenir la clé d'accès et la clé secrète. Pour voir la nouvelle clé d'accès, choisissezShow. Vos informations d'identification ressembleront à celles ci-dessous -

Access key ID − AOSAIOSFOCDD7Example

Secret access key − aJuirCVtnROUN/K7MDENG/bPxRfiCYExampleKEY

Commandes de référence pour AWS CLIS

Le tableau suivant donnera les références de commandes disponibles pour travailler avec aws cli.

Nom de la commande aws cli Référence de commande
create-function create-function --nom-fonction <valeur> --runtime <valeur> --role <valeur> --handler <valeur> [--code <valeur>] [--description <valeur>] [--timeout < valeur>] [--memory-size <valeur>] [--environment <valeur>] [--kms-key-arn <valeur>] [--tags <valeur>] [--zip-file <valeur> ] [--cli-input-json <valeur>]
list-functions list-functions [--master-region <valeur>] [--function-version <valeur>] [--max-items <valeur>] [--cli-input-json <valeur>] [--starting- jeton <valeur>] [--page-size <valeur>] [--generate-cli-skeleton <valeur>]
get-function get-function --function-name <valeur> [--qualifier <valeur>] [--cli-input-json <value>] [--generate-cli-skeleton <value>]
get-function-configuration get-function-configuration --function-name <valeur> [--qualifier <valeur>] [--cli-input-json <value>] [--generate-cli-skeleton <value>]
get-account-settings get-account-settings [--cli-input-json <valeur>] [--generate-cli-skeleton <valeur>]
update-function-configuration update-function-configuration --function-name <valeur> [--role <value>] [--handler <value>] [--description <value>] [--timeout <value>] [--memory- taille <valeur>] [--vpc-config <valeur>] [--environment <valeur>] [--runtime <valeur>] [--dead-letter-config <valeur>] [--kms-key- arn <valeur>] [--tracing-config <valeur>] [--revision-id <valeur>] [--cli-input-json <valeur>] [--generate-cli-skeleton <valeur>]
update-function-code update-function-code --function-name <valeur> [--zip-file <valeur>] [--s3-bucket <valeur>] [--s3-key <valeur>] [--s3-object- version <valeur>] [--publish | --no-publish] [--dry-run | --no-dry-run] [--revision-id <valeur>] [- cli-input-json <valeur>] [- generate-cli-skeleton <valeur>]
delete-function delete-function --function-name <valeur> [--qualifier <valeur>] [--cli-input-json <value>] [--generate-cli-skeleton <value>]

Maintenant, laissez-nous discuter de ces commandes une par une en détail.

create-function

Cette API créera une nouvelle fonction lambda. Le code doit être donné au format zip. Si la fonction à créer existe déjà, l'API échouera. Notez que le nom de la fonction est sensible à la casse.

Commandes incluses

La liste des commandes que vous pouvez utiliser avec create-function est donnée ici -

create-function 
--function-name <value>
--runtime <value>
--role <value>
--handler <value>
[--code <value>] 
[--description <value>] 
[--timeout <value>] 
[--memory-size <value>] 
[--environment <value>] 
[--kms-key-arn <value>] 
[--tags <value>] 
[--zip-file <value>] 
[--cli-input-json <value>]

Options incluses

Les différentes options que vous pouvez utiliser avec les fonctions ci-dessus sont les suivantes -

--function-name (string)- Cela prend le nom de la fonction. Le nom peut être composé de caractères 64 bits.

--runtime(string)- Ici, vous devez spécifier l'environnement d'exécution, c'est-à-dire la sélection de la langue. Les détails du runtime sont indiqués ci-dessous -

Options disponibles Durée
Python v3.6 python3.6
Python v2.7 python2.7
NodeJS v6.10 nodejs6.10
NodeJS v8.10 nodejs8.10
Java java8
C # 1 dotnetcore1.0
C # 2 dotnetcore2.0
Aller go1.x

--role(string)- Ce sera le nom de la politique lambda c'est-à-dire le rôle à donner à la fonction lambda pour accéder à d'autres services. Il aura l'autorisation selon le rôle spécifié.

--handler (string) - Il s'agit du nom du gestionnaire où débutera l'exécution du code lambda.

  • Pour nodejs, le nom du gestionnaire est le nom du module que nous exportons.
  • Pour java, il s'agit de package.classname :: handler ou package.classname
  • Pour python, le gestionnaire est le nom du fichier.

--code (structure) −AWS Code Lambda

--description (string) - description de la fonction AWS Lambda

--timeout (integer)- timeout aura l'heure à laquelle la fonction lambda doit terminer l'exécution. La valeur par défaut est 3s.

--memory-size (integer)- Ceci est la mémoire donnée à la fonction aws lambda. AWS allouera la quantité de CPU et d'allocation de mémoire en fonction de la mémoire donnée.

--environment (structure) - c'est un objet avec les détails d'environnement requis dans la fonction lambda aws.

e.g : Variables = {Name1 = string, Name2 = string}

--kms-key-arn (string)- il s'agit du nom de ressource Amazon (ARN) utilisé pour crypter les variables d'environnement. S'il n'est pas fourni, les paramètres par défaut seront utilisés pour crypter.

--zip-file (blob) - chemin du fichier zip contenant les détails du code.

--cli-input-json (string): Effectue une opération de service en fonction de la chaîne JSON fournie. La chaîne JSON suit le format fourni par --generate-cli-skeleton. Si d'autres arguments sont fournis sur la ligne de commande, les valeurs de CLI remplaceront les valeurs fournies par JSON.

Maintenant, créons une fonction AWS Lambda simple en utilisant le runtime comme nodejs et ajoutons quelques consoles.logs à imprimer.

Considérez un exemple de code pour comprendre la même chose -

exports.handler = async (event) => {
   console.log("Using aws cli");
   return 'Hello from Lambda from aws cli!'
};

Maintenant, zippez le fichier et stockez-le sous awscli.zip.

Obtenir ARN

Pour le rôle, utilisons le arndu rôle existant que nous avons créé. Pour obtenir l'ARN, vous devrez suivre les étapes indiquées ici. Observez les captures d'écran respectives partout où elles sont attachées -

Étape 1

Accédez à IAM et sélectionnez le rôle que vous souhaitez Roles. Les détails ARN du rôle sont affichés comme indiqué ci-dessous. UtilisationRole ARN avec create-function dans aws cli.

Observez ici que le rôle arn est: arn: aws: iam :: 625297745038: role / lambdaapipolicy

La commande avec des valeurs pour create-function est comme suit -

aws lambda create-function 
--function-name "awslambdausingcli" 
--runtime "nodejs8.10" 
--role "arn:aws:iam::625297745038:role/lambdaapipolicy" 
--handler "awscli.handler" 
--timeout 5 
--memory-size 256 
--zip-file "fileb://awscli.zip"

Maintenant, si vous exécutez la commande dans aws cli, vous pouvez trouver une sortie comme indiqué ci-dessous -

Dans la console AWS, la fonction Lambda s'affiche comme indiqué ci-dessous -

Les détails des fonctions sont indiqués ici -

Les détails de la configuration sont indiqués ci-dessous -

Vous pouvez tester la fonction et vérifier la sortie comme indiqué -

La sortie de journal correspondante est affichée ici -

fonctions de liste

Cette API donne la liste des fonctions créées jusqu'à présent dans AWS Lambda.

Commandes incluses

Voici les commandes associées à cette API -

list-functions
[--master-region <value>]
[--function-version <value>]
[--max-items <value>]
[--cli-input-json <value>]

Options sous les fonctions de liste

Voici différentes options que vous pouvez utiliser sous cette api de fonctions de liste -

--master-region(string)- facultatif. La région à partir de laquelle les fonctions doivent être affichées.

--function-version(string)- facultatif. Cela donnera la version de la fonction.

--max-items(integer)- facultatif. Cela donnera les éléments selon la valeur spécifiée.

--cli-input-json(string)- facultatif. Exécutera l'opération en fonction du fichier json fourni.

La commande avec des valeurs list-functions est comme suit -

aws lambda list-functions --max-items 3

La commande affiche les détails comme suit -

fonction get

Cette API donnera des détails sur les fonctions et également un lien URL qui a un fichier zip téléchargé à l'aide de create-function. L'URL avec les détails du zip ne sera valide que pendant 10 minutes.

Commandes incluses

Voici les commandes associées à cette API -

get-function
--function-name <value>
[--qualifier <value>]
[--cli-input-json <value>]
[--generate-cli-skeleton <value>]

Options incluses

--function-name- Nom de la fonction AWS Lambda. Vous pouvez également spécifier le nom de ressource Amazon de la fonction.

--qualifier(string)- Facultatif. La version de la fonction peut être utilisée pour obtenir les détails de la fonction.

La commande avec les valeurs de get-function sont -

aws lambda get-function --function-name awslambdausingcli

Les détails de l'affichage des commandes sont les suivants -

Il donne l'URL qui a le code postal téléchargé. Dans le cas ci-dessus, l'URL est -

https://prod-04-2014-
tasks.s3.amazonaws.com/snapshots/625297745038/awslambdausingcli-97048f8d-4a08
-4ed9-99d9-acb00d2063d2?versionId=d04HKvPu9S2zz8pzjbW6Rmf5o5fxnc_r&X-Amz-Security
-Token=FQoDYXdzEKT%2F%2F%2F%2F%2F%2F%2F%2F%2F%2FwEaDCpTmGvtwKToPBiWcyK3A96UcJEnwvYDhMbbxu
%2Bg2gffK2ocfnlEeiCHak8QqqE1RFpbKrdks9NzxP9gNbagL4M9RValxJ1a9PUY%2FOdAekscRHOiX00MVAxUlI8
2pKryhdOwLJWSj0uRzqvOxCcBwJenHrSNPeG6lMa2ZDo0qZFEUDONSaTg4nuSnJK1f6t3pMAKu4vF9wPvf92G%2BU
60rUxwleggigISmD9l1IlZse3%2BVF1JlNuN%2F5d85v0y2Q%2F%2BO515CybcZpn91sHPYG8JMJ00LsrkQ2Ww4VU
9Zz5c5QYH4JYPj0CyEgSz9b%2FMceMPpOoPUAMjctb%2FEwQqcShZeqAr9%2Fcd2ZI%2BXl2%2Bs4ri0ucgPvQQvs
eGIIiZbX3GqdwR2jb1nylrAEIfiuFMoSWfcFYoYtuL0MZnjGR9jy2GNkp6MB%2BlHHr7%2BnuFRUzU26rgDYmdE1w
Rb3%2B21Jm49WGDa9opRLvUxFaux57Or70haib2FuKzN6Gf3Vzzk5KPdWsYUpaLyf%2B1ovEytOZhB1JEXuCs%2FG
IlOXS88yxT%2BpOKmyxweiezpGgI%2FAkSAQTbSRsYQKIOFyIJNHzplwrJKhy28vy60numIBIo9Zqq2AU%3D
&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Date=20180527T112426Z&X-Amz-
SignedHeaders=host&X-Amz-Expires=600&X-Amz-
Credential=ASIAICSQHLSBWFP37U4Q%2F20180527%2Fus-
east-1%2Fs3%2Faws4_request&X-Amz-Signature=
8b97e7d6d7da13313068e027894d2c875be5e50a0c5a62550f55307985bdc1aa

get-function-configuration

Cela donnera les détails de configuration de la fonction AWS Lambda.

Voici les commandes utilisées avec cette API -

get-function-configuration
--function-name <value>
[--qualifier <value>]

The following are the options used with

--function-name (string) −nom de la fonction lambda aws. Vous pouvez également spécifier le nom de ressource Amazon de la fonction.

--qualifier(string) − Facultatif La version de la fonction peut être utilisée pour obtenir les détails de la fonction.

La commande avec les valeurs de get-function sont -

aws lambda get-function-configuration --function-name awslambdausingcli

La commande affiche les détails comme suit -

get-account-settings

Cette API donne les paramètres des comptes.

Commandes impliquées

La commande que vous pouvez utiliser avec cette API sont -

get-account-settings
[--cli-input-json <value>]
[--generate-cli-skeleton <value>]

Options impliquées

Vous pouvez utiliser les options suivantes avec cette API -

--cli-input-json(string) − Exécute le service en fonction de la chaîne json fournie.

--generate-cli-skeleton(string) − Il imprime la sortie json sans envoyer la requête API.

Vous pouvez utiliser la commande suivante pour get-account-settings -

aws lambda get-account-settings

Vous pouvez voir la sortie suivante lorsque vous exécutez la commande donnée ci-dessus -

mise à jour-configuration-fonction

Cette API permet de mettre à jour les détails de configuration de la fonction AWS Lambda créée. Vous pouvez modifier la mémoire, le délai d'expiration, le gestionnaire, le rôle, l'exécution, la description, etc.

Commandes impliquées

Voici les commandes impliquées dans l'API update-function-configuration -

update-function-configuration
--function-name <value>
[--role <value>]
[--handler <value>]
[--description <value>]
[--timeout <value>]
[--memory-size <value>]
[--environment <value>]
[--runtime <value>]
[--cli-input-json <value>]
[--generate-cli-skeleton <value>]

Options impliquées

Voici les options impliquées dans l'API de configuration de la fonction de mise à jour -

--function-name − nom de la fonction lambda aws

--role (string) −optionnel. L'ARN du rôle doit être mis à jour.

--handler (string) −optionnel. Détails du gestionnaire de la fonction lambda aws.

--description(string) −optionnel. Description de la fonction.

--timeout(integer) −optionnel. Temps nécessaire pour que la fonction lambda aws puisse se terminer.

--memory-size(integer) −optionnel. Il s'agit de la mémoire donnée à la fonction aws lambda. AWS allouera la quantité de CPU et d'allocation de mémoire en fonction de la mémoire donnée.

--environment (structure) −optionnel. C'est un objet avec des détails d'environnement requis dans la fonction lambda aws.

e.g: Variables = {Name1 = string, Name2 = string}

--runtime(string) − Ici, vous devez spécifier l'environnement d'exécution, c'est-à-dire la sélection de la langue.

Les détails du runtime sont indiqués dans le tableau ci-dessous -

Options disponibles Durée
Python v3.6 python3.6
Python v2.7 python2.7
NodeJS v6.10 nodejs6.10
NodeJS v8.10 nodejs8.10
Java java8
C # 1 dotnetcore1.0
C # 2 dotnetcore2.0
Aller go1.x

--cli-input-json (string) −optionnel. Cela effectuera l'opération sur l'API comme spécifié dans la chaîne json fournie.

--generate-cli-skeleton (string) −optionnel. Cela affichera le squelette JSON de tous les détails sans exécuter l'API. La sortie peut être utilisée comme entrée pour--cli-input-json.

Maintenant, laissez-nous changer la mémoire et le délai d'expiration de la fonction AWS Lambda que nous avons créée précédemment. Suivez les étapes ci-dessous et observez les captures d'écran correspondantes jointes à cet effet -

Étape 1

La mémoire et le délai d'attente avant la modification sont les suivants -

Étape 2

Maintenant avec update-function-configuration, modifions la mémoire et le délai d'expiration à 320 Mo et le délai d'expiration à 10 s. Pour cela, utilisez la commande suivante avec des valeurs -

aws lambda update-function-configuration --function-name “awslambdusingcli” 
--timeout 10 --memory-size 320

Étape 3

Ensuite, vous pouvez voir la sortie suivante comme affichage -

Étape 4

L'affichage dans la console AWS après l'utilisation update-function-configuration est comme suit -

Update-function-code

Cette API mettra à jour le code d'une fonction AWS Lambda existante.

Commandes impliquées

update-function-code
--function-name <value>
[--zip-file <value>]
[--s3-bucket <value>]
[--s3-key <value>]
[--s3-object-version <value>]
[--cli-input-json <value>]
[--generate-cli-skeleton <value>]

Options impliquées

Voici les options impliquées dans l'API update-function-code -

--function-name(string) − nom de la fonction lambda aws

--zip-file (blob) −optionnel. Chemin du fichier zip contenant le code à mettre à jour.

--s3-bucket(string) −optionnel. Nom du compartiment S3 contenant le fichier zip avec le code téléchargé.

--s3-key(string) −optionnel. Nom de la clé d'objet AWS s3 qui doit être téléchargé.

--s3-object-version (string) −optionnel. Version de l'objet AWS s3.

--cli-input-json (string) −optionnel. Cela effectuera l'opération sur l'API comme spécifié dans la chaîne json fournie.

--generate-cli-skeleton (string) −optionnel. Cela affichera le squelette JSON de tous les détails sans exécuter l'API. La sortie peut être utilisée comme entrée de --cli-input-json.

Le code mis à jour est comme indiqué ci-dessous -

exports.handler = async (event, context) => {
   console.log("Using aws cli");
   console.log()
   return 'Hello from Lambda from aws cli!'
};

Vous pouvez utiliser ce qui suit command with values for this purpose -

aws lambda update-function-code --function-name "awslambdausingcli" 
--zip-file "fileb://awscli.zip"

La sortie correspondante est comme indiqué ici -

L'affichage de la console AWS est comme indiqué ici -

La sortie de journal correspondante est comme indiqué ci-dessous -

fonction de suppression

le delete aws cli api supprimera la fonction donnée.

Commandes incluses

Les détails de la commande pour le même sont donnés ici -

delete-function
--function-name <value>
[--qualifier <value>]
[--cli-input-json <value>]
[--generate-cli-skeleton <value>]

Options incluses

Les options incluses dans cette API sont indiquées ci-dessous -

--function-name(string) − cela prendra le nom de la fonction lambda ou l'arn de la fonction aws lambda.

--qualifier (string) −Ceci est facultatif. Ici, vous pouvez spécifier la version d'aws lambda qui doit être supprimée.

-- cli-input-json(string) −Effectue une opération de service en fonction de la chaîne JSON fournie. La chaîne JSON suit le format fourni par --generate-cli-skeleton. Si d'autres arguments sont fournis sur la ligne de commande, les valeurs de CLI remplaceront les valeurs fournies par JSON.

--generate-cli-skeleton(string) − il imprime le squelette json sur la sortie standard sans envoyer la requête API.

Vous pouvez utiliser la commande suivante avec des valeurs à cet effet -

aws lambda delete-function --function-name "lambdatestcli"

Maintenant, observez que la fonction ne sera pas vue dans la liste des fonctions AWS Lambda -