L’interface de ligne de commande Datadog permet de modifier les configurations des fonctions Lambda existantes pour instrumenter vos applications sans les redéployer. Il s’agit du moyen le plus rapide de tirer parti de la surveillance sans serveur de Datadog.
Vous pouvez également ajouter la commande à vos pipelines de CI/CD pour instrumenter toutes vos applications sans serveur. Lancez la commande après le déploiement normal de votre application sans serveur, de sorte que les modifications apportées par l’interface de ligne de commande Datadog ne soient pas écrasées.
Installation
Installez l’interface de ligne de commande Datadog avec NPM ou Yarn :
# NPM
npm install -g @datadog/datadog-ci
# Yarn
yarn global add @datadog/datadog-ci
Instrumentation
Pour instrumenter la fonction, exécutez la commande suivante avec vos identifiants AWS :
datadog-ci lambda instrument -f <nomfonction> -f <autre_nomfonction> -r <région_aws> -v <version_couche> --forwarder <arn_forwarder>
Renseignez les paramètres fictifs comme suit :
- Remplacez
<nomfonction>
et <autre_nomfonction>
par les noms de vos fonctions Lambda. - Remplacez
<aws_region>
par le nom de la région AWS. - Remplacez
<version_couche>
par la version souhaitée de la bibliothèque Lambda Datadog. La dernière version est 23
. - Remplacez
<arn_forwarder>
par l’ARN du Forwarder (voir la documentation sur le Forwarder).
Par exemple :
datadog-ci lambda instrument -f my-function -f another-function -r us-east-1 -v 23 --forwarder "arn:aws:lambda:us-east-1:000000000000:function:datadog-forwarder"
Si votre fonction Lambda est configurée de façon à utiliser la signature de code, vous devez ajouter l’ARN du profil de signature de Datadog (arn:aws:signer:us-east-1:464622532012:/signing-profiles/DatadogLambdaSigningProfile/9vMI9ZAGLc
) à la configuration de la signature de code de votre fonction avant de pouvoir l’instrumenter avec l’interface de ligne de commande Datadog.
Pour obtenir plus de détails ainsi que des paramètres supplémentaires, consultez la documentation relative à l’interface de ligne de commande.
Le plug-in Serverless Datadog ajoute automatiquement la bibliothèque Lambda Datadog à vos fonctions à l’aide des couches. Il configure également vos fonctions de façon à envoyer des métriques, traces et logs à Datadog par l’intermédiaire du Forwarder Datadog.
Si votre fonction Lambda est configurée de façon à utiliser la signature de code, vous devez ajouter l’ARN du profil de signature de Datadog (arn:aws:signer:us-east-1:464622532012:/signing-profiles/DatadogLambdaSigningProfile/9vMI9ZAGLc
) à la configuration de la signature de code de votre fonction avant d’installer le plug-in Serverless Datadog.
Pour installer et configurer le plug-in Serverless Datadog, suivez les étapes suivantes :
- Pour installer le plug-in Serverless Datadog :
yarn add --dev serverless-plugin-datadog
- Ajoutez ce qui suit dans votre fichier
serverless.yml
:plugins:
- serverless-plugin-datadog
- Ajoutez également la section suivante dans votre fichier
serverless.yml
:custom:
datadog:
forwarderArn: # The Datadog Forwarder ARN goes here.
Pour en savoir plus sur l’ARN du Forwarder Datadog ou sur l’installation, cliquez ici. Pour obtenir des paramètres supplémentaires, consultez la documentation du plug-in.
Installation
La bibliothèque Lambda Datadog peut être installée en tant que couche ou en tant que gem. Pour la plupart des fonctions, nous vous recommandons d’installer la bibliothèque en tant que couche. Si votre fonction lambda est déployée sous la forme d’une image de conteneur, vous devez installer la bibliothèque en tant que gem.
La version mineure du gem datadog-lambda
correspond toujours à la version de la couche. Par exemple, datadog-lambda v0.5.0 correspond au contenu de la version 5 de la couche.
Utilisation de la couche
Configurez les couches pour votre fonction Lambda à l’aide de l’ARN en suivant le format suivant.
# Pour les régions us, us3, us5 et eu
arn:aws:lambda:<RÉGION_AWS>:464622532012:layer:Datadog-<RUNTIME>:<VERSION>
# Pour les régions us-gov
arn:aws-us-gov:lambda:<RÉGION_AWS>:002406178527:layer:Datadog-<RUNTIME>:<VERSION>
Les options RUNTIME
disponibles sont Ruby2-7
et Ruby3-2
. La dernière VERSION
est 23
. Exemple :
arn:aws:lambda:us-east-1:464622532012:layer:Datadog-Ruby3-2:23
Si votre fonction Lambda est configurée de façon à utiliser la signature de code, vous devez ajouter l’ARN du profil de signature de Datadog (arn:aws:signer:us-east-1:464622532012:/signing-profiles/DatadogLambdaSigningProfile/9vMI9ZAGLc
) à la configuration de la signature de code de votre fonction avant de pouvoir ajouter la bibliothèque Lambda Datadog en tant que couche.
Utiliser le gem
Si vous ne pouvez pas utiliser la couche Lambda Datadog prédéfinie, vous avez la possibilité d’ajouter ce qui suit à votre Gemfile :
gem 'datadog-lambda'
gem 'ddtrace'
ddtrace
contient des extensions natives qui doivent être compilées pour Amazon Linux afin de fonctionner avec AWS Lambda. Datadog vous recommande donc de créer et déployer votre Lambda en tant qu’image de conteneur. Si votre fonction ne peut pas être déployée en tant qu’image de conteneur et que vous souhaitez utiliser la solution APM Datadog, il est conseillé d’installer la bibliothèque Lambda en tant que couche, et non en tant que gem.
Installez gcc
, gmp-devel
et make
avant d’exécuter bundle install
dans le Dockerfile de votre fonction, afin de vous assurer que les extensions natives peuvent être compilées.
FROM <image de base>
# assembler votre image de conteneur
RUN yum -y install gcc gmp-devel make
RUN bundle config set path 'vendor/bundle'
RUN bundle install
Activez l’APM Datadog et incorporez la fonction Lambda de votre gestionnaire à l’aide du wrapper fourni par la bibliothèque Lambda de Datadog.
require 'datadog/lambda'
Datadog::Lambda.configure_apm do |c|
# Activer l'instrumentation
end
def handler(event:, context:)
Datadog::Lambda.wrap(event, context) do
return { statusCode: 200, body: 'Hello World' }
end
end
Abonnement
Pour pouvoir envoyer des métriques, traces et logs à Datadog, abonnez la fonction Lambda du Forwarder Datadog à chaque groupe de logs de votre fonction.
- Si ce n’est pas déjà fait, installez le Forwarder Datadog.
- Abonnez le Forwarder Datadog aux groupes de logs de votre fonction.