The following table shows the full list of possible inputs. There's a brief description of the usage of the input and if the input is a requirement.
Inputs | Description | Required? |
---|---|---|
ApplicationName | Name of the application running the MasKopy process | Yes |
CostCenter | Cost center of the application running the MasKopy process | Yes |
RdsSnapshotIdentifier | Snapshot ID of the snapshot that will be used | Yes |
ExecutionTimestamp | Build timestamp to identify the step function resources | No |
PresignedUrl | URL generated by caller to authorize caller. If running manually, you can generate the presigned URL in python:URL=$(python -c "import boto3; print boto3.client('sts').generate_presigned_url('get_caller_identity')") |
Yes |
DestinationEnv | Destination environment | Yes |
ObfuscationScriptPath | S3 location of bootstrap script and application provided obfuscation script | Yes |
ObfuscateRunMode | Currently supported values: fargate (default), ecs, none | No |
RdsFinalSnapshotIdentifier | Final obfuscated snapshot name. It should start with lower case ApplicationName. If not provided, will take default value. Constraints: Must contain from 1 to 255 letters, numbers, or hyphens Can't include underscores and can't end with a hyphen or contain two consecutive hyphens . |
No. The default value will be ApplicationName-db_name-timestamp. |
RdsInstanceType | DB Instance class | No |
AmiId | AMI id to be used for the obfuscation ecs | No, required in ecs mode. |
RdsParameterGroup | Name of an existing DB Parameter group in destination environment to be used for the final snapshot | No, if not set MasKopy will try to find an existing parameter group in destination environment with the same name as the original. |
RdsOptionGroup | Name of an existing option group in destination environment to be used for the final snapshots | No, required if snapshot is oracle engine |
The following table shows the full list of possible outputs. There's a brief description of each output.
Outputs | Description |
---|---|
CreatedSnapshots | List of created snapshots |
CreatedSnapshots[].SnapshotName | Name of created snapshot copy in source environment |
CreatedSnapshots[].SnapshotARN | ARN of created snapshot copy in source environment |
CreatedSnapshots[].InstanceIdentifier | Name of original RDS of snapshot |
CreatedSnapshots[].Tags | List of tags added to created snapshot |
CreatedSnapshots[].RdsParameterGroup | RDS Parameter Group to be used in RDS instance |
SnapshotsAvailable | Boolean used to check the availability state of created snapshot |
SharedSnapshots | Boolean used to check if created snapshot was shared to target environment |
CreatedDestinationSnapshots[].SnapshotName | Name of created snapshot copy in target environment |
CreatedDestinationSnapshots[].SnapshotARN | ARN of created snapshot copy in target environment |
CreatedDestinationSnapshots[].InstanceIdentifier | Name of original RDS of snapshot |
CreatedDestinationSnapshots[].Tags | List of tags added to created snapshot |
DestinationSnapshotsAvailable | Boolean used to check the availability state of created target snapshot |
DestinationRestoredDatabases | Name of temporary RDS instance in target environment |
DestinationRestoredDatabasesComplete | Boolean used to check the availability state of created snapshot |
fargate | Object that contains name of fargate cluster and task definition |
ECSRunTask | Output of completed task |
CreatedFinalSnapshots | List of created final snapshots in source environment |
FinalSnapshotAvailable | Boolean used to check the availability state of created final snapshot |
CleanupAndTagging | Object that contains cleanup step status and message to be sent by SQS |
Publish | Output of completed SQS task |
The following tables shows the full list of possible exceptions thrown by MasKopy.
Exceptions | Description |
---|---|
MaskopyAccessException | Exception raised when IAM role or user is not able to access the resource due to authorization error. |
MaskopyDBInstanceStatusException | Exception raised when RDS is not in an available state. |
MaskopyHTTPException | Exception raised when HTTP request returns a 4xx or 5xx error. |
MaskopyResourceException | Exception raised when IAM role or user is not able to access the resource. |
MaskopyResourceNotFoundException | Exception raised when IAM role or user is not able to access the resource since the resource does not exist. |
MaskopyTimeoutException | Exception raised when HTTP request times out. |
MaskopyThrottlingException | Exception raised when AWS request returns a Throttling exception. |
{
"CreatedSnapshots": [
{
"SnapshotName": "string",
"SnapshotARN": "string",
"InstanceIdentifier": "string",
"Tags": [
{
"Key": "ApplicationName",
"Value": "MASKOPY"
},
{
"Key": "Cost Center",
"Value": "string"
}
],
"RdsParameterGroup": "string"
}
],
"SnapshotsAvailable": true|false,
"SharedSnapshots": true|false,
"CreatedDestinationSnapshots": [
{
"SnapshotName": "string",
"InstanceIdentifier": "string",
"SnapshotARN": "string",
"SnapshotTags": [
{
"Key": "ApplicationName",
"Value": "MASKOPY"
},
{
"Key": "Cost Center",
"Value": "string"
}
]
}
],
"DestinationSnapshotsAvailable": true|false,
"DestinationRestoredDatabases": [
"string"
],
"DestinationRestoredDatabasesComplete": true|false,
"fargate": {
"ClusterName": "MASKOPY-FARGATE-CLUSTER",
"TaskDefinition": "string"
},
"ECSRunTask": {
"Attachments": [
{
"Details": [
{
"Name": "subnetId",
"Value": "string"
},
{
"Name": "networkInterfaceId",
"Value": "string"
},
{
"Name": "macAddress",
"Value": "string"
},
{
"Name": "privateIPv4Address",
"Value": "string"
}
],
"Id": "string",
"Status": "string",
"Type": "eni"
}
],
"ClusterArn": "string",
"Connectivity": "string",
"ConnectivityAt": 123,
"Containers": [
{
"ContainerArn": "string",
"Cpu": "string",
"ExitCode": 123,
"GpuIds": [],
"Image": "string",
"ImageDigest": "string",
"LastStatus": "string",
"Memory": "string",
"Name": "string",
"NetworkBindings": [],
"NetworkInterfaces": [
{
"AttachmentId": "string",
"PrivateIpv4Address": "string"
}
],
"RuntimeId": "string",
"TaskArn": "string"
}
],
"Cpu": "string",
"CreatedAt": 123,
"DesiredStatus": "string",
"ExecutionStoppedAt": 123,
"Group": "string",
"InferenceAccelerators": [],
"LastStatus": "string",
"LaunchType": "FARGATE",
"Memory": "string",
"Overrides": {
"ContainerOverrides": [
{
"Command": [],
"Environment": [],
"Name": "string",
"ResourceRequirements": []
}
],
"InferenceAcceleratorOverrides": []
},
"PlatformVersion": "string",
"PullStartedAt": 123,
"PullStoppedAt": 123,
"StartedAt": 123,
"StartedBy": "string",
"StopCode": "string",
"StoppedAt": 123,
"StoppedReason": "string",
"StoppingAt": 123,
"Tags": [],
"TaskArn": "string",
"TaskDefinitionArn": "string",
"Version": 123
},
"CreatedFinalSnapshots": [
{
"SnapshotName": "string"
}
],
"FinalSnapshotAvailable": true|false,
"CleanupAndTagging": [
{
"Success": true|false
},
{
"Message": "string"
}
],
"Publish": {
"MD5OfMessageBody": "string",
"MessageId": "string",
"SdkHttpMetadata": {
"HttpHeaders": {
"Content-Length": "string",
"Content-Type": "string",
"Date": datetime(2019, 1, 1),
"x-amzn-RequestId": "string"
},
"HttpStatusCode": 123
},
"SdkResponseMetadata": {
"RequestId": "string"
}
}
}