ProvisioningTemplate
Learn how to create, update, and manage AWS IoT ProvisioningTemplates using Alchemy Cloud Control.
The ProvisioningTemplate resource allows you to create and manage AWS IoT ProvisioningTemplates that define how IoT devices are provisioned in AWS IoT.
Minimal Example
Section titled “Minimal Example”Create a basic provisioning template with required properties and some common optional settings.
import AWS from "alchemy/aws/control";
const provisioningTemplate = await AWS.IoT.ProvisioningTemplate("basicTemplate", { ProvisioningRoleArn: "arn:aws:iam::123456789012:role/provisioningRole", TemplateBody: JSON.stringify({ Version: "2018-11-30", Resources: { MyThing: { Type: "AWS::IoT::Thing", Properties: { ThingName: "MyIoTDevice", AttributePayload: { Attributes: { key1: "value1", key2: "value2" } } } } } }), Description: "Basic provisioning template for IoT devices.", Enabled: true});
Advanced Configuration
Section titled “Advanced Configuration”Configure a provisioning template with hooks for custom pre-provisioning actions and additional tags.
const advancedTemplate = await AWS.IoT.ProvisioningTemplate("advancedTemplate", { ProvisioningRoleArn: "arn:aws:iam::123456789012:role/provisioningRole", TemplateBody: JSON.stringify({ Version: "2018-11-30", Resources: { MyThing: { Type: "AWS::IoT::Thing", Properties: { ThingName: "AdvancedIoTDevice", AttributePayload: { Attributes: { key1: "value1", key2: "value2" } } } } } }), PreProvisioningHook: { TargetArn: "arn:aws:lambda:us-east-1:123456789012:function:myPreProvisioningHook", Payload: JSON.stringify({ key: "value" }), TimeoutInSeconds: 30 }, Tags: [ { Key: "Environment", Value: "Production" }, { Key: "Project", Value: "IoTDeployment" } ], Enabled: true});
Custom Template Type
Section titled “Custom Template Type”Create a provisioning template with a specific template type for custom provisioning workflows.
const customTypeTemplate = await AWS.IoT.ProvisioningTemplate("customTypeTemplate", { ProvisioningRoleArn: "arn:aws:iam::123456789012:role/provisioningRole", TemplateBody: JSON.stringify({ Version: "2018-11-30", Resources: { MyThing: { Type: "AWS::IoT::Thing", Properties: { ThingName: "CustomTypeIoTDevice", AttributePayload: { Attributes: { key1: "value1", key2: "value2" } } } } } }), TemplateType: "FLEET_PROVISIONING", Enabled: true});