AWS::Greengrass::FunctionDefinitionVersion - AWS CloudFormation


The AWS::Greengrass::FunctionDefinitionVersion resource represents a function definition version for AWS IoT Greengrass. A function definition version contains contain a list of functions.


To create a function definition version, you must specify the ID of the function definition that you want to associate with the version. For information about creating a function definition, see AWS::Greengrass::FunctionDefinition.

After you create a function definition version that contains the functions you want to deploy, you must add it to your group version. For more information, see AWS::Greengrass::Group.


To declare this entity in your AWS CloudFormation template, use the following syntax:


{ "Type" : "AWS::Greengrass::FunctionDefinitionVersion", "Properties" : { "DefaultConfig" : DefaultConfig, "FunctionDefinitionId" : String, "Functions" : [ Function, ... ] } }


Type: AWS::Greengrass::FunctionDefinitionVersion Properties: DefaultConfig: DefaultConfig FunctionDefinitionId: String Functions: - Function



The default configuration that applies to all Lambda functions in the group. Individual Lambda functions can override these settings.

Required: No

Type: DefaultConfig

Update requires: Replacement


The ID of the function definition associated with this version. This value is a GUID.

Required: Yes

Type: String

Update requires: Replacement


The functions in this version.

Required: Yes

Type: Array of Function

Update requires: Replacement

Return values


When you pass the logical ID of this resource to the intrinsic Ref function, Ref returns the Amazon Resource Name (ARN) of the function definition version, such as arn:aws:greengrass:us-east-1:123456789012:/greengrass/definition/functions/1234a5b6-78cd-901e-2fgh-3i45j6k178l9/versions/9876ac30-4bdb-4f9d-95af-b5fdb66be1a2.

For more information about using the Ref function, see Ref.



Function Definition Version Snippet

The following snippet defines function definition and function definition version resources. The function definition version references the function definition and contains a function. In this example, the Lambda function is created in another stack and is referenced using the ImportValue function.

For an example of a complete template, see the AWS::Greengrass::Group resource.


"TestFunctionDefinition": { "Type": "AWS::Greengrass::FunctionDefinition", "Properties": { "Name": "DemoTestFunctionDefinition" } }, "TestFunctionDefinitionVersion": { "Type": "AWS::Greengrass::FunctionDefinitionVersion", "Properties": { "FunctionDefinitionId": { "Fn::GetAtt": [ "TestFunctionDefinition", "Id" ] }, "DefaultConfig": { "Execution": { "IsolationMode": "GreengrassContainer" } }, "Functions": [ { "Id": "TestLambda1", "FunctionArn": { "Fn::ImportValue": "TestCanaryLambdaVersionArn" }, "FunctionConfiguration": { "Pinned": "true", "Executable": "run.exe", "ExecArgs": "argument1", "MemorySize": "512", "Timeout": "2000", "EncodingType": "binary", "Environment": { "Variables": { "variable1": "value1" }, "ResourceAccessPolicies": [ { "ResourceId": "ResourceId1", "Permission": "ro" }, { "ResourceId": "ResourceId2", "Permission": "rw" } ], "AccessSysfs": "false", "Execution": { "RunAs": { "Uid": "1", "Gid": "10" } } } } } ] } }


TestFunctionDefinition: Type: 'AWS::Greengrass::FunctionDefinition' Properties: Name: DemoTestFunctionDefinition TestFunctionDefinitionVersion: Type: 'AWS::Greengrass::FunctionDefinitionVersion' Properties: FunctionDefinitionId: !GetAtt - TestFunctionDefinition - Id DefaultConfig: Execution: IsolationMode: GreengrassContainer Functions: - Id: TestLambda1 FunctionArn: !ImportValue TestCanaryLambdaVersionArn FunctionConfiguration: Pinned: 'true' Executable: run.exe ExecArgs: argument1 MemorySize: '512' Timeout: '2000' EncodingType: binary Environment: Variables: variable1: value1 ResourceAccessPolicies: - ResourceId: ResourceId1 Permission: ro - ResourceId: ResourceId2 Permission: rw AccessSysfs: 'false' Execution: RunAs: Uid: '1' Gid: '10'

See also