Skip to content
GitHubXDiscord

Fleet

The Fleet resource lets you manage AWS AppStream Fleets which are used to deliver applications to users through a secure, scalable environment.

Create a basic AppStream Fleet with required properties and a few common optional settings.

import AWS from "alchemy/aws/control";
const appStreamFleet = await AWS.AppStream.Fleet("myFleet", {
Name: "MyAppFleet",
InstanceType: "stream.standard.medium",
ComputeCapacity: {
DesiredCapacity: 2
},
EnableDefaultInternetAccess: true
});

Configure an AppStream Fleet with more advanced options, including VPC settings and IAM role.

const advancedFleet = await AWS.AppStream.Fleet("advancedFleet", {
Name: "AdvancedAppFleet",
InstanceType: "stream.compute.large",
ComputeCapacity: {
DesiredCapacity: 5
},
VpcConfig: {
VpcId: "vpc-12345678",
SubnetIds: ["subnet-12345678", "subnet-87654321"],
SecurityGroupIds: ["sg-12345678"]
},
IamRoleArn: "arn:aws:iam::123456789012:role/AppStreamAccessRole",
MaxConcurrentSessions: 10,
DomainJoinInfo: {
DirectoryName: "myDomain",
OrganizationalUnitDistinguishedNames: ["OU=AppStream,DC=mydomain,DC=com"]
}
});

Create a Fleet that includes a session script for custom user sessions.

const fleetWithSessionScript = await AWS.AppStream.Fleet("sessionScriptFleet", {
Name: "FleetWithSessionScript",
InstanceType: "stream.standard.large",
ComputeCapacity: {
DesiredCapacity: 3
},
SessionScriptS3Location: {
S3Bucket: "my-bucket",
S3Key: "scripts/sessionScript.sh"
},
MaxUserDurationInSeconds: 3600
});

Configure a Fleet that includes USB device filtering to restrict which devices can be used.

const usbFilteredFleet = await AWS.AppStream.Fleet("usbFilteredFleet", {
Name: "UsbFilteredFleet",
InstanceType: "stream.standard.medium",
ComputeCapacity: {
DesiredCapacity: 4
},
UsbDeviceFilterStrings: ["VendorID:1234,ProductID:5678"]
});