

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.

# AWS::Serverless::Function
<a name="sam-resource-function"></a>

Crée une AWS Lambda fonction, un rôle d'exécution Gestion des identités et des accès AWS (IAM) et des mappages de sources d'événements qui déclenchent la fonction.

La [AWS::Serverless::Function](#sam-resource-function) ressource prend également en charge l'attribut `Metadata` resource, ce qui vous permet de demander de AWS SAM créer des environnements d'exécution personnalisés dont votre application a besoin. Pour plus d'informations sur la création d'une exécution personnalisée, consultez [Création de fonctions Lambda avec des environnements d'exécution personnalisés dans AWS SAM](building-custom-runtimes.md).

**Note**  
Lorsque vous déployez vers AWS CloudFormation, vos AWS SAM ressources sont AWS SAM transformées en CloudFormation ressources. Pour de plus amples informations, veuillez consulter [CloudFormation Ressources générées pour AWS SAM](sam-specification-generated-resources.md).

## Syntaxe
<a name="sam-resource-function-syntax"></a>

Pour déclarer cette entité dans votre modèle AWS Serverless Application Model (AWS SAM), utilisez la syntaxe suivante.

### YAML
<a name="sam-resource-function-syntax.yaml"></a>

```
Type: AWS::Serverless::Function
Properties:
  [Architectures](#sam-function-architectures): {{List}}
  [AssumeRolePolicyDocument](#sam-function-assumerolepolicydocument): {{JSON}}
  [AutoPublishAlias](#sam-function-autopublishalias): {{String}}
  AutoPublishAliasAllProperties: {{Boolean}}
  [AutoPublishCodeSha256](#sam-function-autopublishcodesha256): {{String}}
  [CapacityProviderConfig](#sam-function-capacityproviderconfig): {{CapacityProviderConfig}}
  [CodeSigningConfigArn](#sam-function-codesigningconfigarn): {{String}}
  [CodeUri](#sam-function-codeuri): {{String | FunctionCode}}
  [DeadLetterQueue](#sam-function-deadletterqueue): {{Map | DeadLetterQueue}}
  [DeploymentPreference](#sam-function-deploymentpreference): {{DeploymentPreference}}
  [Description](#sam-function-description): {{String}}
  [DurableConfig](#sam-function-durableconfig): {{DurableConfig}}
  [Environment](#sam-function-environment): {{[Environment](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-environment.html)}}
  [EphemeralStorage](#sam-function-ephemeralstorage): {{[EphemeralStorage](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-ephemeralstorage)}}
  [EventInvokeConfig](#sam-function-eventinvokeconfig): {{EventInvokeConfiguration}}
  [Events](#sam-function-events): {{EventSource}}
  [FileSystemConfigs](#sam-function-filesystemconfigs): {{List}}
  [FunctionName](#sam-function-functionname): {{String}}
  [FunctionScalingConfig](#sam-function-functionscalingconfig): {{FunctionScalingConfig}}
  [FunctionUrlConfig](#sam-function-functionurlconfig): {{FunctionUrlConfig}}
  [Handler](#sam-function-handler): {{String}}
  [ImageConfig](#sam-function-imageconfig): {{[ImageConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-imageconfig)}}
  [ImageUri](#sam-function-imageuri): {{String}}
  [InlineCode](#sam-function-inlinecode): {{String}}
  [KmsKeyArn](#sam-function-kmskeyarn): {{String}}
  [Layers](#sam-function-layers): {{List}}
  LoggingConfig: {{[LoggingConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-loggingconfig.html)}}
  [MemorySize](#sam-function-memorysize): {{Integer}}
  [PackageType](#sam-function-packagetype): {{String}}
  [PermissionsBoundary](#sam-function-permissionsboundary): {{String}}
  [Policies](#sam-function-policies): {{String | List | Map}}
  [PublishToLatestPublished](#sam-function-publishtolatestpublished): {{Boolean}}
  PropagateTags: {{Boolean}}
  [ProvisionedConcurrencyConfig](#sam-function-provisionedconcurrencyconfig): {{[ProvisionedConcurrencyConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-alias.html#cfn-lambda-alias-provisionedconcurrencyconfig)}}
  RecursiveLoop: {{String}}
  [ReservedConcurrentExecutions](#sam-function-reservedconcurrentexecutions): {{Integer}}
  [Role](#sam-function-role): {{String}}
  [RolePath](#sam-function-rolepath): {{String}}
  [Runtime](#sam-function-runtime): {{String}}
  RuntimeManagementConfig: {{[RuntimeManagementConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-runtimemanagementconfig.html)}}
  SnapStart: {{[SnapStart](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-snapstart.html)}}
  [SourceKMSKeyArn](#sam-function-sourcekmskeyarn): {{String}}
  [Tags](#sam-function-tags): {{Map}}
  [TenancyConfig](#sam-function-tenancyconfig): {{TenancyConfig}}
  [Timeout](#sam-function-timeout): {{Integer}}
  [Tracing](#sam-function-tracing): {{String}}
  [VersionDescription](#sam-function-versiondescription): {{String}}
  [VersionDeletionPolicy](#sam-function-versiondeletionpolicy): {{String}}
  [VpcConfig](#sam-function-vpcconfig): {{[VpcConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-vpcconfig.html)}}
```

## Propriétés
<a name="sam-resource-function-properties"></a>

 `Architectures`   <a name="sam-function-architectures"></a>
Architecture du jeu d'instructions de la fonction.  
Pour en savoir plus sur cette propriété, consultez [Architectures du jeu d'instructions Lambda](https://docs.aws.amazon.com/lambda/latest/dg/foundation-arch.html) dans le*guide du développeur AWS Lambda *.  
*Valeurs valides* : Une de `x86_64` ou `arm64`  
*Type* : liste  
*Obligatoire* : non  
*Par défaut* : `x86_64`  
*CloudFormation compatibilité* : cette propriété est transmise directement à la `[Architectures](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-architectures)` propriété d'une `AWS::Lambda::Function` ressource.

 `AssumeRolePolicyDocument`   <a name="sam-function-assumerolepolicydocument"></a>
Ajoute un AssumeRolePolicyDocument pour la valeur par défaut créée `Role` pour cette fonction. Si cette propriété n'est pas spécifiée, AWS SAM ajoute un rôle d'assume par défaut pour cette fonction.  
*Type* : JSON  
*Obligatoire* : non  
*CloudFormation compatibilité* : cette propriété est similaire à celle `[AssumeRolePolicyDocument](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html#cfn-iam-role-assumerolepolicydocument)` d'une `AWS::IAM::Role` ressource. AWS SAM ajoute cette propriété au rôle IAM généré pour cette fonction. Si l'Amazon Resource Name (ARN) d'un rôle est fourni pour cette fonction, cette propriété ne fait rien.

 `AutoPublishAlias`   <a name="sam-function-autopublishalias"></a>
Le nom de l'alias Lambda. Pour plus d'informations sur l'utilisation des alias Lambda, consultez [Alias de fonction Lambda](https://docs.aws.amazon.com/lambda/latest/dg/configuration-aliases.html) dans le *Guide du développeur AWS Lambda *. Pour obtenir des exemples qui utilisent cette propriété, consultez [Déploiement progressif d'applications sans serveur avec AWS SAM](automating-updates-to-serverless-apps.md).  
AWS SAM génère [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-version.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-version.html)et [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-alias.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-alias.html)ressources lorsque cette propriété est définie. Pour plus d'informations sur ce scénario, consultez [AutoPublishAlias la propriété est spécifiée](sam-specification-generated-resources-function.md#sam-specification-generated-resources-function-autopublishalias). Pour des informations générales sur les CloudFormation ressources générées, consultez[CloudFormation Ressources générées pour AWS SAM](sam-specification-generated-resources.md).  
*Type* : chaîne  
*Obligatoire* : non  
*CloudFormation compatibilité* : cette propriété est unique AWS SAM et n'a pas d' CloudFormation équivalent.

 `AutoPublishAliasAllProperties`   <a name="sam-function-autopublishaliasallproperties"></a>
Spécifie quand une nouvelle version [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-version.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-version.html) est créée. Lorsque l'option est `true`, une nouvelle version Lambda est créée lorsqu'une propriété de la fonction Lambda est modifiée. Lorsque l'option est `false`, une nouvelle version Lambda est créée uniquement lorsque l'une des propriétés suivantes est modifiée :  
+ `Environment`, `MemorySize`, ou `SnapStart`.
+ Toute modification entraînant une mise à jour de la propriété du `Code`, telle que `CodeDict`, `ImageUri` ou `InlineCode`.
Cette propriété nécessite que `AutoPublishAlias` soit défini.  
Si `AutoPublishCodeSha256` est également spécifié, son comportement est prioritaire sur `AutoPublishAliasAllProperties: true`.  
*Type* : valeur booléenne  
*Obligatoire* : non  
*Valeur par défaut* : `false`  
*CloudFormation compatibilité* : cette propriété est unique AWS SAM et n'a pas d' CloudFormation équivalent.

 `AutoPublishCodeSha256`   <a name="sam-function-autopublishcodesha256"></a>
Lorsqu'elle est utilisée, cette chaîne fonctionne avec la `CodeUri` valeur pour déterminer si une nouvelle version de Lambda doit être publiée. Cette propriété est souvent utilisée pour résoudre le problème de déploiement suivant : un package de déploiement est stocké dans un emplacement Amazon S3 et est remplacé par un nouveau package de déploiement avec un code de fonction Lambda mis à jour, mais la `CodeUri` propriété reste inchangée (par opposition au téléchargement du nouveau package de déploiement vers un nouvel emplacement Amazon S3 et `CodeUri` remplacé par le nouvel emplacement).  
Ce problème est marqué par un AWS SAM modèle présentant les caractéristiques suivantes :  
+ L'`DeploymentPreference`objet est configuré pour des déploiements progressifs (comme décrit dans[Déploiement progressif d'applications sans serveur avec AWS SAM](automating-updates-to-serverless-apps.md))
+ La `AutoPublishAlias` propriété est définie et ne change pas entre les déploiements
+ La `CodeUri` propriété est définie et ne change pas entre les déploiements.
Dans ce scénario, la mise à jour des résultats `AutoPublishCodeSha256` entraîne la création d'une nouvelle version Lambda. Toutefois, le nouveau code de fonction déployé sur Amazon S3 n'est pas reconnu. Pour reconnaître le nouveau code de fonction, pensez à utiliser la gestion des versions dans votre compartiment Amazon S3. Spécifiez la propriété `Version` de votre fonction Lambda et configurez votre compartiment pour qu'il utilise toujours le dernier Package de déploiement.  
Dans ce scénario, pour déclencher le déploiement progressif avec succès, vous devez fournir une valeur unique pour `AutoPublishCodeSha256`.  
*Type* : chaîne  
*Obligatoire* : non  
*CloudFormation compatibilité* : cette propriété est unique AWS SAM et n'a pas d' CloudFormation équivalent.

 `CapacityProviderConfig`   <a name="sam-function-capacityproviderconfig"></a>
