Amazon Lightsail

2019/01/17 - Amazon Lightsail - 4 updated api methods

Changes  This release adds functionality to the CreateDiskSnapshot API that allows users to snapshot instance root volumes. It also adds various documentation updates.

CreateCloudFormationStack (updated) Link ¶
Changes (request)
{'instances': {'portInfoSource': {'CLOSED'}}}

Creates an AWS CloudFormation stack, which creates a new Amazon EC2 instance from an exported Amazon Lightsail snapshot. This operation results in a CloudFormation stack record that can be used to track the AWS CloudFormation stack created. Use the get cloud formation stack records operation to get a list of the CloudFormation stacks created.

Warning

Wait until after your new Amazon EC2 instance is created before running the create cloud formation stack operation again with the same export snapshot record.

See also: AWS API Documentation

Request Syntax

client.create_cloud_formation_stack(
    instances=[
        {
            'sourceName': 'string',
            'instanceType': 'string',
            'portInfoSource': 'DEFAULT'|'INSTANCE'|'NONE'|'CLOSED',
            'userData': 'string',
            'availabilityZone': 'string'
        },
    ]
)
type instances

list

param instances

[REQUIRED]

An array of parameters that will be used to create the new Amazon EC2 instance. You can only pass one instance entry at a time in this array. You will get an invalid parameter error if you pass more than one instance entry in this array.

  • (dict) --

    Describes the Amazon Elastic Compute Cloud instance and related resources to be created using the create cloud formation stack operation.

    • sourceName (string) -- [REQUIRED]

      The name of the export snapshot record, which contains the exported Lightsail instance snapshot that will be used as the source of the new Amazon EC2 instance.

      Use the get export snapshot records operation to get a list of export snapshot records that you can use to create a CloudFormation stack.

    • instanceType (string) -- [REQUIRED]

      The instance type (e.g., t2.micro ) to use for the new Amazon EC2 instance.

    • portInfoSource (string) -- [REQUIRED]

      The port configuration to use for the new Amazon EC2 instance.

      The following configuration options are available:

      • DEFAULT — Use the default firewall settings from the image.

      • INSTANCE — Use the firewall settings from the source Lightsail instance.

      • NONE — Default to Amazon EC2.

      • CLOSED — All ports closed.

    • userData (string) --

      A launch script you can create that configures a server with additional user data. For example, you might want to run apt-get -y update .

      Note

      Depending on the machine image you choose, the command to get software on your instance varies. Amazon Linux and CentOS use yum , Debian and Ubuntu use apt-get , and FreeBSD uses pkg .

    • availabilityZone (string) -- [REQUIRED]

      The Availability Zone for the new Amazon EC2 instance.

rtype

dict

returns

Response Syntax

{
    'operations': [
        {
            'id': 'string',
            'resourceName': 'string',
            'resourceType': 'Instance'|'StaticIp'|'KeyPair'|'InstanceSnapshot'|'Domain'|'PeeredVpc'|'LoadBalancer'|'LoadBalancerTlsCertificate'|'Disk'|'DiskSnapshot'|'RelationalDatabase'|'RelationalDatabaseSnapshot'|'ExportSnapshotRecord'|'CloudFormationStackRecord',
            'createdAt': datetime(2015, 1, 1),
            'location': {
                'availabilityZone': 'string',
                'regionName': 'us-east-1'|'us-east-2'|'us-west-1'|'us-west-2'|'eu-west-1'|'eu-west-2'|'eu-west-3'|'eu-central-1'|'ca-central-1'|'ap-south-1'|'ap-southeast-1'|'ap-southeast-2'|'ap-northeast-1'|'ap-northeast-2'
            },
            'isTerminal': True|False,
            'operationDetails': 'string',
            'operationType': 'DeleteInstance'|'CreateInstance'|'StopInstance'|'StartInstance'|'RebootInstance'|'OpenInstancePublicPorts'|'PutInstancePublicPorts'|'CloseInstancePublicPorts'|'AllocateStaticIp'|'ReleaseStaticIp'|'AttachStaticIp'|'DetachStaticIp'|'UpdateDomainEntry'|'DeleteDomainEntry'|'CreateDomain'|'DeleteDomain'|'CreateInstanceSnapshot'|'DeleteInstanceSnapshot'|'CreateInstancesFromSnapshot'|'CreateLoadBalancer'|'DeleteLoadBalancer'|'AttachInstancesToLoadBalancer'|'DetachInstancesFromLoadBalancer'|'UpdateLoadBalancerAttribute'|'CreateLoadBalancerTlsCertificate'|'DeleteLoadBalancerTlsCertificate'|'AttachLoadBalancerTlsCertificate'|'CreateDisk'|'DeleteDisk'|'AttachDisk'|'DetachDisk'|'CreateDiskSnapshot'|'DeleteDiskSnapshot'|'CreateDiskFromSnapshot'|'CreateRelationalDatabase'|'UpdateRelationalDatabase'|'DeleteRelationalDatabase'|'CreateRelationalDatabaseFromSnapshot'|'CreateRelationalDatabaseSnapshot'|'DeleteRelationalDatabaseSnapshot'|'UpdateRelationalDatabaseParameters'|'StartRelationalDatabase'|'RebootRelationalDatabase'|'StopRelationalDatabase',
            'status': 'NotStarted'|'Started'|'Failed'|'Completed'|'Succeeded',
            'statusChangedAt': datetime(2015, 1, 1),
            'errorCode': 'string',
            'errorDetails': 'string'
        },
    ]
}

