Skip to content

attach_volume

attach_volume(
    gateway_arn: GatewayARN,
    volume_arn: VolumeARN,
    network_interface_id: NetworkInterfaceId,
    *,
    config_overrides: Optional[StorageGatewayClientConfig] = None,
    target_name: Optional[TargetName] = None,
    disk_id: Optional[DiskId] = None,
) -> AttachVolumeOutput

Connects a volume to an iSCSI connection and then attaches the volume to the specified gateway. Detaching and attaching a volume enables you to recover your data from one gateway to a different gateway without creating a snapshot. It also makes it easier to move your volumes from an on-premises gateway to a gateway hosted on an Amazon EC2 instance.

Parameters:

  • gateway_arn (GatewayARN) –

    The Amazon Resource Name (ARN) of the gateway that you want to attach the volume to.

  • target_name (Optional[TargetName], default: None ) –

    The name of the iSCSI target used by an initiator to connect to a volume and used as a suffix for the target ARN. For example, specifying TargetName as myvolume results in the target ARN of arn:aws:storagegateway:us-east-2:111122223333:gateway/sgw-12A3456B/target/iqn.1997-05.com.amazon:myvolume. The target name must be unique across all volumes on a gateway.

    If you don't specify a value, Storage Gateway uses the value that was previously used for this volume as the new target name.

  • volume_arn (VolumeARN) –

    The Amazon Resource Name (ARN) of the volume to attach to the specified gateway.

  • network_interface_id (NetworkInterfaceId) –

    The network interface of the gateway on which to expose the iSCSI target. Accepts IPv4 and IPv6 addresses. Use DescribeGatewayInformation to get a list of the network interfaces available on a gateway.

    Valid Values: A valid IP address.

  • disk_id (Optional[DiskId], default: None ) –

    The unique device ID or other distinguishing data that identifies the local disk used to create the volume. This value is only required when you are attaching a stored volume.

Raises:

  • InternalServerError –

    An internal server error has occurred during the request. For more information, see the error and message fields.

  • InvalidGatewayRequestException –

    An exception occurred because an invalid gateway request was issued to the service. For more information, see the error and message fields.

  • UnknownServiceError –

    The service returned an error code this client does not model.

Source code in docs_src/capo_storage_gateway/_services/storage_gateway.py
def attach_volume(
    self,
    gateway_arn: "capo_storage_gateway.types.gateway_arn.GatewayARN",
    volume_arn: "capo_storage_gateway.types.volume_arn.VolumeARN",
    network_interface_id: "capo_storage_gateway.types.network_interface_id.NetworkInterfaceId",
    *,
    config_overrides: Optional[StorageGatewayClientConfig] = None,
    target_name: Optional[
        "capo_storage_gateway.types.target_name.TargetName"
    ] = None,
    disk_id: Optional["capo_storage_gateway.types.disk_id.DiskId"] = None,
) -> "capo_storage_gateway.types.attach_volume_output.AttachVolumeOutput":
    """<p>Connects a volume to an iSCSI connection and then attaches the volume to the specified gateway. Detaching and attaching a volume enables you to recover your data from one gateway to a different gateway without creating a snapshot. It also makes it easier to move your volumes from an on-premises gateway to a gateway hosted on an Amazon EC2 instance.</p>

    Args:
        gateway_arn: <p>The Amazon Resource Name (ARN) of the gateway that you want to attach the volume to.</p>
        target_name: <p>The name of the iSCSI target used by an initiator to connect to a volume and used as a suffix for the target ARN. For example, specifying <code>TargetName</code> as <i>myvolume</i> results in the target ARN of <code>arn:aws:storagegateway:us-east-2:111122223333:gateway/sgw-12A3456B/target/iqn.1997-05.com.amazon:myvolume</code>. The target name must be unique across all volumes on a gateway.</p> <p>If you don't specify a value, Storage Gateway uses the value that was previously used for this volume as the new target name.</p>
        volume_arn: <p>The Amazon Resource Name (ARN) of the volume to attach to the specified gateway.</p>
        network_interface_id: <p>The network interface of the gateway on which to expose the iSCSI target. Accepts IPv4 and IPv6 addresses. Use <a>DescribeGatewayInformation</a> to get a list of the network interfaces available on a gateway.</p> <p>Valid Values: A valid IP address.</p>
        disk_id: <p>The unique device ID or other distinguishing data that identifies the local disk used to create the volume. This value is only required when you are attaching a stored volume.</p>

    Raises:
        capo_storage_gateway.errors.internal_server_error.InternalServerError: <p>An internal server error has occurred during the request. For more information, see the error and message fields.</p>
        capo_storage_gateway.errors.invalid_gateway_request_exception.InvalidGatewayRequestException: <p>An exception occurred because an invalid gateway request was issued to the service. For more information, see the error and message fields.</p>
        capo_storage_gateway.errors.UnknownServiceError: The service returned an error code this client does not model.
    """

    def _handler(
        req: "OperationRequest[capo_storage_gateway.types.attach_volume_input.AttachVolumeInput]",
    ) -> OperationResponse[
        "capo_storage_gateway.types.attach_volume_output.AttachVolumeOutput"
    ]:
        import capo_storage_gateway._operations.storage_gateway_20130630.attach_volume

        output, http_response = (
            capo_storage_gateway._operations.storage_gateway_20130630.attach_volume.attach_volume(
                req.options, req.input
            )
        )
        return OperationResponse(output=output, response=http_response)

    interceptors_, options_ = self.operation_options(
        config_overrides, OperationLogging("AttachVolume")
    )
    input_: capo_storage_gateway.types.attach_volume_input.AttachVolumeInput = {
        "gateway_arn": gateway_arn,
        "volume_arn": volume_arn,
        "network_interface_id": network_interface_id,
    }
    if target_name is not None:
        input_["target_name"] = target_name
    if disk_id is not None:
        input_["disk_id"] = disk_id

    response = execute_pipeline(
        OperationRequest(input=input_, options=options_),
        handler=_handler,
        interceptors=list(interceptors_),
    )
    response.response.close()
    return response.output