Skip to content
GitHubXDiscordRSS

ASK

Learn how to create, update, and manage AWS Alexa ASKs using Alchemy Cloud Control.

The ASK (Alexa Skill Kit) resource lets you create and manage AWS Alexa ASKs for developing voice-driven capabilities.

Create a basic Alexa skill with required properties and adopt existing resources if necessary.

import AWS from "alchemy/aws/control";
const alexaSkill = await AWS.Alexa.ASK("basic-alexa-skill", {
AuthenticationConfiguration: {
// Authentication settings for the skill
ClientId: "your-client-id",
ClientSecret: "your-client-secret",
RefreshToken: "your-refresh-token"
},
VendorId: "your-vendor-id",
SkillPackage: {
// Skill package settings for the skill
S3Bucket: "your-s3-bucket",
S3Key: "path/to/your/skill-package.zip"
},
adopt: true // Adopt existing resource instead of failing
});

Configure an Alexa skill with more complex settings, such as additional authentication configurations.

const advancedAlexaSkill = await AWS.Alexa.ASK("advanced-alexa-skill", {
AuthenticationConfiguration: {
ClientId: "your-client-id",
ClientSecret: "your-client-secret",
RefreshToken: "your-refresh-token",
Permissions: [
{
Name: "alexa::ask:manage:skills"
}
]
},
VendorId: "your-vendor-id",
SkillPackage: {
S3Bucket: "your-s3-bucket",
S3Key: "path/to/your/skill-package.zip",
SkillManifest: {
// Additional manifest settings
SkillId: "your-skill-id",
Name: "Advanced Skill",
Description: "An advanced Alexa skill using Alchemy.",
ExamplePhrases: ["Open advanced skill", "Start advanced skill"]
}
}
});

Update an existing Alexa skill’s package by referencing the Vendor ID and Skill ID.

const updateAlexaSkill = await AWS.Alexa.ASK("update-alexa-skill", {
AuthenticationConfiguration: {
ClientId: "your-client-id",
ClientSecret: "your-client-secret",
RefreshToken: "your-refresh-token"
},
VendorId: "your-vendor-id",
SkillPackage: {
S3Bucket: "your-s3-bucket",
S3Key: "path/to/your/updated-skill-package.zip"
}
});

Deploy an Alexa skill and prepare it for testing with required configurations.

const testAlexaSkill = await AWS.Alexa.ASK("test-alexa-skill", {
AuthenticationConfiguration: {
ClientId: "your-client-id",
ClientSecret: "your-client-secret",
RefreshToken: "your-refresh-token"
},
VendorId: "your-vendor-id",
SkillPackage: {
S3Bucket: "your-s3-bucket",
S3Key: "path/to/your/test-skill-package.zip"
},
adopt: true // Adopt existing resource to facilitate testing
});