ConnectorTypeSCP
class connector_types.connector_type_scp.ConnectorTypeSCP
Copy a file from a SCP remote host to Cloudomation Engine or vice-versa.
This connector type uses SCP to copy a single file from a remote host to Cloudomation Engine or to copy a sigle file from Cloudomation Engine to a remote host.
You can also use this connector as an SFTP connector with limited functionality (only for file transfer, not listing or manipulating directories), as they both use port 22.
The SFTP protocol should not be confused with FTP. While similar in names, SFTP and FTP use different protocols and offer different ways of transferring files. If you want to use the FTP protocol, refer to ConnectorTypeFTP
For more on the differences between SFTP and FTP refer to Difference between FTP and SFTP
Input Schema
-
hostnameThe hostname or IP to use.
Type:
string -
portType:
anyOfOptions: -
usernameThe user name to use.
Type:
string -
passwordThe password to use to authenticate. Either "password" or "key" must be specified.
Type:
anyOfOptions: -
hostkeyType:
anyOfOptions: -
keyThe SSH private key to use to authenticate. Either "password" or "key" must be specified.
Type:
anyOfOptions: -
srcThe path of the source file to copy. Use the format "cloudomation:<path>" to copy a file from Cloudomation Engine.
Type:
string -
dstThe path of the destination file. Use the format "cloudomation:<path>" to copy a file to Cloudomation Engine.
Type:
string -
connect_timeoutHow long to wait for the SSH connection to be established.
Type:
integerDefault:
60 -
copy_timeoutHow long to wait for the copy to finish.
Type:
integerDefault:
60
Output Schema
Constants
ssl_context_inputs = ['check_hostname', 'client_cert', 'client_key', 'server_ca']Example
import flow_api
def handler(system: flow_api.System, this: flow_api.Execution, inputs: dict):
this.connect(
connector_type='SCP',
hostname='my-ssh-server',
hostkey='ssh-rsa AAAAB3NzaC1yc2E...',
username='kevin',
key='-----BEGIN RSA PRIVATE KEY-----\nMII...',
name='copy apache error log from host',
src='/var/log/httpd-error.log',
dst='cloudomation:apache-error.log',
)
error_log_content = system.file('apache-error.log').get_text_content()
auth_failure_count = error_log_content.count('authentication failure')
this.log(f'there are {auth_failure_count} authentication failures')
return this.success('all done')