Configure le fournisseur de capacité auquel les versions publiées de la fonction seront associées. Cela permet à la fonction de s'exécuter sur des instances EC2 appartenant au client et gérées par des instances gérées par Lambda.  
*Type :* [CapacityProviderConfig](sam-property-function-capacityproviderconfig.md)  
*Obligatoire* : non  
*CloudFormation compatibilité* : SAM aplatit la propriété transmise à la `[CapacityProviderConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-capacityproviderconfig)` propriété d'une `AWS::Lambda::Function` ressource et reconstruit la structure imbriquée.

 `CodeSigningConfigArn`   <a name="sam-function-codesigningconfigarn"></a>
L'ARN de la ressource [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-codesigningconfig.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-codesigningconfig.html), utilisée pour activer la signature de code pour cette fonction. Pour plus d'informations sur la signature de code, consultez [Configurer la signature de code pour votre AWS SAM application](authoring-codesigning.md).  
*Type* : chaîne  
*Obligatoire* : non  
*CloudFormation compatibilité* : cette propriété est transmise directement à la `[CodeSigningConfigArn](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-codesigningconfigarn)` propriété d'une `AWS::Lambda::Function` ressource.

 `CodeUri`   <a name="sam-function-codeuri"></a>
Code pour la fonction. Les valeurs acceptées incluent :  
+ l'URI Amazon S3 de la fonction ; Par exemple, `s3://bucket-123456789/sam-app/1234567890abcdefg`.
+ le chemin local vers la fonction. Par exemple, `hello_world/`.
+ Un objet [FunctionCode](sam-property-function-functioncode.md).
Si vous fournissez l'URI Amazon S3 d'une fonction ou l'objet [FunctionCode](sam-property-function-functioncode.md), vous devez référencer un [package de déploiement Lambda](https://docs.aws.amazon.com/lambda/latest/dg/gettingstarted-package.html) valide.  
Si vous fournissez un chemin de fichier local, utilisez la CLI  AWS SAM pour charger le fichier local lors du déploiement. Pour en savoir plus, veuillez consulter la section [Comment AWS SAM télécharge les fichiers locaux lors du déploiement](deploy-upload-local-files.md).  
Si vous utilisez des fonctions intrinsèques dans les `CodeUri` propriétés, vous ne AWS SAM pourrez pas analyser correctement les valeurs. Envisagez plutôt d'utiliser [AWS::LanguageExtensions transform](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/transform-aws-languageextensions.html).
*Type* : [ chaîne de caractères \| [FunctionCode](sam-property-function-functioncode.md) ]  
*Obligatoire :* selon les conditions. Lorsque `PackageType` est défini sur `Zip`, un `CodeUri` ou un `InlineCode` est requis.  
*CloudFormation compatibilité* : cette propriété est similaire à celle `[ Code](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-code)` d'une `AWS::Lambda::Function` ressource. Les propriétés imbriquées d'Amazon S3 sont nommées différemment.

 `DeadLetterQueue`   <a name="sam-function-deadletterqueue"></a>