Response Structure

  • (dict) --

    • operations (list) --

      A list of objects describing the API operation.

      • (dict) --

        Describes the API operation.

        • id (string) --

          The ID of the operation.

        • resourceName (string) --

          The resource name.

        • resourceType (string) --

          The resource type.

        • createdAt (datetime) --

          The timestamp when the operation was initialized (e.g., 1479816991.349 ).

        • location (dict) --

          The region and Availability Zone.

          • availabilityZone (string) --

            The Availability Zone. Follows the format us-east-2a (case-sensitive).

          • regionName (string) --

            The AWS Region name.

        • isTerminal (boolean) --

          A Boolean value indicating whether the operation is terminal.

        • operationDetails (string) --

          Details about the operation (e.g., Debian-1GB-Ohio-1 ).

        • operationType (string) --

          The type of operation.

        • status (string) --

          The status of the operation.

        • statusChangedAt (datetime) --

          The timestamp when the status was changed (e.g., 1479816991.349 ).

        • errorCode (string) --

          The error code.

        • errorDetails (string) --

          The error details.

CreateDiskSnapshot (updated) Link ¶
Changes (request)
{'instanceName': 'string'}

Creates a snapshot of a block storage disk. You can use snapshots for backups, to make copies of disks, and to save data before shutting down a Lightsail instance.

You can take a snapshot of an attached disk that is in use; however, snapshots only capture data that has been written to your disk at the time the snapshot command is issued. This may exclude any data that has been cached by any applications or the operating system. If you can pause any file systems on the disk long enough to take a snapshot, your snapshot should be complete. Nevertheless, if you cannot pause all file writes to the disk, you should unmount the disk from within the Lightsail instance, issue the create disk snapshot command, and then remount the disk to ensure a consistent and complete snapshot. You may remount and use your disk while the snapshot status is pending.

You can also use this operation to create a snapshot of an instance's system volume. You might want to do this, for example, to recover data from the system volume of a botched instance or to create a backup of the system volume like you would for a block storage disk. To create a snapshot of a system volume, just define the instance name parameter when issuing the snapshot command, and a snapshot of the defined instance's system volume will be created. After the snapshot is available, you can create a block storage disk from the snapshot and attach it to a running instance to access the data on the disk.

The create disk snapshot operation supports tag-based access control via request tags. For more information, see the Lightsail Dev Guide.

See also: AWS API Documentation

Request Syntax

client.create_disk_snapshot(
    diskName='string',
    diskSnapshotName='string',
    instanceName='string',
    tags=[
        {
            'key': 'string',
            'value': 'string'
        },
    ]
)
type diskName

string

param diskName

The unique name of the source disk (e.g., Disk-Virginia-1 ).

Note

This parameter cannot be defined together with the instance name parameter. The disk name and instance name parameters are mutually exclusive.

type diskSnapshotName

string

param diskSnapshotName

[REQUIRED]

The name of the destination disk snapshot (e.g., my-disk-snapshot ) based on the source disk.

type instanceName

string

param instanceName

The unique name of the source instance (e.g., Amazon_Linux-512MB-Virginia-1 ). When this is defined, a snapshot of the instance's system volume is created.

Note

