AWS::Greengrass::CoreDefinitionVersion - Amazon CloudFormation
Services or capabilities described in Amazon Web Services documentation might vary by Region. To see the differences applicable to the China Regions, see Getting Started with Amazon Web Services in China (PDF).


The AWS::Greengrass::CoreDefinitionVersion resource represents a core definition version for Amazon IoT Greengrass. A core definition version contains a Greengrass core.


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

After you create a core definition version that contains the core 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 Amazon CloudFormation template, use the following syntax:


{ "Type" : "AWS::Greengrass::CoreDefinitionVersion", "Properties" : { "CoreDefinitionId" : String, "Cores" : [ Core, ... ] } }


Type: AWS::Greengrass::CoreDefinitionVersion Properties: CoreDefinitionId: String Cores: - Core



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

Required: Yes

Type: String

Update requires: Replacement


The Greengrass core in this version. Currently, the Cores property for a core definition version can contain only one core.

Required: Yes

Type: Array of Core

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 core definition version, such as arn:aws:greengrass:us-east-1:123456789012:/greengrass/definition/cores/1234a5b6-78cd-901e-2fgh-3i45j6k178l9/versions/9876ac30-4bdb-4f9d-95af-b5fdb66be1a2.

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



Create a Core Definition Version

The following example creates two resources: a core definition and a core definition version that contains a core.

The template uses the Ref function to provide the CoreDefinitionId for the core definition version (which associates the version with the core definition). The template uses parameters to represent the core definition name and the ID, thing ARN, and certificate ARN to use for the core. It also outputs the ID of the new core definition and the ARN of the new core definition version.

For another template example, see the AWS::Greengrass::Group resource.


{ "Description": "Create CoreDefinition and associated CoreDefinitionVersion", "Parameters": { "CoreDefinitionName": { "Type": "String", "Default": "TestCoreDefinition" }, "CoreId": { "Type": "String", "Default": "TestCoreId" }, "CoreThingArn": { "Type": "String", "Default": "TestCoreThingArn" }, "CoreCertificateArn": { "Type": "String", "Default": "TestCoreCertArn" } }, "Resources": { "CoreDefinition": { "Type": "AWS::Greengrass::CoreDefinition", "Properties": { "Name": { "Ref": "CoreDefinitionName" } } }, "CoreDefinitionVersion": { "Type": "AWS::Greengrass::CoreDefinitionVersion", "Properties": { "CoreDefinitionId": { "Ref": "CoreDefinition" }, "Cores": [ { "Id": { "Ref": "CoreId" }, "CertificateArn": { "Ref": "CoreCertificateArn" }, "ThingArn": { "Ref": "CoreThingArn" }, "SyncShadow": "true" } ] } } }, "Outputs": { "CoreDefinitionId": { "Value": { "Ref": "CoreDefinition" } }, "CoreDefinitionVersionArn": { "Value": { "Ref": "CoreDefinitionVersion" } } } }


Description: Create CoreDefinition and associated CoreDefinitionVersion Parameters: CoreDefinitionName: Type: String Default: TestCoreDefinition CoreId: Type: String Default: TestCoreId CoreThingArn: Type: String Default: TestCoreThingArn CoreCertificateArn: Type: String Default: TestCoreCertArn Resources: CoreDefinition: Type: 'AWS::Greengrass::CoreDefinition' Properties: Name: !Ref CoreDefinitionName CoreDefinitionVersion: Type: 'AWS::Greengrass::CoreDefinitionVersion' Properties: CoreDefinitionId: !Ref CoreDefinition Cores: - Id: !Ref CoreId CertificateArn: !Ref CoreCertificateArn ThingArn: !Ref CoreThingArn SyncShadow: 'true' Outputs: CoreDefinitionId: Value: !Ref CoreDefinition CoreDefinitionVersionArn: Value: !Ref CoreDefinitionVersion

See also