Configure une rubrique Amazon Simple Notification Service (Amazon SNS) ou une file d'attente Amazon Simple Queue Service (Amazon SQS) où Lambda envoie les événements qu'il ne peut pas traiter. Pour en savoir plus sur la fonctionnalité de la file d'attente de lettres mortes, consultez [File d'attente de lettres mortes](https://docs.aws.amazon.com/lambda/latest/dg/invocation-async-retain-records.html#invocation-dlq) dans le *Guide du développeur AWS Lambda *.  
Si la source d'événements de votre fonction Lambda est une file d'attente Amazon SQS, configurez une file d'attente de lettres mortes pour la file d'attente source, et pas pour la fonction Lambda. La file d'attente de lettres mortes que vous configurez pour une fonction est utilisée pour la [file d'attente d'invocations asynchrones](https://docs.aws.amazon.com/lambda/latest/dg/invocation-async.html) de la fonction et pas pour les files d'attente source d'événement.
*Type* : Carte \| [DeadLetterQueue](sam-property-function-deadletterqueue.md)  
*Obligatoire* : non  
*CloudFormation compatibilité* : cette propriété est similaire à celle `[DeadLetterConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-deadletterconfig.html)` d'une `AWS::Lambda::Function` ressource. Dans CloudFormation le type est dérivé du`TargetArn`, tandis que dans AWS SAM vous devez transmettre le type avec le`TargetArn`.

 `DeploymentPreference`   <a name="sam-function-deploymentpreference"></a>
Les paramètres permettant d’activer les déploiements Lambda progressifs.  
Si un `DeploymentPreference` objet est spécifié, AWS SAM crée un [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codedeploy-application.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codedeploy-application.html)appelé `ServerlessDeploymentApplication` (un par pile), un [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codedeploy-deploymentgroup.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codedeploy-deploymentgroup.html)appelé `{{<function-logical-id>}}DeploymentGroup` et un [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html)appelé`CodeDeployServiceRole`.  
*Type :* [DeploymentPreference](sam-property-function-deploymentpreference.md)  
*Obligatoire* : non  
*CloudFormation compatibilité* : cette propriété est unique AWS SAM et n'a pas d' CloudFormation équivalent.  
*Voir aussi* : pour plus d'informations sur cette propriété, consultez [Déploiement progressif d'applications sans serveur avec AWS SAM](automating-updates-to-serverless-apps.md).

 `Description`   <a name="sam-function-description"></a>
Description de la fonction.  
*Type :* chaîne  
*Obligatoire* : non  
*CloudFormation compatibilité* : cette propriété est transmise directement à la `[Description](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-description)` propriété d'une `AWS::Lambda::Function` ressource.

 `DurableConfig`   <a name="sam-function-durableconfig"></a>
Configuration pour des fonctions durables. Permet une exécution dynamique avec des fonctionnalités de point de contrôle et de rediffusion automatiques.  
*Type :* [DurableConfig](sam-property-function-durableconfig.md)  
*Obligatoire* : non  
*CloudFormation compatibilité* : cette propriété est unique AWS SAM et n'a pas d' CloudFormation équivalent.

 `Environment`   <a name="sam-function-environment"></a>
La configuration de l'environnement d'exécution.  
*Type* : [Environment](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-environment.html)  
*Obligatoire* : non  
*CloudFormation compatibilité* : cette propriété est transmise directement à la `[Environment](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-environment.html)` propriété d'une `AWS::Lambda::Function` ressource.

 `EphemeralStorage`   <a name="sam-function-ephemeralstorage"></a>
Objet qui spécifie l'espace disque, en Mo, disponible pour votre fonction Lambda dans `/tmp`.  
Pour plus d'informations sur cette propriété, consultez [Environnement d’exécution Lambda](https://docs.aws.amazon.com/lambda/latest/dg/runtimes-context.html) dans le *Guide du développeur AWS Lambda *.  
*Type :* [EphemeralStorage](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-ephemeralstorage)  
*Obligatoire* : non  
*CloudFormation compatibilité* : cette propriété est transmise directement à la `[EphemeralStorage](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-ephemeralstorage)` propriété d'une `AWS::Lambda::Function` ressource.

 `EventInvokeConfig`   <a name="sam-function-eventinvokeconfig"></a>
L'objet qui décrit l'événement appelle la configuration sur une fonction Lambda.  
*Type :* [EventInvokeConfiguration](sam-property-function-eventinvokeconfiguration.md)  
*Obligatoire* : non  
*CloudFormation compatibilité* : cette propriété est unique AWS SAM et n'a pas d' CloudFormation équivalent.

 `Events`   <a name="sam-function-events"></a>
Spécifie les événements qui déclenchent cette fonction. Les événements sont constitués d'un type et d'un ensemble de propriétés qui dépendent du type.  
*Type :* [EventSource](sam-property-function-eventsource.md)  
*Obligatoire* : non  
*CloudFormation compatibilité* : cette propriété est unique AWS SAM et n'a pas d' CloudFormation équivalent.

 `FileSystemConfigs`   <a name="sam-function-filesystemconfigs"></a>