This parameter cannot be defined together with the disk name parameter. The instance name and disk name parameters are mutually exclusive.

type tags

list

param tags

The tag keys and optional values to add to the resource during create.

To tag a resource after it has been created, see the tag resource operation.

  • (dict) --

    Describes a tag key and optional value assigned to an Amazon Lightsail resource.

    For more information about tags in Lightsail, see the Lightsail Dev Guide.

    • key (string) --

      The key of the tag.

      Constraints: Tag keys accept a maximum of 128 letters, numbers, spaces in UTF-8, or the following characters: + - = . _ : / @

    • value (string) --

      The value of the tag.

      Constraints: Tag values accept a maximum of 256 letters, numbers, spaces in UTF-8, or the following characters: + - = . _ : / @

rtype

dict

returns

Response Syntax

{
    'operations': [
        {
            'id': 'string',
            'resourceName': 'string',
            'resourceType': 'Instance'|'StaticIp'|'KeyPair'|'InstanceSnapshot'|'Domain'|'PeeredVpc'|'LoadBalancer'|'LoadBalancerTlsCertificate'|'Disk'|'DiskSnapshot'|'RelationalDatabase'|'RelationalDatabaseSnapshot'|'ExportSnapshotRecord'|'CloudFormationStackRecord',
            'createdAt': datetime(2015, 1, 1),
            'location': {
                'availabilityZone': 'string',
                'regionName': 'us-east-1'|'us-east-2'|'us-west-1'|'us-west-2'|'eu-west-1'|'eu-west-2'|'eu-west-3'|'eu-central-1'|'ca-central-1'|'ap-south-1'|'ap-southeast-1'|'ap-southeast-2'|'ap-northeast-1'|'ap-northeast-2'
            },
            'isTerminal': True|False,
            'operationDetails': 'string',
            'operationType': 'DeleteInstance'|'CreateInstance'|'StopInstance'|'StartInstance'|'RebootInstance'|'OpenInstancePublicPorts'|'PutInstancePublicPorts'|'CloseInstancePublicPorts'|'AllocateStaticIp'|'ReleaseStaticIp'|'AttachStaticIp'|'DetachStaticIp'|'UpdateDomainEntry'|'DeleteDomainEntry'|'CreateDomain'|'DeleteDomain'|'CreateInstanceSnapshot'|'DeleteInstanceSnapshot'|'CreateInstancesFromSnapshot'|'CreateLoadBalancer'|'DeleteLoadBalancer'|'AttachInstancesToLoadBalancer'|'DetachInstancesFromLoadBalancer'|'UpdateLoadBalancerAttribute'|'CreateLoadBalancerTlsCertificate'|'DeleteLoadBalancerTlsCertificate'|'AttachLoadBalancerTlsCertificate'|'CreateDisk'|'DeleteDisk'|'AttachDisk'|'DetachDisk'|'CreateDiskSnapshot'|'DeleteDiskSnapshot'|'CreateDiskFromSnapshot'|'CreateRelationalDatabase'|'UpdateRelationalDatabase'|'DeleteRelationalDatabase'|'CreateRelationalDatabaseFromSnapshot'|'CreateRelationalDatabaseSnapshot'|'DeleteRelationalDatabaseSnapshot'|'UpdateRelationalDatabaseParameters'|'StartRelationalDatabase'|'RebootRelationalDatabase'|'StopRelationalDatabase',
            'status': 'NotStarted'|'Started'|'Failed'|'Completed'|'Succeeded',
            'statusChangedAt': datetime(2015, 1, 1),
            'errorCode': 'string',
            'errorDetails': 'string'
        },
    ]
}

Response Structure

  • (dict) --

    • operations (list) --

      An object describing the API operations.

      • (dict) --

        Describes the API operation.

        • id (string) --

          The ID of the operation.

        • resourceName (string) --

          The resource name.

        • resourceType (string) --

          The resource type.

        • createdAt (datetime) --

          The timestamp when the operation was initialized (e.g., 1479816991.349 ).

        • location (dict) --

          The region and Availability Zone.

          • availabilityZone (string) --

            The Availability Zone. Follows the format us-east-2a (case-sensitive).

          • regionName (string) --

            The AWS Region name.

        • isTerminal (boolean) --

          A Boolean value indicating whether the operation is terminal.

        • operationDetails (string) --

          Details about the operation (e.g., Debian-1GB-Ohio-1 ).

        • operationType (string) --

          The type of operation.

        • status (string) --

          The status of the operation.

        • statusChangedAt (datetime) --

          The timestamp when the status was changed (e.g., 1479816991.349 ).

        • errorCode (string) --

          The error code.

        • errorDetails (string) --

          The error details.

