Skip to content

AppBlock

The AppBlock resource allows you to create and manage AWS AppStream AppBlocks, which are used to define the applications that can be streamed to users. AppBlocks contain the applications and their associated settings.

Minimal Example

Create a basic AppBlock with the required properties and a few optional configurations.

ts
import AWS from "alchemy/aws/control";

const appBlock = await AWS.AppStream.AppBlock("basicAppBlock", {
  Name: "BasicAppBlock",
  SourceS3Location: {
    S3Bucket: "my-app-bucket",
    S3Key: "my-app.zip"
  },
  DisplayName: "Basic Application Block",
  Description: "An AppBlock for a basic application setup."
});

Advanced Configuration

Configure an AppBlock with setup and post-setup script details for additional customization.

ts
const advancedAppBlock = await AWS.AppStream.AppBlock("advancedAppBlock", {
  Name: "AdvancedAppBlock",
  SourceS3Location: {
    S3Bucket: "my-app-bucket",
    S3Key: "my-advanced-app.zip"
  },
  SetupScriptDetails: {
    ScriptS3Location: {
      S3Bucket: "my-scripts-bucket",
      S3Key: "setup-script.sh"
    },
    TimeoutInSeconds: 300
  },
  PostSetupScriptDetails: {
    ScriptS3Location: {
      S3Bucket: "my-scripts-bucket",
      S3Key: "post-setup-script.sh"
    },
    TimeoutInSeconds: 300
  },
  Tags: [
    { Key: "Environment", Value: "Production" },
    { Key: "Department", Value: "IT" }
  ]
});

Resource Adoption

Create an AppBlock that adopts an existing resource if it is already present.

ts
const adoptAppBlock = await AWS.AppStream.AppBlock("adoptAppBlock", {
  Name: "ExistingAppBlock",
  SourceS3Location: {
    S3Bucket: "another-app-bucket",
    S3Key: "existing-app.zip"
  },
  adopt: true
});

Packaging Type Configuration

Specify a packaging type when creating an AppBlock to define how the application will be delivered.

ts
const packagedAppBlock = await AWS.AppStream.AppBlock("packagedAppBlock", {
  Name: "PackagedAppBlock",
  SourceS3Location: {
    S3Bucket: "my-packaged-app-bucket",
    S3Key: "packaged-app.zip"
  },
  PackagingType: "WINDOWS"
});