Liste des [FileSystemConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-filesystemconfig.html)objets qui spécifient les paramètres de connexion pour un système de fichiers Amazon Elastic File System (Amazon EFS) ou un système de fichiers Amazon S3 Files. Vous pouvez associer un point d'accès Amazon EFS ou un point d'accès S3 Files, mais pas les deux.  
Chaque `FileSystemConfig` objet contient un `Arn` (l'ARN du point d'accès) et un `LocalMountPath` (le chemin où le système de fichiers est monté dans la fonction). Pour Amazon EFS, l'ARN est l'ARN d'un point d'accès Amazon EFS. Pour les fichiers S3, l'ARN est un `AWS::S3Files::AccessPoint` ARN.  
Si votre modèle contient une ressource [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-efs-mounttarget.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-efs-mounttarget.html), vous devez également préciser un `DependsOn` attribut pour vous assurer que la cible de montage est créée ou mise à jour avant la fonction. De même, si votre modèle contient une `AWS::S3Files::MountTarget` ressource, vous devez spécifier un `DependsOn` attribut pour la cible de montage des fichiers S3.  
*Type* : liste  
*Obligatoire* : non  
*CloudFormation compatibilité* : cette propriété est transmise directement à la `[FileSystemConfigs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-filesystemconfigs)` propriété d'une `AWS::Lambda::Function` ressource.

 `FunctionName`   <a name="sam-function-functionname"></a>
Nom de la fonction. Si vous ne spécifiez aucun nom, un nom unique sera généré pour vous.  
*Type :* chaîne  
*Obligatoire* : non  
*CloudFormation compatibilité* : cette propriété est transmise directement à la `[FunctionName](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-functionname)` propriété d'une `AWS::Lambda::Function` ressource.

 `FunctionScalingConfig`   <a name="sam-function-functionscalingconfig"></a>
Configure le comportement de dimensionnement des fonctions Lambda exécutées sur des fournisseurs de capacité. Définit le nombre minimal et maximal d'environnements d'exécution.  
*Type :* [FunctionScalingConfig](sam-property-function-functionscalingconfig.md)  
*Obligatoire* : non  
*CloudFormation compatibilité* : cette propriété est transmise directement à la `[FunctionScalingConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-functionscalingconfig)` propriété d'une `AWS::Lambda::Function` ressource.

 `FunctionUrlConfig`   <a name="sam-function-functionurlconfig"></a>
Objet qui décrit l'URL d'une fonction. Une URL de fonction est un point de terminaison HTTPS que vous pouvez utiliser pour appeler votre fonction.  
Pour plus d'informations, consultez [la section Fonction URLs](https://docs.aws.amazon.com/lambda/latest/dg/lambda-urls.html) dans le *guide du AWS Lambda développeur*.  
*Type :* [FunctionUrlConfig](sam-property-function-functionurlconfig.md)  
*Obligatoire* : non  
*CloudFormation compatibilité* : cette propriété est unique AWS SAM et n'a pas d' CloudFormation équivalent.

 `Handler`   <a name="sam-function-handler"></a>
La fonction dans votre code qui est appelée pour commencer l'exécution. Cette propriété n'est requise que si la propriété `PackageType` est définie sur `Zip`.  
*Type :* chaîne  
*Obligatoire* : Conditionnelle  
*CloudFormation compatibilité* : cette propriété est transmise directement à la `[Handler](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-handler)` propriété d'une `AWS::Lambda::Function` ressource.

 `ImageConfig`   <a name="sam-function-imageconfig"></a>
Objet utilisé pour configurer les paramètres d'image du conteneur Lambda. Pour plus d'informations sur l'utilisation de Lambda, consultez la section [Mise en route avec Lambda](https://docs.aws.amazon.com/lambda/latest/dg/lambda-images.html) du *Guide du développeur AWS Lambda *.  
*Type :* [ImageConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-imageconfig)  
*Obligatoire* : non  
*CloudFormation compatibilité* : cette propriété est transmise directement à la `[ImageConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-imageconfig)` propriété d'une `AWS::Lambda::Function` ressource.

 `ImageUri`   <a name="sam-function-imageuri"></a>