GetDiskSnapshot (updated) Link ¶
Changes (response)
{'diskSnapshot': {'fromInstanceArn': 'string', 'fromInstanceName': 'string'}}

Returns information about a specific block storage disk snapshot.

See also: AWS API Documentation

Request Syntax

client.get_disk_snapshot(
    diskSnapshotName='string'
)
type diskSnapshotName

string

param diskSnapshotName

[REQUIRED]

The name of the disk snapshot (e.g., my-disk-snapshot ).

rtype

dict

returns

Response Syntax

{
    'diskSnapshot': {
        'name': 'string',
        'arn': 'string',
        'supportCode': 'string',
        'createdAt': datetime(2015, 1, 1),
        'location': {
            'availabilityZone': 'string',
            'regionName': 'us-east-1'|'us-east-2'|'us-west-1'|'us-west-2'|'eu-west-1'|'eu-west-2'|'eu-west-3'|'eu-central-1'|'ca-central-1'|'ap-south-1'|'ap-southeast-1'|'ap-southeast-2'|'ap-northeast-1'|'ap-northeast-2'
        },
        'resourceType': 'Instance'|'StaticIp'|'KeyPair'|'InstanceSnapshot'|'Domain'|'PeeredVpc'|'LoadBalancer'|'LoadBalancerTlsCertificate'|'Disk'|'DiskSnapshot'|'RelationalDatabase'|'RelationalDatabaseSnapshot'|'ExportSnapshotRecord'|'CloudFormationStackRecord',
        'tags': [
            {
                'key': 'string',
                'value': 'string'
            },
        ],
        'sizeInGb': 123,
        'state': 'pending'|'completed'|'error'|'unknown',
        'progress': 'string',
        'fromDiskName': 'string',
        'fromDiskArn': 'string',
        'fromInstanceName': 'string',
        'fromInstanceArn': 'string'
    }
}

Response Structure

  • (dict) --

    • diskSnapshot (dict) --

      An object containing information about the disk snapshot.

      • name (string) --

        The name of the disk snapshot (e.g., my-disk-snapshot ).

      • arn (string) --

        The Amazon Resource Name (ARN) of the disk snapshot.

      • supportCode (string) --

        The support code. Include this code in your email to support when you have questions about an instance or another resource in Lightsail. This code enables our support team to look up your Lightsail information more easily.

      • createdAt (datetime) --

        The date when the disk snapshot was created.

      • location (dict) --

        The AWS Region and Availability Zone where the disk snapshot was created.

        • availabilityZone (string) --

          The Availability Zone. Follows the format us-east-2a (case-sensitive).

        • regionName (string) --

          The AWS Region name.

      • resourceType (string) --

        The Lightsail resource type (e.g., DiskSnapshot ).

      • tags (list) --

        The tag keys and optional values for the resource. For more information about tags in Lightsail, see the Lightsail Dev Guide.

        • (dict) --

          Describes a tag key and optional value assigned to an Amazon Lightsail resource.

          For more information about tags in Lightsail, see the Lightsail Dev Guide.

          • key (string) --

            The key of the tag.

            Constraints: Tag keys accept a maximum of 128 letters, numbers, spaces in UTF-8, or the following characters: + - = . _ : / @

          • value (string) --

            The value of the tag.

            Constraints: Tag values accept a maximum of 256 letters, numbers, spaces in UTF-8, or the following characters: + - = . _ : / @

      • sizeInGb (integer) --

        The size of the disk in GB.

      • state (string) --

        The status of the disk snapshot operation.

      • progress (string) --

        The progress of the disk snapshot operation.

      • fromDiskName (string) --

        The unique name of the source disk from which the disk snapshot was created.

      • fromDiskArn (string) --

        The Amazon Resource Name (ARN) of the source disk from which the disk snapshot was created.

      • fromInstanceName (string) --

        The unique name of the source instance from which the disk (system volume) snapshot was created.

      • fromInstanceArn (string) --

        The Amazon Resource Name (ARN) of the source instance from which the disk (system volume) snapshot was created.

GetDiskSnapshots (updated) Link ¶
Changes (response)
{'diskSnapshots': {'fromInstanceArn': 'string', 'fromInstanceName': 'string'}}

Returns information about all block storage disk snapshots in your AWS account and region.

If you are describing a long list of disk snapshots, you can paginate the output to make the list more manageable. You can use the pageToken and nextPageToken values to retrieve the next items in the list.

See also: AWS API Documentation

Request Syntax

client.get_disk_snapshots(
    pageToken='string'
)
type pageToken

string

param pageToken

A token used for advancing to the next page of results from your GetDiskSnapshots request.

rtype

dict

returns

Response Syntax

{
    'diskSnapshots': [
        {
            'name': 'string',
            'arn': 'string',
            'supportCode': 'string',
            'createdAt': datetime(2015, 1, 1),
            'location': {
                'availabilityZone': 'string',
                'regionName': 'us-east-1'|'us-east-2'|'us-west-1'|'us-west-2'|'eu-west-1'|'eu-west-2'|'eu-west-3'|'eu-central-1'|'ca-central-1'|'ap-south-1'|'ap-southeast-1'|'ap-southeast-2'|'ap-northeast-1'|'ap-northeast-2'
            },
            'resourceType': 'Instance'|'StaticIp'|'KeyPair'|'InstanceSnapshot'|'Domain'|'PeeredVpc'|'LoadBalancer'|'LoadBalancerTlsCertificate'|'Disk'|'DiskSnapshot'|'RelationalDatabase'|'RelationalDatabaseSnapshot'|'ExportSnapshotRecord'|'CloudFormationStackRecord',
            'tags': [
                {
                    'key': 'string',
                    'value': 'string'
                },
            ],
            'sizeInGb': 123,
            'state': 'pending'|'completed'|'error'|'unknown',
            'progress': 'string',
            'fromDiskName': 'string',
            'fromDiskArn': 'string',
            'fromInstanceName': 'string',
            'fromInstanceArn': 'string'
        },
    ],
    'nextPageToken': 'string'
}

Response Structure

  • (dict) --

    • diskSnapshots (list) --

      An array of objects containing information about all block storage disk snapshots.

      • (dict) --

        Describes a block storage disk snapshot.

        • name (string) --

          The name of the disk snapshot (e.g., my-disk-snapshot ).

        • arn (string) --

          The Amazon Resource Name (ARN) of the disk snapshot.

        • supportCode (string) --

          The support code. Include this code in your email to support when you have questions about an instance or another resource in Lightsail. This code enables our support team to look up your Lightsail information more easily.

        • createdAt (datetime) --

          The date when the disk snapshot was created.

        • location (dict) --

          The AWS Region and Availability Zone where the disk snapshot was created.

          • availabilityZone (string) --

            The Availability Zone. Follows the format us-east-2a (case-sensitive).

          • regionName (string) --

            The AWS Region name.

        • resourceType (string) --

          The Lightsail resource type (e.g., DiskSnapshot ).

        • tags (list) --

          The tag keys and optional values for the resource. For more information about tags in Lightsail, see the Lightsail Dev Guide.

          • (dict) --

            Describes a tag key and optional value assigned to an Amazon Lightsail resource.

            For more information about tags in Lightsail, see the Lightsail Dev Guide.

            • key (string) --

              The key of the tag.

              Constraints: Tag keys accept a maximum of 128 letters, numbers, spaces in UTF-8, or the following characters: + - = . _ : / @

            • value (string) --

              The value of the tag.

              Constraints: Tag values accept a maximum of 256 letters, numbers, spaces in UTF-8, or the following characters: + - = . _ : / @

        • sizeInGb (integer) --

          The size of the disk in GB.

        • state (string) --

          The status of the disk snapshot operation.

        • progress (string) --

          The progress of the disk snapshot operation.

        • fromDiskName (string) --

          The unique name of the source disk from which the disk snapshot was created.

        • fromDiskArn (string) --

          The Amazon Resource Name (ARN) of the source disk from which the disk snapshot was created.

        • fromInstanceName (string) --

          The unique name of the source instance from which the disk (system volume) snapshot was created.

        • fromInstanceArn (string) --

          The Amazon Resource Name (ARN) of the source instance from which the disk (system volume) snapshot was created.

    • nextPageToken (string) --

      A token used for advancing to the next page of results from your GetDiskSnapshots request.