L'URI du référentiel Amazon Elastic Container Registry (Amazon ECR) pour l'image de conteneur de la fonction Lambda. Cette propriété s'applique uniquement si la propriété `PackageType` est définie sur `Image`, sinon, elle est ignorée. Pour plus d'informations, consultez la section [Utilisation d'images de conteneur avec Lambda](https://docs.aws.amazon.com/lambda/latest/dg/lambda-images.html) dans le *Guide du développeur AWS Lambda *.  
Si la `PackageType` propriété est définie sur`Image`, l'une des deux `ImageUri` est obligatoire ou vous devez créer votre application avec `Metadata` les entrées nécessaires dans le fichier AWS SAM modèle. Pour de plus amples informations, veuillez consulter [Compilation par défaut avec AWS SAM](serverless-sam-cli-using-build.md).
Créer votre application avec les `Metadata` nécessaires, les entrées sont prioritaires sur `ImageUri`, donc si vous précisez les deux, alors `ImageUri` sera ignoré.  
*Type :* chaîne  
*Obligatoire* : non  
*CloudFormation compatibilité* : cette propriété est transmise directement à la `[ImageUri](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-code.html#cfn-lambda-function-code-imageuri)` propriété du type de `AWS::Lambda::Function` `Code` données.

 `InlineCode`   <a name="sam-function-inlinecode"></a>
Le code de fonction Lambda qui est écrit directement dans le modèle. Cette propriété s'applique uniquement si la propriété `PackageType` est définie sur `Zip`, sinon, elle est ignorée.  
Si la propriété `PackageType` est définie sur `Zip` (par défaut), alors l'un des `CodeUri` ou `InlineCode` est requis.
*Type* : chaîne  
*Obligatoire* : Conditionnelle  
*CloudFormation compatibilité* : cette propriété est transmise directement à la `[ZipFile](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-code.html#cfn-lambda-function-code-zipfile)` propriété du type de `AWS::Lambda::Function` `Code` données.

 `KmsKeyArn`   <a name="sam-function-kmskeyarn"></a>
L'ARN d'une clé AWS Key Management Service (AWS KMS) que Lambda utilise pour chiffrer et déchiffrer les variables d'environnement de votre fonction.  
*Type* : chaîne  
*Obligatoire* : non  
*CloudFormation compatibilité* : cette propriété est transmise directement à la `[KmsKeyArn](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-kmskeyarn)` propriété d'une `AWS::Lambda::Function` ressource.

 `Layers`   <a name="sam-function-layers"></a>
Liste des éléments `LayerVersion` ARNs que cette fonction doit utiliser. L'ordre spécifié ici est l'ordre dans lequel ils seront importés lors de l'exécution de la fonction Lambda. La version est soit un ARN complet incluant la version, soit une référence à une LayerVersion ressource. Par exemple, une référence à un `LayerVersion` will sera `!Ref MyLayer` alors qu'un ARN complet incluant la version le sera`arn:aws:lambda:{{region}}:{{account-id}}:layer:{{layer-name}}:{{version}}`.  
*Type* : liste  
*Obligatoire* : non  
*CloudFormation compatibilité* : cette propriété est transmise directement à la `[Layers](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-layers)` propriété d'une `AWS::Lambda::Function` ressource.

 `LoggingConfig`   <a name="sam-function-loggingconfig"></a>
Les paramètres de configuration Amazon CloudWatch Logs de la fonction.  
*Type :* [LoggingConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-loggingconfig.html)  
*Obligatoire* : non  
*CloudFormation compatibilité* : cette propriété est transmise directement à la [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-loggingconfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-loggingconfig)propriété d'une `AWS::Lambda::Function` ressource.

 `MemorySize`   <a name="sam-function-memorysize"></a>
La taille de la mémoire en Mo allouée par invocation de la fonction.  
*Type* : entier  
*Obligatoire* : non  
*CloudFormation compatibilité* : cette propriété est transmise directement à la `[MemorySize](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-memorysize)` propriété d'une `AWS::Lambda::Function` ressource.

 `PackageType`   <a name="sam-function-packagetype"></a>
Le package de déploiement de la fonction Lambda. Pour plus d'informations, consultez [Packages de déploiement M Lambda](https://docs.aws.amazon.com/lambda/latest/dg/gettingstarted-package.html) dans le *Guide du développeur AWS Lambda *.  
**Remarques** :  
1. Si cette propriété est définie sur `Zip`(par défaut), alors soit `CodeUri` ou `InlineCode`s'applique, et `ImageUri` est ignoré.  
2. Si cette propriété est définie sur `Image`, alors uniquement `ImageUri` s'applique, et `CodeUri` et `InlineCode` sont ignorés. Le référentiel Amazon ECR requis pour stocker l'image du conteneur de la fonction peut être créé automatiquement par le AWS SAMCLI. Pour de plus amples informations, veuillez consulter [sam deploy](sam-cli-command-reference-sam-deploy.md).  
*Valeurs valides* : `Zip` ou `Image`  
*Type :* chaîne  
*Obligatoire* : non  
*Par défaut* : `Zip`  
*CloudFormation compatibilité* : cette propriété est transmise directement à la `[PackageType](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-packagetype)` propriété d'une `AWS::Lambda::Function` ressource.

 `PermissionsBoundary`   <a name="sam-function-permissionsboundary"></a>
L'ARN d'une limite d'autorisations à utiliser pour le rôle d'exécution de cette fonction. Cette propriété ne fonctionne que si le rôle est généré pour vous.  
*Type* : chaîne  
*Obligatoire* : non  
*CloudFormation compatibilité* : cette propriété est transmise directement à la `[PermissionsBoundary](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html#cfn-iam-role-permissionsboundary)` propriété d'une `AWS::IAM::Role` ressource.

 `Policies`   <a name="sam-function-policies"></a>
Politiques d'autorisation pour cette fonction. Les politiques seront ajoutées au rôle d'exécution par défaut Gestion des identités et des accès AWS (IAM) de la fonction.  
Cette propriété accepte une valeur unique ou une liste de valeurs. Les valeurs autorisées sont les suivantes :  
+ [Modèles de politique AWS SAM](serverless-policy-templates.md).
+ L'ARN d'une [politique gérée par AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#aws-managed-policies) ou d'une [politique gérée par le client](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#customer-managed-policies).
+ Le nom d'une politique AWS gérée dans la [liste](https://github.com/aws/serverless-application-model/blob/develop/samtranslator/internal/data/aws_managed_policies.json) suivante.
+ Une [politique IAM en ligne](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#inline-policies) formatée dans YAML sous forme de mappage.
Si vous définissez la propriété `Role`, cette propriété est ignorée.
*Type* : chaîne \| liste \| carte  
*Obligatoire* : non  
*CloudFormation compatibilité* : cette propriété est similaire à celle `[Policies](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html#cfn-iam-role-policies)` d'une `AWS::IAM::Role` ressource.

 `PublishToLatestPublished`   <a name="sam-function-publishtolatestpublished"></a>
Spécifie s'il faut publier la dernière version de la fonction lorsque celle-ci est mise à jour.  
*Type* : valeur booléenne  
*Obligatoire* : non  
*CloudFormation compatibilité* : cette propriété est transmise directement à la `[PublishToLatestPublished](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-publishtolatestpublished)` propriété d'une `AWS::Lambda::Function` ressource.

`PropagateTags`  <a name="sam-function-propagatetags"></a>
Indiquez s'il faut ou non transmettre les balises de la propriété `Tags` aux ressources [AWS::Serverless::Function](sam-specification-generated-resources-function.md) que vous avez générées. Spécifiez `True` pour la propagation des balises dans vos ressources générées.  
*Type* : valeur booléenne  
*Obligatoire* : non  
*Par défaut* : `False`  
*CloudFormation compatibilité* : cette propriété est unique AWS SAM et n'a pas d' CloudFormation équivalent.

 `ProvisionedConcurrencyConfig`   <a name="sam-function-provisionedconcurrencyconfig"></a>
La configuration de la simultanéité allouée pour l'alias d'une fonction.  
`ProvisionedConcurrencyConfig` peut être spécifiée uniquement si `AutoPublishAlias` est définie. Si vous ne le faites pas, une erreur se produit.
*Type :* [ProvisionedConcurrencyConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-alias.html#cfn-lambda-alias-provisionedconcurrencyconfig)  
*Obligatoire* : non  
*CloudFormation compatibilité* : cette propriété est transmise directement à la `[ProvisionedConcurrencyConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-alias.html#cfn-lambda-alias-provisionedconcurrencyconfig)` propriété d'une `AWS::Lambda::Alias` ressource.

 `RecursiveLoop`   <a name="sam-function-recursiveloop"></a>
État de la configuration de détection de boucle récursive de votre fonction.  
Lorsque cette valeur est définie sur `Allow` et que Lambda détecte que votre fonction est invoquée dans le cadre d'une boucle récursive, aucune action n'est entreprise.  
Lorsque cette valeur est définie sur `Terminate` et que Lambda détecte que votre fonction est invoquée dans le cadre d'une boucle récursive, il arrête l'appel de votre fonction et vous en informe.   
*Type* : chaîne  
*Obligatoire* : non  
*CloudFormation compatibilité* : cette propriété est transmise directement à la `[RecursiveLoop](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-recursiveloop)` propriété de la `AWS::Lambda::Function` ressource.

 `ReservedConcurrentExecutions`   <a name="sam-function-reservedconcurrentexecutions"></a>
Le nombre maximum d'exécutions simultanées à réserver pour la fonction.  
Pour plus d'informations sur cette propriété, consultez [Mise à échelle de fonction Lambda](https://docs.aws.amazon.com/lambda/latest/dg/scaling.html) dans le *Guide du développeur AWS Lambda *.  
*Type* : entier  
*Obligatoire* : non  
*CloudFormation compatibilité* : cette propriété est transmise directement à la `[ReservedConcurrentExecutions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-reservedconcurrentexecutions)` propriété d'une `AWS::Lambda::Function` ressource.

 `Role`   <a name="sam-function-role"></a>
L'ARN d'un rôle IAM à utiliser comme rôle d'exécution de cette fonction.  
*Type* : chaîne  
*Obligatoire* : non  
*CloudFormation compatibilité* : cette propriété est similaire à celle `[Role](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-role)` d'une `AWS::Lambda::Function` ressource. Cela est obligatoire dans CloudFormation mais pas dans AWS SAM. Si aucun rôle n'est spécifié, un rôle est créé pour vous avec une ID logique de `{{<function-logical-id>}}Role`.

 `RolePath`   <a name="sam-function-rolepath"></a>
Chemin d'accès du rôle d'exécution IAM de la fonction.  
Utilisez cette propriété lorsque le rôle est généré pour vous. Ne l'utilisez pas lorsque le rôle est spécifié avec la propriété `Role`.  
*Type* : chaîne  
*Obligatoire* : Conditionnelle  
*CloudFormation compatibilité* : cette propriété est transmise directement à la `[Path](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html#cfn-iam-role-path)` propriété d'une `AWS::IAM::Role` ressource.

 `Runtime`   <a name="sam-function-runtime"></a>
Identifiant de l’[exécution](https://docs.aws.amazon.com/lambda/latest/dg/lambda-runtimes.html) de la fonction. Cette propriété n'est requise que si la propriété `PackageType` est définie sur `Zip`.  
Si vous spécifiez l'`provided`identifiant de cette propriété, vous pouvez utiliser l'attribut `Metadata` resource pour demander de AWS SAM créer le runtime personnalisé requis par cette fonction. Pour plus d'informations sur la création d'une exécution personnalisée, consultez [Création de fonctions Lambda avec des environnements d'exécution personnalisés dans AWS SAM](building-custom-runtimes.md).
*Type* : chaîne  
*Obligatoire* : Conditionnelle  
*CloudFormation compatibilité* : cette propriété est transmise directement à la `[Runtime](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-runtime)` propriété d'une `AWS::Lambda::Function` ressource.

 `RuntimeManagementConfig`   <a name="sam-function-runtimemanagementconfig"></a>
Configurez les options de gestion de l'exécution pour vos fonctions Lambda, telles que les mises à jour de l'environnement d'exécution, le comportement d'annulation et la sélection d'une version d'exécution spécifique. Pour en savoir plus, consultez les [mises à jour du temps d'exécution Lambda](https://docs.aws.amazon.com//lambda/latest/dg/runtimes-update.html) dans le *Guide du développeur AWS Lambda *.  
*Type :* [RuntimeManagementConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-runtimemanagementconfig.html)  
*Obligatoire* : non  
*CloudFormation compatibilité* : cette propriété est transmise directement à la `[ RuntimeManagementConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-runtimemanagementconfig.html)` propriété d'une `AWS::Lambda::Function` ressource.

 `SnapStart`   <a name="sam-function-snapstart"></a>
Créez un instantané de toute nouvelle version de fonction Lambda. Un instantané est un état mis en cache de votre fonction initialisée, y compris de toutes ses dépendances. La fonction n'est initialisée qu'une seule fois et l'état mis en cache est réutilisé pour tous les appels futurs, ce qui améliore les performances de l'application en réduisant le nombre de fois que votre fonction doit être initialisée. Pour en savoir plus, consultez [la section Améliorer les performances de démarrage avec Lambda SnapStart](https://docs.aws.amazon.com/lambda/latest/dg/snapstart.html) dans le guide du *AWS Lambda développeur*.  
*Type :* [SnapStart](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-snapstart.html)  
*Obligatoire* : non  
*CloudFormation compatibilité* : cette propriété est transmise directement à la `[SnapStart](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-snapstart.html)` propriété d'une `AWS::Lambda::Function` ressource.

 `SourceKMSKeyArn`   <a name="sam-function-sourcekmskeyarn"></a>
Représente un ARN de clé KMS utilisé pour chiffrer le code de fonction ZIP du client.  
*Type* : chaîne  
*Obligatoire* : non  
*CloudFormation compatibilité* : cette propriété est transmise directement à la `[SourceKMSKeyArn](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-sourcekmskeyarn)` propriété d'un type de `AWS::Lambda::Function` `Code` données.

 `Tags`   <a name="sam-function-tags"></a>
Un mappage (chaîne à chaîne) qui spécifie les balises ajoutées à cette fonction. Pour en savoir plus sur les clés et les valeurs valides pour les étiquettes, consultez [Exigences relatives à la clé et à la valeur des étiquettes ](https://docs.aws.amazon.com/lambda/latest/dg/configuration-tags.html#configuration-tags-restrictions) dans le *guide du développeur AWS Lambda *.  
Lorsque la pile est créée, ajoute AWS SAM automatiquement une `lambda:createdBy:SAM` balise à cette fonction Lambda et aux rôles par défaut générés pour cette fonction.  
*Type*: carte (map)  
*Obligatoire* : non  
*CloudFormation compatibilité* : cette propriété est similaire à celle `[Tags](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-tags)` d'une `AWS::Lambda::Function` ressource. La `Tags` propriété in AWS SAM est constituée de paires clé-valeur (alors que dans CloudFormation cette propriété, elle consiste en une liste d'`Tag`objets). Ajoute également AWS SAM automatiquement une `lambda:createdBy:SAM` balise à cette fonction Lambda et aux rôles par défaut générés pour cette fonction.

 `TenancyConfig`   <a name="sam-function-tenancyconfig"></a>
Configuration pour le mode d'isolation des locataires Lambda. Garantit que les environnements d'exécution ne sont jamais partagés entre différents locataires IDs, offrant ainsi une isolation au niveau du calcul pour les applications multi-locataires.  
*Type :* [TenancyConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-tenancyconfig.html)  
*Obligatoire* : non  
*CloudFormation compatibilité* : cette propriété est transmise directement à la `[TenancyConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-tenancyconfig)` propriété d'une `AWS::Lambda::Function` ressource.

 `Timeout`   <a name="sam-function-timeout"></a>
La durée maximale en secondes pendant laquelle la fonction peut s'exécuter avant qu'elle ne soit arrêtée.  
*Type* : entier  
*Obligatoire* : non  
*Par défaut *: 3  
*CloudFormation compatibilité* : cette propriété est transmise directement à la `[Timeout](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-timeout)` propriété d'une `AWS::Lambda::Function` ressource.

 `Tracing`   <a name="sam-function-tracing"></a>
La chaîne qui spécifie le mode de traçage X-Ray de la fonction.  
+ `Active` : active le suivi X-Ray pour la fonction.
+ `Disabled` : désactive X-Ray pour la fonction.
+ `PassThrough` : active le suivi X-Ray pour la fonction. La décision d'échantillonnage est déléguée aux services en aval.
Si défini sur `Active` ou `PassThrough` et que la propriété `Role` n'est pas spécifiée, AWS SAM ajoute la stratégie `arn:aws:iam::aws:policy/AWSXrayWriteOnlyAccess` au rôle d'exécution Lambda qu'il crée pour vous.  
Pour plus d'informations sur X-Ray, consultez la section [Utiliser AWS Lambda avec AWS X-Ray](https://docs.aws.amazon.com/lambda/latest/dg/lambda-x-ray.html) dans le *manuel du AWS Lambda développeur*.  
*Valeurs valides* : [`Active`\|`Disabled`\|`PassThrough`]  
*Type* : chaîne  
*Obligatoire* : non  
*CloudFormation compatibilité* : cette propriété est similaire à celle `[TracingConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-tracingconfig)` d'une `AWS::Lambda::Function` ressource.

 `VersionDescription`   <a name="sam-function-versiondescription"></a>
Spécifie le champ `Description` qui est ajouté sur la nouvelle ressource de version Lambda.  
*Type* : chaîne  
*Obligatoire* : non  
*CloudFormation compatibilité* : cette propriété est transmise directement à la `[Description](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-version.html#cfn-lambda-version-description)` propriété d'une `AWS::Lambda::Version` ressource.

 `VersionDeletionPolicy`   <a name="sam-function-versiondeletionpolicy"></a>
Spécifie la politique de suppression pour la ressource de version Lambda créée lorsqu'elle `AutoPublishAlias` est définie. Cela permet de contrôler si la ressource de version est conservée ou supprimée lorsque la pile est supprimée.  
*Valeurs valides* : `Delete`, `Retain` ou `Snapshot`  
*Type* : chaîne  
*Obligatoire* : non  
*CloudFormation compatibilité* : cette propriété est unique AWS SAM et n'a pas d' CloudFormation équivalent. Il définit l'`DeletionPolicy`attribut de la `AWS::Lambda::Version` ressource générée.

 `VpcConfig`   <a name="sam-function-vpcconfig"></a>
La configuration qui permet à cette fonction d'accéder aux ressources privées dans votre VPC (Virtual Private Cloud).  
*Type :* [VpcConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-vpcconfig.html)  
*Obligatoire* : non  
*CloudFormation compatibilité* : cette propriété est transmise directement à la `[VpcConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-vpcconfig.html)` propriété d'une `AWS::Lambda::Function` ressource.

## Valeurs renvoyées
<a name="sam-resource-function-return-values"></a>

### Réf
<a name="sam-resource-function-return-values-ref"></a>

Lorsque l'ID logique de cette ressource est fournie à la fonction intrinsèque `Ref`, elle renvoie le nom de la ressource Lambda sous-jacente.

Pour plus d'informations sur l'utilisation de la fonction `Ref`, consultez [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-ref.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-ref.html) dans le *Guide de l'utilisateur AWS CloudFormation *. 

### Ventilateur : GetAtt
<a name="sam-resource-function-return-values-fn--getatt"></a>

`Fn::GetAtt` renvoie une valeur pour un attribut de ce type indiqué. Voici les attributs disponibles et des exemples de valeurs de retour. 

Pour plus d'informations sur l'utilisation de `Fn::GetAtt`, consultez [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-getatt.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-getatt.html) dans le *Guide de l'utilisateur AWS CloudFormation *. 

`Arn`  <a name="Arn-fn::getatt"></a>
L'ARN de la fonction Lambda sous-jacente.

## Exemples
<a name="sam-resource-function-examples"></a>

### Fonction simple
<a name="sam-resource-function-examples-simple-function"></a>

Ce qui suit est un exemple basique d'une ressource [AWS::Serverless::Function](#sam-resource-function) du type de package `Zip` (par défaut) et du code de fonction dans un compartiment Amazon S3.

#### YAML
<a name="sam-resource-function-examples-simple-function--yaml"></a>

```
Type: AWS::Serverless::Function
Properties:
  Handler: index.handler
  Runtime: python3.9
  CodeUri: s3://{{bucket-name}}/{{key-name}}
```

### Exemple de propriétés de fonction
<a name="sam-resource-function-examples-function-properties-example"></a>

Voici un exemple de type [AWS::Serverless::Function](#sam-resource-function) de package `Zip` (par défaut) qui utilise`InlineCode`,,, `Layers` `Tracing``Policies`, un système de `Amazon EFS` fichiers et une source d'`Api`événements.

#### YAML
<a name="sam-resource-function-examples-function-properties-example--yaml"></a>

```
Type: AWS::Serverless::Function
DependsOn: MyMountTarget        # This is needed if an AWS::EFS::MountTarget resource is declared for EFS
Properties:
  Handler: index.handler
  Runtime: python3.9
  InlineCode: |
    def handler(event, context):
      print("Hello, world!")
  ReservedConcurrentExecutions: 30
  Layers:
    - Ref: MyLayer
  Tracing: Active
  Timeout: 120
  FileSystemConfigs:
    - Arn: !Ref MyEfsFileSystem
      LocalMountPath: /mnt/EFS
  Policies:
    - AWSLambdaExecute
    - Version: '2012-10-17		 	 	 ' 
      Statement:
        - Effect: Allow
          Action:
            - s3:GetObject
            - s3:GetObjectACL
          Resource: 'arn:aws:s3:::{{sam-s3-demo-bucket}}/*'
  Events:
    ApiEvent:
      Type: Api
      Properties:
        Path: /path
        Method: get
```

### ImageConfig exemple
<a name="sam-resource-function-examples-imageconfig-example"></a>

Voici un exemple d'`ImageConfig` pour une fonction Lambda de type de package `Image`.

#### YAML
<a name="sam-resource-function-examples-imageconfig-example--yaml"></a>

```
HelloWorldFunction:
  Type: AWS::Serverless::Function
  Properties:
    PackageType: Image
    ImageUri: {{account-id}}.dkr.ecr.{{region}}.amazonaws.com/{{ecr-repo-name}}:{{image-name}}
    ImageConfig:
      Command:
        - "{{app.lambda_handler}}"
      EntryPoint:
        - "{{entrypoint1}}"
      WorkingDirectory: "{{workDir}}"
```

### RuntimeManagementConfig exemples
<a name="sam-resource-function-examples-runtimemanagementconfig-examples"></a>

Une fonction Lambda configurée pour mettre à jour son environnement d'exécution en fonction du comportement actuel :

```
TestFunction
  Type: AWS::Serverless::Function
  Properties:
    ...
    Runtime: python3.9
    RuntimeManagementConfig:
      UpdateRuntimeOn: Auto
```

Une fonction Lambda configurée pour mettre à jour son environnement d'exécution lorsque la fonction est mise à jour :

```
TestFunction
  Type: AWS::Serverless::Function
  Properties:
    ...
    Runtime: python3.9
    RuntimeManagementConfig:
      UpdateRuntimeOn: FunctionUpdate
```

Une fonction Lambda configurée pour mettre à jour manuellement son environnement d'exécution :

```
TestFunction
  Type: AWS::Serverless::Function
  Properties:
    ...
    Runtime: python3.9
    RuntimeManagementConfig:
      RuntimeVersionArn: arn:aws:lambda:us-east-1::runtime:4c459dd0104ee29ec65dcad056c0b3ddbe20d6db76b265ade7eda9a066859b1e
      UpdateRuntimeOn: Manual
```

### SnapStart exemples
<a name="sam-resource-function-examples-snapstart-examples"></a>

Exemple de fonction Lambda SnapStart activée pour les futures versions :

```
TestFunc
  Type: AWS::Serverless::Function
  Properties:
    ...
    SnapStart:
      ApplyOn: PublishedVersions
```

### TenancyConfig exemples
<a name="sam-resource-function-examples-tenancyconfig-examples"></a>

Exemple de fonction Lambda avec le mode d'isolation des locataires activé :

```
TestFunction
  Type: AWS::Serverless::Function
  Properties:
    ...
    TenancyConfig:
      TenantIsolationMode: PER_TENANT
```

### Exemple de système de fichiers S3 Files
<a name="sam-resource-function-examples-s3files-example"></a>

L'exemple suivant crée une fonction Lambda qui monte un système de fichiers Amazon S3 Files. Le modèle crée un compartiment S3, un système de fichiers S3 Files soutenu par ce compartiment, une cible de montage dans un sous-réseau VPC et un point d'accès. La fonction installe le point d'accès `/mnt/s3files` et peut lire et écrire des fichiers qui se synchronisent avec le compartiment S3.

**Note**  
Vous pouvez associer un système de fichiers Amazon EFS ou un système de fichiers S3 Files à une fonction Lambda, mais pas les deux en même temps.

#### YAML
<a name="sam-resource-function-examples-s3files-example--yaml"></a>

```
AWSTemplateFormatVersion: '2010-09-09'
Transform: AWS::Serverless-2016-10-31
Description: Lambda function with S3 Files file system

Resources:
  # VPC and networking
  MyVpc:
    Type: AWS::EC2::VPC
    Properties:
      CidrBlock: 10.0.0.0/16
      EnableDnsSupport: true
      EnableDnsHostnames: true

  MySubnet:
    Type: AWS::EC2::Subnet
    Properties:
      VpcId: !Ref MyVpc
      CidrBlock: 10.0.1.0/24
      AvailabilityZone: !Select [0, !GetAZs '']

  MySecurityGroup:
    Type: AWS::EC2::SecurityGroup
    Properties:
      GroupDescription: Security group for Lambda and S3 Files
      VpcId: !Ref MyVpc
      SecurityGroupIngress:
        - IpProtocol: tcp
          FromPort: 2049
          ToPort: 2049
          CidrIp: 10.0.0.0/16

  # S3 bucket for file storage
  MyS3Bucket:
    Type: AWS::S3::Bucket

  # IAM role for S3 Files to access the bucket
  S3FilesRole:
    Type: AWS::IAM::Role
    Properties:
      AssumeRolePolicyDocument:
        Version: '2012-10-17'
        Statement:
          - Effect: Allow
            Principal:
              Service: elasticfilesystem.amazonaws.com
            Action: sts:AssumeRole
      Policies:
        - PolicyName: S3FilesBucketAccess
          PolicyDocument:
            Version: '2012-10-17'
            Statement:
              - Effect: Allow
                Action:
                  - s3:GetObject
                  - s3:PutObject
                  - s3:DeleteObject
                  - s3:ListBucket
                Resource:
                  - !GetAtt MyS3Bucket.Arn
                  - !Sub '${MyS3Bucket.Arn}/*'

  # S3 Files resources
  MyS3FilesFileSystem:
    Type: AWS::S3Files::FileSystem
    Properties:
      Bucket: !GetAtt MyS3Bucket.Arn
      RoleArn: !GetAtt S3FilesRole.Arn

  MyS3FilesMountTarget:
    Type: AWS::S3Files::MountTarget
    Properties:
      FileSystemId: !Ref MyS3FilesFileSystem
      SubnetId: !Ref MySubnet
      SecurityGroups:
        - !Ref MySecurityGroup

  MyS3FilesAccessPoint:
    Type: AWS::S3Files::AccessPoint
    Properties:
      FileSystemId: !Ref MyS3FilesFileSystem
      PosixUser:
        Uid: '1000'
        Gid: '1000'
      RootDirectory:
        Path: /lambda
        CreationInfo:
          OwnerUid: '1000'
          OwnerGid: '1000'
          Permissions: '750'

  # Lambda function with S3 Files mount
  MyFunction:
    Type: AWS::Serverless::Function
    DependsOn: MyS3FilesMountTarget
    Properties:
      Handler: index.handler
      Runtime: python3.12
      Timeout: 120
      VpcConfig:
        SecurityGroupIds:
          - !Ref MySecurityGroup
        SubnetIds:
          - !Ref MySubnet
      FileSystemConfigs:
        - Arn: !GetAtt MyS3FilesAccessPoint.AccessPointArn
          LocalMountPath: /mnt/s3files
      Policies:
        - Version: '2012-10-17'
          Statement:
            - Effect: Allow
              Action:
                - s3files:ClientMount
                - s3files:ClientWrite
              Resource: !GetAtt MyS3FilesAccessPoint.AccessPointArn
      InlineCode: |
        import os

        def handler(event, context):
            # Write a file to the S3 Files mount
            with open('/mnt/s3files/hello.txt', 'w') as f:
                f.write('Hello from Lambda!')

            # List files at the mount path
            files = os.listdir('/mnt/s3files')
            return {'files': files}
```