

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# AWS Transfer Family alur kerja terkelola
<a name="transfer-workflows"></a>

 AWS Transfer Family mendukung alur kerja terkelola untuk pemrosesan file. Dengan alur kerja terkelola, Anda dapat memulai alur kerja setelah file ditransfer melalui SFTP, FTPS, atau FTP. Dengan menggunakan fitur ini, Anda dapat dengan aman dan hemat biaya memenuhi persyaratan kepatuhan Anda untuk pertukaran file business-to-business (B2B) dengan mengoordinasikan semua langkah yang diperlukan untuk pemrosesan file. Selain itu, Anda mendapat manfaat dari end-to-end audit dan visibilitas.

![\[Diagram alir yang menunjukkan bagaimana alur kerja terkelola membantu pemrosesan file.\]](http://docs.aws.amazon.com/id_id/transfer/latest/userguide/images/workflows-diagram.png)


Dengan mengatur tugas pemrosesan file, alur kerja terkelola membantu Anda memproses data sebelum dikonsumsi oleh aplikasi hilir. Tugas pemrosesan file tersebut mungkin termasuk:
+ Memindahkan file ke folder khusus pengguna.
+ Mendekripsi file sebagai bagian dari alur kerja.
+ Menandai file.
+ Melakukan pemrosesan kustom dengan membuat dan melampirkan AWS Lambda fungsi ke alur kerja.
+ Mengirim pemberitahuan ketika file telah berhasil ditransfer. (Untuk posting blog yang merinci kasus penggunaan ini, lihat [Menyesuaikan pemberitahuan pengiriman file menggunakan alur kerja AWS Transfer Family terkelola](https://aws.amazon.com/blogs/storage/customize-file-delivery-notifications-using-aws-transfer-family-managed-workflows/).)

Untuk dengan cepat mereplikasi dan menstandarisasi tugas pemrosesan file pasca-unggah umum yang mencakup beberapa unit bisnis di organisasi Anda, Anda dapat menerapkan alur kerja dengan menggunakan infrastruktur sebagai kode (IAc). Anda dapat menentukan alur kerja terkelola yang akan dimulai pada file yang diunggah secara penuh. Anda juga dapat menentukan alur kerja terkelola yang berbeda untuk dimulai pada file yang hanya diunggah sebagian karena pemutusan sesi prematur. Penanganan pengecualian bawaan membantu Anda bereaksi dengan cepat terhadap hasil pemrosesan file, sambil menawarkan Anda kontrol atas cara menangani kegagalan. Selain itu, setiap langkah alur kerja menghasilkan log terperinci, yang dapat Anda audit untuk melacak garis keturunan data.

Untuk memulai, lakukan tugas-tugas berikut:

1. Siapkan alur kerja Anda agar berisi tindakan pra-pemrosesan, seperti menyalin, menandai, dan langkah-langkah lain berdasarkan kebutuhan Anda. Lihat [Buat alur kerja](create-workflow.md) untuk detail.

1. Konfigurasikan peran eksekusi, yang digunakan Transfer Family untuk menjalankan alur kerja. Lihat [Kebijakan IAM untuk alur kerja](workflow-execution-role.md) untuk detail.

1. Petakan alur kerja ke server, sehingga pada saat kedatangan file, tindakan yang ditentukan dalam alur kerja ini dievaluasi dan dimulai secara real time. Lihat [Konfigurasikan dan jalankan alur kerja](create-workflow.md#configure-workflow) untuk detail.

**Informasi terkait**
+ Untuk memantau eksekusi alur kerja Anda, lihat. [Menggunakan CloudWatch metrik untuk server Transfer Family](metrics.md)
+ Untuk detail log eksekusi dan informasi pemecahan masalah, lihat. [Memecahkan masalah kesalahan terkait alur kerja menggunakan Amazon CloudWatch](workflow-issues.md#workflows-cloudwatch-errors)
+ Transfer Family menyediakan posting blog dan lokakarya yang memandu Anda membangun solusi transfer file. Solusi ini memanfaatkan AWS Transfer Family SFTP/FTPS endpoint terkelola dan Amazon Cognito dan DynamoDB untuk manajemen pengguna. 

  Posting blog tersedia di [Menggunakan Amazon Cognito sebagai penyedia identitas dengan AWS Transfer Family dan Amazon S3](https://aws.amazon.com/blogs/storage/using-amazon-cognito-as-an-identity-provider-with-aws-transfer-family-and-amazon-s3/). Anda dapat melihat detail untuk lokakarya [di sini](https://catalog.workshops.aws/transfer-family-sftp/en-US). 
+ Video berikut memberikan pengantar singkat tentang alur kerja yang dikelola Transfer Family.  
[![AWS Videos](http://img.youtube.com/vi/https://www.youtube.com/embed/t-iNqCRospw/0.jpg)](http://www.youtube.com/watch?v=https://www.youtube.com/embed/t-iNqCRospw)
+ [Lokakarya berikut menyediakan laboratorium langsung untuk membangun alur kerja yang sepenuhnya otomatis dan digerakkan oleh peristiwa yang melibatkan transfer file ke atau dari server SFTP eksternal ke Amazon S3, dan pra dan pasca pemrosesan umum dari file-file tersebut: Lokakarya MFT berbasis peristiwa.](https://catalog.us-east-1.prod.workshops.aws/workshops/e55c90e0-bbb0-47e1-be83-6bafa3a59a8a/en-US)

  Video ini memberikan jalan-jalan melalui lokakarya ini.  
[![AWS Videos](http://img.youtube.com/vi/https://www.youtube.com/embed/oojopisG4lA/0.jpg)](http://www.youtube.com/watch?v=https://www.youtube.com/embed/oojopisG4lA)

**Topics**
+ [Buat alur kerja](create-workflow.md)
+ [Gunakan langkah-langkah yang telah ditentukan](nominal-steps-workflow.md)
+ [Gunakan langkah-langkah pemrosesan file khusus](custom-step-details.md)
+ [Kebijakan IAM untuk alur kerja](workflow-execution-role.md)
+ [Penanganan pengecualian untuk alur kerja](#exception-workflow)
+ [Pantau eksekusi alur kerja](cloudwatch-workflow.md)
+ [Buat alur kerja dari template](workflow-template.md)
+ [Menghapus alur kerja dari server Transfer Family](#remove-workflow-association)
+ [Pembatasan dan batasan alur kerja yang dikelola](#limitations-workflow)

Untuk bantuan selengkapnya untuk memulai alur kerja terkelola, lihat sumber daya berikut: 
+ AWS Transfer Family video demo [alur kerja terkelola](https://www.youtube.com/watch?v=t-iNqCRospw)
+ [Membangun platform transfer file cloud-native menggunakan AWS Transfer Family alur kerja posting blog](https://aws.amazon.com/blogs/architecture/building-a-cloud-native-file-transfer-platform-using-aws-transfer-family-workflows/)

# Buat alur kerja
<a name="create-workflow"></a>

Anda dapat membuat alur kerja terkelola menggunakan Konsol Manajemen AWS, seperti yang dijelaskan dalam topik ini. Untuk membuat proses pembuatan alur kerja semudah mungkin, panel bantuan kontekstual tersedia untuk sebagian besar bagian di konsol.

Alur kerja memiliki dua jenis langkah:
+ **Langkah nominal** — Langkah nominal adalah langkah pemrosesan file yang ingin Anda terapkan ke file yang masuk. Jika Anda memilih lebih dari satu langkah nominal, setiap langkah diproses dalam urutan linier.
+ **Langkah penanganan pengecualian - Penangan pengecualian adalah langkah** pemrosesan file yang AWS Transfer Family dijalankan jika ada langkah nominal yang gagal atau mengakibatkan kesalahan validasi.

**Buat alur kerja**

1. Buka AWS Transfer Family konsol di [https://console.aws.amazon.com/transfer/](https://console.aws.amazon.com/transfer/).

1. Di panel navigasi kiri, pilih **Alur kerja**.

1. Pada halaman **Alur kerja**, pilih **Buat alur kerja**.

1. Pada halaman **Buat alur kerja**, masukkan deskripsi. Deskripsi ini muncul di halaman **Alur Kerja**.

1. Di bagian **Langkah nominal**, pilih **Tambah langkah**. Tambahkan satu atau lebih langkah.

   1. Pilih jenis langkah dari opsi yang tersedia. Untuk informasi selengkapnya tentang berbagai jenis langkah, lihat[Gunakan langkah-langkah yang telah ditentukan](nominal-steps-workflow.md).

   1. Pilih **Berikutnya**, lalu konfigurasikan parameter untuk langkah tersebut. 

   1. Pilih **Berikutnya**, lalu tinjau detail untuk langkahnya. 

   1. Pilih **Buat langkah** untuk menambahkan langkah dan melanjutkan.

   1. Lanjutkan menambahkan langkah-langkah sesuai kebutuhan. Jumlah maksimum langkah dalam alur kerja adalah 8.

   1. Setelah Anda menambahkan semua langkah nominal yang diperlukan, gulir ke bawah ke **penangan Exception - bagian *opsional***, dan pilih **Tambah langkah**. 
**catatan**  
Agar Anda diberitahu tentang kegagalan secara real time, kami sarankan Anda menyiapkan penangan pengecualian dan langkah-langkah untuk mengeksekusi ketika alur kerja Anda gagal.

1. Untuk mengonfigurasi penangan pengecualian, tambahkan langkah dengan cara yang sama seperti yang dijelaskan sebelumnya. Jika file menyebabkan langkah apa pun untuk melempar pengecualian, penangan pengecualian Anda dipanggil satu per satu. 

1. (Opsional) Gulir ke bawah ke bagian **Tag**, dan tambahkan tag untuk alur kerja Anda.

1. Tinjau konfigurasi, dan pilih **Buat alur kerja**. 
**penting**  
Setelah membuat alur kerja, Anda tidak dapat mengeditnya, jadi pastikan untuk meninjau konfigurasi dengan cermat.

## Konfigurasikan dan jalankan alur kerja
<a name="configure-workflow"></a>

Sebelum Anda dapat menjalankan alur kerja, Anda harus mengaitkannya dengan server Transfer Family.

**Untuk mengonfigurasi Transfer Family untuk menjalankan alur kerja pada file yang diunggah**

1. Buka AWS Transfer Family konsol di [https://console.aws.amazon.com/transfer/](https://console.aws.amazon.com/transfer/).

1. Di panel navigasi kiri, pilih **Server**. 
   + Untuk menambahkan alur kerja ke server yang ada, pilih server yang ingin Anda gunakan untuk alur kerja Anda.
   + Atau, buat server baru dan tambahkan alur kerja ke dalamnya. Untuk informasi selengkapnya, lihat [Mengkonfigurasi titik akhir server SFTP, FTPS, atau FTP](tf-server-endpoint.md).

1. Pada halaman detail untuk server, gulir ke bawah ke bagian **Detail tambahan**, lalu pilih **Edit**. 
**catatan**  
 Secara default, server tidak memiliki alur kerja terkait. Anda menggunakan bagian **Detail tambahan** untuk mengaitkan alur kerja dengan server yang dipilih. 

1. Pada halaman **Edit detail tambahan**, di bagian **Alur kerja terkelola**, pilih alur kerja yang akan dijalankan di semua unggahan.
**catatan**  
Jika Anda belum memiliki alur kerja, pilih **Buat Alur Kerja baru** untuk membuatnya.

   1. Pilih ID alur kerja yang akan digunakan. 

   1. Pilih peran eksekusi. Ini adalah peran yang diasumsikan Transfer Family saat menjalankan langkah-langkah alur kerja. Untuk informasi selengkapnya, lihat [Kebijakan IAM untuk alur kerja](workflow-execution-role.md). Pilih **Simpan**.  
![\[Layar alur kerja terkelola, menampilkan nilai untuk alur kerja dan peran eksekusi.\]](http://docs.aws.amazon.com/id_id/transfer/latest/userguide/images/workflows-addtoserver.png)

**catatan**  
Jika Anda tidak lagi ingin alur kerja dikaitkan dengan server, Anda dapat menghapus asosiasi. Lihat perinciannya di [Menghapus alur kerja dari server Transfer Family](transfer-workflows.md#remove-workflow-association).

**Untuk menjalankan alur kerja**

Untuk menjalankan alur kerja, Anda mengunggah file ke server Transfer Family yang dikonfigurasi dengan alur kerja terkait.

**catatan**  
Setiap kali Anda menghapus alur kerja dari server dan menggantinya dengan yang baru, atau memperbarui konfigurasi server (yang memengaruhi peran eksekusi alur kerja), Anda harus menunggu sekitar 10 menit sebelum menjalankan alur kerja baru. Server Transfer Family menyimpan cache detail alur kerja, dan dibutuhkan waktu 10 menit bagi server untuk menyegarkan cache-nya.  
Selain itu, Anda harus keluar dari sesi SFTP aktif apa pun, dan kemudian masuk kembali setelah masa tunggu 10 menit untuk melihat perubahannya.

**Example**  

```
# Execute a workflow
> sftp bob@s-1234567890abcdef0.server.transfer.us-east-1.amazonaws.com

Connected to s-1234567890abcdef0.server.transfer.us-east-1.amazonaws.com.
sftp> put doc1.pdf
Uploading doc1.pdf to /amzn-s3-demo-bucket/home/users/bob/doc1.pdf
doc1.pdf                                                                    100% 5013KB 601.0KB/s   00:08    
sftp> exit
>
```

Setelah file Anda diunggah, tindakan yang ditentukan dilakukan pada file Anda. Misalnya, jika alur kerja Anda berisi langkah penyalinan, file tersebut disalin ke lokasi yang Anda tentukan di langkah itu. Anda dapat menggunakan Amazon CloudWatch Logs untuk melacak langkah-langkah yang dijalankan dan status eksekusi mereka.

## Lihat detail alur kerja
<a name="view-details-workflow"></a>

Anda dapat melihat detail tentang alur kerja yang dibuat sebelumnya atau eksekusi alur kerja. Untuk melihat detail ini, Anda dapat menggunakan konsol atau AWS Command Line Interface (AWS CLI). 

------
#### [ Console ]

**Lihat detail alur kerja**

1. Buka AWS Transfer Family konsol di [https://console.aws.amazon.com/transfer/](https://console.aws.amazon.com/transfer/).

1. Di panel navigasi kiri, pilih **Alur kerja**. 

1. Pada halaman **Alur Kerja**, pilih alur kerja. 

   Halaman detail alur kerja terbuka.   
![\[Layar detail Alur kerja untuk alur kerja Transfer Family, yang menampilkan deskripsi, langkah, penangan pengecualian, dan eksekusi dalam penerbangan.\]](http://docs.aws.amazon.com/id_id/transfer/latest/userguide/images/workflows-overview.png)

------
#### [ CLI ]

Untuk melihat detail alur kerja, gunakan perintah `describe-workflow` CLI, seperti yang ditunjukkan pada contoh berikut. Ganti ID alur kerja `w-1234567890abcdef0` dengan nilai Anda sendiri. *Untuk informasi selengkapnya, lihat [menjelaskan alur kerja di Referensi](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/transfer/describe-workflow.html) Perintah.AWS CLI *

```
# View Workflow details
> aws transfer describe-workflow --workflow-id w-1234567890abcdef0
{
    "Workflow": {
        "Arn": "arn:aws:transfer:us-east-1:111122223333:workflow/w-1234567890abcdef0",
        "WorkflowId": "w-1234567890abcdef0",
        "Name": "Copy file to shared_files",
        "Steps": [
            {
                "Type": "COPY",
                "CopyStepDetails": {
                "Name": "Copy to shared",
                "FileLocation": {
                    "S3FileLocation": {
                        "Bucket": "amzn-s3-demo-bucket",
                        "Key": "home/shared_files/"
                    }
                }
                }
            }
        ],
        "OnException": {}
    }
}
```

------

Jika alur kerja Anda dibuat sebagai bagian dari AWS CloudFormation tumpukan, Anda dapat mengelola alur kerja menggunakan CloudFormation konsol ([https://console.aws.amazon.com/cloudformation](https://console.aws.amazon.com/cloudformation/)).

![\[Layar detail Alur kerja untuk alur kerja yang merupakan bagian dari AWS CloudFormation tumpukan, menampilkan pesan tempat Anda mengelola alur kerja ini. CloudFormation\]](http://docs.aws.amazon.com/id_id/transfer/latest/userguide/images/workflows-cloudformation-link.png)


# Gunakan langkah-langkah yang telah ditentukan
<a name="nominal-steps-workflow"></a>

Saat membuat alur kerja, Anda dapat memilih untuk menambahkan salah satu langkah yang telah ditentukan berikut yang dibahas dalam topik ini. Anda juga dapat memilih untuk menambahkan langkah-langkah pemrosesan file kustom Anda sendiri. Untuk informasi selengkapnya, lihat [Gunakan langkah-langkah pemrosesan file khusus](custom-step-details.md).

**Topics**
+ [Salin berkas](#copy-step-details)
+ [Dekripsi file](#decrypt-step-details)
+ [Berkas tag](#tag-step-details)
+ [Hapus berkas](#delete-step-details)
+ [Variabel bernama untuk alur kerja](#workflow-named-variables)
+ [Contoh tag dan hapus alur kerja](#sourcefile-workflow)

## Salin berkas
<a name="copy-step-details"></a>

Langkah salin file membuat salinan file yang diunggah di lokasi Amazon S3 baru. Saat ini, Anda dapat menggunakan langkah salin file hanya dengan Amazon S3.

Langkah copy file berikut menyalin file ke dalam `test` folder di*amzn-s3-demo-destination-bucket*. 

Jika langkah salin file bukan langkah pertama alur kerja Anda, Anda dapat menentukan **lokasi File**. Dengan menentukan lokasi file, Anda dapat menyalin file yang digunakan pada langkah sebelumnya atau file asli yang diunggah. Anda dapat menggunakan fitur ini untuk membuat beberapa salinan dari file asli sambil menjaga file sumber tetap utuh untuk arsip file dan penyimpanan catatan. Sebagai contoh, lihat [Contoh tag dan hapus alur kerja](#sourcefile-workflow).

![\[Layar alur kerja dengan Salin file yang dibuat dari langkah sebelumnya... tombol yang dipilih.\]](http://docs.aws.amazon.com/id_id/transfer/latest/userguide/images/workflows-step-copy.png)


### Berikan ember dan detail kunci
<a name="copy-provide-bucket"></a>

Anda harus memberikan nama bucket dan kunci untuk tujuan langkah salin file. Kuncinya bisa berupa nama jalur atau nama file. Apakah kunci diperlakukan sebagai nama jalur atau nama file ditentukan oleh apakah Anda mengakhiri kunci dengan karakter garis miring (`/`) maju.

Jika karakter terakhir adalah`/`, file Anda disalin ke folder, dan namanya tidak berubah. Jika karakter terakhir adalah alfanumerik, file yang Anda unggah diganti namanya menjadi nilai kunci. Dalam hal ini, jika file dengan nama itu sudah ada, perilaku tergantung pada pengaturan untuk bidang **Timpa yang ada**.
+ Jika **Timpa yang ada** dipilih, file yang ada diganti dengan file yang sedang diproses.
+ Jika **Timpa yang ada** tidak dipilih, tidak ada yang terjadi, dan pemrosesan alur kerja berhenti.
**Tip**  
Jika penulisan bersamaan dijalankan pada jalur file yang sama, hal itu dapat mengakibatkan perilaku yang tidak terduga saat menimpa file.

Misalnya, jika nilai kunci Anda`test/`, file yang Anda unggah akan disalin ke folder. `test` Jika nilai kunci Anda`test/today`, (dan **Timpa yang ada** dipilih) setiap file yang Anda unggah disalin ke file bernama `today` di `test` folder, dan setiap file berikutnya menimpa yang sebelumnya.

**catatan**  
Amazon S3 mendukung bucket dan objek, dan tidak memiliki hierarki. Namun, Anda dapat menggunakan awalan dan pembatas dalam nama kunci objek untuk menyiratkan hierarki dan mengatur data Anda dengan cara yang mirip dengan folder.

### Gunakan variabel bernama dalam langkah copy file
<a name="named-variable-copy"></a>

Dalam langkah salin file, Anda dapat menggunakan variabel untuk menyalin file Anda secara dinamis ke folder khusus pengguna. Saat ini, Anda dapat menggunakan `${transfer:UserName}` atau `${transfer:UploadDate}` sebagai variabel untuk menyalin file ke lokasi tujuan untuk pengguna tertentu yang mengunggah file, atau berdasarkan tanggal saat ini.

Dalam contoh berikut, jika pengguna `richard-roe` mengunggah file, itu akan disalin ke folder`amzn-s3-demo-destination-bucket/richard-roe/processed/`. Jika pengguna `mary-major` mengunggah file, itu akan disalin ke folder. `amzn-s3-demo-destination-bucket/mary-major/processed/`

![\[Layar parameter untuk langkah penyalinan, menunjukkan ember dan kunci, diparameterisasi menggunakan. UserName\]](http://docs.aws.amazon.com/id_id/transfer/latest/userguide/images/workflows-step-copy-dynamic.png)


Demikian pula, Anda dapat menggunakan `${transfer:UploadDate}` sebagai variabel untuk menyalin file ke lokasi tujuan yang dinamai untuk tanggal saat ini. Dalam contoh berikut, jika Anda menetapkan tujuan `${transfer:UploadDate}/processed` pada 1 Februari 2022, file yang diunggah akan disalin ke folder`amzn-s3-demo-destination-bucket/2022-02-01/processed/`.

![\[Layar parameter untuk langkah penyalinan, menunjukkan ember dan kunci, diparameterisasi menggunakan. UploadDate\]](http://docs.aws.amazon.com/id_id/transfer/latest/userguide/images/workflows-step-copy-dynamic-date.png)


Anda juga dapat menggunakan kedua variabel ini bersama-sama, menggabungkan fungsionalitasnya. Misalnya, Anda dapat mengatur **awalan key Destination** ke**folder/\$1\$1transfer:UserName\$1/\$1\$1transfer:UploadDate\$1/**, yang akan membuat folder bersarang, misalnya. `folder/marymajor/2023-01-05/`

### Izin IAM untuk langkah penyalinan
<a name="copy-step-iam"></a>

Agar langkah penyalinan berhasil, pastikan peran eksekusi untuk alur kerja Anda berisi izin berikut.

```
{
    "Sid": "ListBucket",
    "Effect": "Allow",
    "Action": "s3:ListBucket",
    "Resource": [
        "arn:aws:s3:::amzn-s3-demo-destination-bucket"
    ]
}, {
    "Sid": "HomeDirObjectAccess",
    "Effect": "Allow",
    "Action": [
        "s3:PutObject",
        "s3:GetObject",
        "s3:DeleteObjectVersion",
        "s3:DeleteObject",
        "s3:GetObjectVersion"
    ],
    "Resource": "arn:aws:s3:::amzn-s3-demo-destination-bucket/*"
}
```

**catatan**  
`s3:ListBucket`Izin hanya diperlukan jika Anda tidak memilih **Timpa yang sudah ada**. Izin ini memeriksa bucket Anda untuk melihat apakah file dengan nama yang sama sudah ada. Jika Anda telah memilih **Timpa yang sudah ada**, alur kerja tidak perlu memeriksa file, dan hanya bisa menulisnya.  
Jika file Amazon S3 Anda memiliki tag, Anda perlu menambahkan satu atau dua izin ke kebijakan IAM Anda.  
Tambahkan `s3:GetObjectTagging` file Amazon S3 yang tidak berversi.
Tambahkan `s3:GetObjectVersionTagging` untuk file Amazon S3 yang berversi.

## Dekripsi file
<a name="decrypt-step-details"></a>

Blog AWS penyimpanan memiliki posting yang menjelaskan cara mendekripsi file tanpa menulis kode apa pun menggunakan alur kerja Transfer Family Managed, [Enkripsi dan dekripsi file dengan PGP dan](https://aws.amazon.com/blogs/storage/encrypt-and-decrypt-files-with-pgp-and-aws-transfer-family/). AWS Transfer Family

### Algoritma enkripsi simetris yang didukung
<a name="symmetric-algorithms"></a>

Untuk dekripsi PGP, Transfer Family mendukung algoritma enkripsi simetris yang digunakan untuk mengenkripsi data file aktual dalam file PGP.
+ Untuk informasi rinci tentang algoritme enkripsi simetris yang didukung, lihat. [Algoritma enkripsi simetris PGP](key-management.md#pgp-symmetric-algorithms)
+ Untuk informasi tentang algoritma key pair PGP yang digunakan dengan algoritma simetris ini, lihat. [Algoritma key pair PGP](key-management.md#pgp-key-algorithms)

### Gunakan dekripsi PGP dalam alur kerja Anda
<a name="configure-decryption"></a>

Transfer Family memiliki dukungan bawaan untuk dekripsi Pretty Good Privacy (PGP). Anda dapat menggunakan dekripsi PGP pada file yang diunggah melalui SFTP, FTPS, atau FTP ke Amazon Simple Storage Service (Amazon S3) atau Amazon Elastic File System (Amazon EFS). 

Untuk menggunakan dekripsi PGP, Anda harus membuat dan menyimpan kunci pribadi PGP yang akan digunakan untuk dekripsi file Anda. Pengguna Anda kemudian dapat mengenkripsi file dengan menggunakan kunci enkripsi PGP yang sesuai sebelum mengunggah file ke server Transfer Family Anda. Setelah Anda menerima file terenkripsi, Anda dapat mendekripsi file-file tersebut dalam alur kerja Anda. Untuk tutorial detail, lihat [Menyiapkan alur kerja terkelola untuk mendekripsi file](workflow-decrypt-tutorial.md).

Untuk informasi tentang algoritma dan rekomendasi PGP yang didukung, lihat. [Enkripsi PGP dan algoritma dekripsi](key-management.md#pgp-encryption-algorithms)

**Untuk menggunakan dekripsi PGP dalam alur kerja Anda**

1. Identifikasi server Transfer Family untuk meng-host alur kerja Anda, atau buat yang baru. Anda harus memiliki ID server sebelum Anda dapat menyimpan kunci PGP Anda AWS Secrets Manager dengan nama rahasia yang benar.

1. Simpan kunci PGP Anda di AWS Secrets Manager bawah nama rahasia yang diperlukan. Lihat perinciannya di [Kelola kunci PGP](manage-pgp-keys.md). Alur kerja dapat secara otomatis menemukan kunci PGP yang benar untuk digunakan untuk dekripsi berdasarkan nama rahasia di Secrets Manager.
**catatan**  
Ketika Anda menyimpan rahasia di Secrets Manager, Anda Akun AWS dikenakan biaya. Untuk informasi tentang harga, lihat [AWS Secrets Manager Harga](https://aws.amazon.com/secrets-manager/pricing).

1. Enkripsi file dengan menggunakan key pair PGP Anda. (Untuk daftar klien yang didukung, lihat[Klien PGP yang didukung](pgp-key-clients.md).) Jika Anda menggunakan baris perintah, jalankan perintah berikut. Untuk menggunakan perintah ini, ganti `username@example.com` dengan alamat email yang Anda gunakan untuk membuat key pair PGP. Ganti `testfile.txt` dengan nama file yang ingin Anda enkripsi. 

   ```
   gpg -e -r username@example.com testfile.txt
   ```
**penting**  
Saat mengenkripsi file untuk digunakan dengan AWS Transfer Family alur kerja, selalu pastikan Anda menentukan penerima non-anonim menggunakan parameter. `-r` Enkripsi anonim (tanpa menentukan penerima) dapat menyebabkan kegagalan dekripsi dalam alur kerja karena sistem tidak akan dapat mengidentifikasi kunci mana yang akan digunakan untuk dekripsi. Informasi debugging untuk masalah ini tersedia di[Memecahkan masalah enkripsi penerima anonim](workflow-issues.md#workflows-decrypt-anonymous). 

1. Unggah file terenkripsi ke server Transfer Family Anda.

1. Konfigurasikan langkah dekripsi dalam alur kerja Anda. Untuk informasi selengkapnya, lihat [Tambahkan langkah dekripsi](#decrypt-step-procedure).

### Tambahkan langkah dekripsi
<a name="decrypt-step-procedure"></a>

Langkah dekripsi mendekripsi file terenkripsi yang diunggah ke Amazon S3 atau Amazon EFS sebagai bagian dari alur kerja Anda. Untuk detail tentang mengonfigurasi dekripsi, lihat. [Gunakan dekripsi PGP dalam alur kerja Anda](#configure-decryption)

Saat Anda membuat langkah dekripsi untuk alur kerja, Anda harus menentukan tujuan untuk file yang didekripsi. Anda juga harus memilih apakah akan menimpa file yang ada jika file sudah ada di lokasi tujuan. Anda dapat memantau hasil alur kerja dekripsi dan mendapatkan log audit untuk setiap file secara real time menggunakan Amazon Logs. CloudWatch 

Setelah Anda memilih jenis **file Dekripsi** untuk langkah Anda, halaman **Konfigurasi parameter** akan muncul. Isi nilai untuk bagian **Konfigurasi parameter dekripsi PGP**.

Opsi yang tersedia adalah sebagai berikut:
+ **Nama langkah** - Masukkan nama deskriptif untuk langkah tersebut.
+ **Lokasi file** — Dengan menentukan lokasi file, Anda dapat mendekripsi file yang digunakan pada langkah sebelumnya atau file asli yang diunggah. 
**catatan**  
Parameter ini tidak tersedia jika langkah ini adalah langkah pertama dari alur kerja.
+ **Tujuan untuk file yang didekripsi** — Pilih bucket Amazon S3 atau sistem file Amazon EFS sebagai tujuan untuk file yang didekripsi.
  + Jika memilih Amazon S3, Anda harus memberikan nama bucket tujuan dan awalan key tujuan. Untuk memparameterisasi awalan key tujuan dengan nama pengguna, **\$1\$1transfer:UserName\$1** masukkan untuk Destination **key** prefix. Demikian pula, untuk parameterisasi awalan key tujuan dengan tanggal upload, **\$1\$1Transfer:UploadDate\$1** masukkan untuk Destination **key** prefix.
  + Jika Anda memilih Amazon EFS, Anda harus menyediakan sistem dan jalur file tujuan.
**catatan**  
Opsi penyimpanan yang Anda pilih di sini harus sesuai dengan sistem penyimpanan yang digunakan oleh server Transfer Family yang terkait dengan alur kerja ini. Jika tidak, Anda akan menerima kesalahan saat mencoba menjalankan alur kerja ini.
+ **Timpa yang ada** — Jika Anda mengunggah file, dan file dengan nama file yang sama sudah ada di tujuan, perilaku tergantung pada pengaturan untuk parameter ini:
  + Jika **Timpa yang ada** dipilih, file yang ada diganti dengan file yang sedang diproses.
  + Jika **Timpa yang ada** tidak dipilih, tidak ada yang terjadi, dan pemrosesan alur kerja berhenti.
**Tip**  
Jika penulisan bersamaan dijalankan pada jalur file yang sama, hal itu dapat mengakibatkan perilaku yang tidak terduga saat menimpa file.

Tangkapan layar berikut menunjukkan contoh opsi yang mungkin Anda pilih untuk langkah dekripsi file Anda. 

![\[AWS Transfer Family Konsol, menampilkan bagian Konfigurasi parameter dekripsi PGP dengan nilai sampel.\]](http://docs.aws.amazon.com/id_id/transfer/latest/userguide/images/workflows-step-decrypt-details.png)


### Izin IAM untuk langkah dekripsi
<a name="decrypt-step-iam"></a>

Agar langkah dekripsi berhasil, pastikan peran eksekusi untuk alur kerja Anda berisi izin berikut.

```
{
    "Sid": "ListBucket",
    "Effect": "Allow",
    "Action": "s3:ListBucket",
    "Resource": [
        "arn:aws:s3:::amzn-s3-demo-destination-bucket"
    ]
}, {
    "Sid": "HomeDirObjectAccess",
    "Effect": "Allow",
    "Action": [
        "s3:PutObject",
        "s3:GetObject",
        "s3:DeleteObjectVersion",
        "s3:DeleteObject",
        "s3:GetObjectVersion"
    ],
    "Resource": "arn:aws:s3:::amzn-s3-demo-destination-bucket/*"
}, {
    "Sid": "Decrypt",
    "Effect": "Allow",
    "Action": [
        "secretsmanager:GetSecretValue",
    ],
    "Resource": "arn:aws:secretsmanager:region:account-id:secret:aws/transfer/*"
}
```

**catatan**  
`s3:ListBucket`Izin hanya diperlukan jika Anda tidak memilih **Timpa yang sudah ada**. Izin ini memeriksa bucket Anda untuk melihat apakah file dengan nama yang sama sudah ada. Jika Anda telah memilih **Timpa yang sudah ada**, alur kerja tidak perlu memeriksa file, dan hanya bisa menulisnya.  
Jika file Amazon S3 Anda memiliki tag, Anda perlu menambahkan satu atau dua izin ke kebijakan IAM Anda.  
Tambahkan `s3:GetObjectTagging` file Amazon S3 yang tidak berversi.
Tambahkan `s3:GetObjectVersionTagging` untuk file Amazon S3 yang berversi.

## Berkas tag
<a name="tag-step-details"></a>

Untuk menandai file yang masuk untuk pemrosesan hilir lebih lanjut, gunakan langkah tag. Masukkan nilai tag yang ingin Anda tetapkan ke file yang masuk. Saat ini, operasi tag hanya didukung jika Anda menggunakan Amazon S3 untuk penyimpanan server Transfer Family Anda.

Berikut contoh langkah tag menetapkan `scan_outcome` dan `clean` sebagai kunci tag dan nilai, masing-masing.

![\[Layar alur kerja yang menampilkan detail untuk langkah penandaan.\]](http://docs.aws.amazon.com/id_id/transfer/latest/userguide/images/workflows-step-tag.png)


Agar langkah tag berhasil, pastikan peran eksekusi untuk alur kerja Anda berisi izin berikut.

```
{
            "Sid": "Tag",
            "Effect": "Allow",
            "Action": [
                "s3:PutObjectTagging",
                "s3:PutObjectVersionTagging"
            ],
            "Resource": [
                "arn:aws:s3:::amzn-s3-demo-bucket/*"
            ]
}
```

**catatan**  
Jika alur kerja Anda berisi langkah tag yang berjalan sebelum langkah salin atau dekripsi, Anda perlu menambahkan satu atau dua izin ke kebijakan IAM Anda.  
Tambahkan `s3:GetObjectTagging` file Amazon S3 yang tidak berversi.
Tambahkan `s3:GetObjectVersionTagging` untuk file Amazon S3 yang berversi.

## Hapus berkas
<a name="delete-step-details"></a>

Untuk menghapus file yang diproses dari langkah alur kerja sebelumnya atau untuk menghapus file yang diunggah semula, gunakan langkah menghapus file.

![\[Layar alur kerja yang menampilkan detail untuk langkah penghapusan.\]](http://docs.aws.amazon.com/id_id/transfer/latest/userguide/images/workflows-step-delete.png)


Agar langkah penghapusan berhasil, pastikan peran eksekusi untuk alur kerja Anda berisi izin berikut.

```
{
            "Sid": "Delete",
            "Effect": "Allow",
            "Action": [
                "s3:DeleteObjectVersion",
                "s3:DeleteObject"
            ],
            "Resource": "arn:aws:secretsmanager:region:account-ID:secret:aws/transfer/*"
        }
```

## Variabel bernama untuk alur kerja
<a name="workflow-named-variables"></a>

Untuk langkah salin dan dekripsi, Anda dapat menggunakan variabel untuk melakukan tindakan secara dinamis. Saat ini, AWS Transfer Family mendukung variabel bernama berikut.
+ Gunakan `${transfer:UserName}` untuk menyalin atau mendekripsi file ke tujuan berdasarkan pengguna yang mengunggah file.
+ Gunakan `${transfer:UploadDate}` untuk menyalin atau mendekripsi file ke lokasi tujuan berdasarkan tanggal saat ini.

## Contoh tag dan hapus alur kerja
<a name="sourcefile-workflow"></a>

Contoh berikut menggambarkan alur kerja yang menandai file masuk yang perlu diproses oleh aplikasi hilir, seperti platform analisis data. Setelah menandai file yang masuk, alur kerja kemudian menghapus file yang awalnya diunggah untuk menghemat biaya penyimpanan.

------
#### [ Console ]

**Contoh tag dan pindahkan alur kerja**

1. Buka AWS Transfer Family konsol di [https://console.aws.amazon.com/transfer/](https://console.aws.amazon.com/transfer/).

1. Di panel navigasi kiri, pilih **Alur kerja**.

1. Pada halaman **Alur kerja**, pilih **Buat alur kerja**.

1. Pada halaman **Buat alur kerja**, masukkan deskripsi. Deskripsi ini muncul di halaman **Alur Kerja**.

1. Tambahkan langkah pertama (salin).

   1. Di bagian **Langkah nominal**, pilih **Tambah langkah**.

   1. Pilih **Salin file**, lalu pilih **Berikutnya**.

   1. Masukkan nama langkah, lalu pilih bucket tujuan dan key prefix.  
![\[Layar alur kerja yang menampilkan detail untuk langkah penyalinan, menampilkan bucket tujuan dan key prefix.\]](http://docs.aws.amazon.com/id_id/transfer/latest/userguide/images/workflows-step-copy-first-step.png)

   1. Pilih **Berikutnya**, lalu tinjau detail untuk langkahnya. 

   1. Pilih **Buat langkah** untuk menambahkan langkah dan melanjutkan.

1. Tambahkan langkah kedua (tag).

   1. Di bagian **Langkah nominal**, pilih **Tambah langkah**.

   1. Pilih **File Tag**, lalu pilih **Berikutnya**.

   1. Masukkan nama langkah.

   1. Untuk **lokasi File**, pilih **Tag file yang dibuat dari langkah sebelumnya**.

   1. Masukkan **Kunci** dan **Nilai**.  
![\[Layar Konfigurasi untuk langkah alur kerja penandaan, dengan Menandai file yang dibuat dari tombol radio langkah sebelumnya dipilih.\]](http://docs.aws.amazon.com/id_id/transfer/latest/userguide/images/workflows-step-tag.png)

   1. Pilih **Berikutnya**, lalu tinjau detail untuk langkahnya. 

   1. Pilih **Buat langkah** untuk menambahkan langkah dan melanjutkan.

1. Tambahkan langkah ketiga (hapus).

   1. Di bagian **Langkah nominal**, pilih **Tambah langkah**.

   1. Pilih **Hapus file**, lalu pilih **Berikutnya**.  
![\[Layar Konfigurasi untuk langkah menghapus alur kerja, dengan tombol Hapus radio file sumber asli yang dipilih.\]](http://docs.aws.amazon.com/id_id/transfer/latest/userguide/images/workflows-step-delete.png)

   1. Masukkan nama langkah.

   1. Untuk **lokasi File**, pilih **Hapus file sumber asli**.

   1. Pilih **Berikutnya**, lalu tinjau detail untuk langkahnya. 

   1. Pilih **Buat langkah** untuk menambahkan langkah dan melanjutkan.

1. Tinjau konfigurasi alur kerja, lalu pilih **Buat alur kerja**. 

------
#### [ CLI ]

**Contoh tag dan pindahkan alur kerja**

1. Simpan kode berikut ke dalam file; misalnya,`tagAndMoveWorkflow.json`. Ganti masing-masing `user input placeholder` dengan informasi Anda sendiri. 

   ```
   [
      {
          "Type": "COPY",
          "CopyStepDetails": {
             "Name": "CopyStep",
             "DestinationFileLocation": {
                "S3FileLocation": {
                   "Bucket": "amzn-s3-demo-bucket",
                   "Key": "test/"
                }
             }
          }
      },
      {
          "Type": "TAG",
          "TagStepDetails": {
             "Name": "TagStep",
             "Tags": [
                {
                   "Key": "name",
                   "Value": "demo"
                }
             ],
             "SourceFileLocation": "${previous.file}"
          }
      },
      {
         "Type": "DELETE",
         "DeleteStepDetails":{
            "Name":"DeleteStep",
            "SourceFileLocation": "${original.file}"
         }
     }
   ]
   ```

   Langkah pertama menyalin file yang diunggah ke lokasi Amazon S3 baru. Langkah kedua menambahkan tag (pasangan nilai kunci) ke file (`previous.file`) yang disalin ke lokasi baru. Dan, akhirnya, langkah ketiga menghapus file asli (`original.file`).

1. Buat alur kerja dari file yang disimpan. Ganti masing-masing `user input placeholder` dengan informasi Anda sendiri.

   ```
   aws transfer create-workflow --description "short-description" --steps file://path-to-file --region region-ID
   ```

   Contoh: 

   ```
   aws transfer create-workflow --description "copy-tag-delete workflow" --steps file://tagAndMoveWorkflow.json --region us-east-1
   ```
**catatan**  
Untuk detail selengkapnya tentang menggunakan file untuk memuat parameter, lihat [Cara memuat parameter dari file](https://docs.aws.amazon.com//cli/latest/userguide/cli-usage-parameters-file.html).

1. Perbarui server yang ada.
**catatan**  
Langkah ini mengasumsikan Anda sudah memiliki server Transfer Family dan Anda ingin mengaitkan alur kerja dengannya. Jika belum, lihat [Mengkonfigurasi titik akhir server SFTP, FTPS, atau FTP](tf-server-endpoint.md). Ganti masing-masing `user input placeholder` dengan informasi Anda sendiri.

   ```
   aws transfer update-server --server-id server-ID --region region-ID 
     --workflow-details '{"OnUpload":[{ "WorkflowId": "workflow-ID","ExecutionRole": "execution-role-ARN"}]}'
   ```

   Contoh:

   ```
   aws transfer update-server --server-id s-1234567890abcdef0 --region us-east-2 
     --workflow-details '{"OnUpload":[{ "WorkflowId": "w-abcdef01234567890","ExecutionRole": "arn:aws:iam::111111111111:role/nikki-wolf-execution-role"}]}'
   ```

------

# Gunakan langkah-langkah pemrosesan file khusus
<a name="custom-step-details"></a>

Dengan menggunakan langkah pemrosesan file kustom, Anda dapat menggunakan logika pemrosesan file Anda Sendiri. AWS Lambda Setelah kedatangan file, server Transfer Family memanggil fungsi Lambda yang berisi logika pemrosesan file khusus, seperti mengenkripsi file, memindai malware, atau memeriksa jenis file yang salah. Dalam contoh berikut, AWS Lambda fungsi target digunakan untuk memproses file output dari langkah sebelumnya.

![\[Layar langkah khusus, dengan Terapkan pemrosesan kustom ke file yang dibuat dari radio langkah sebelumnya tombol dipilih, dan fungsi Lambda ditampilkan di bidang Target.\]](http://docs.aws.amazon.com/id_id/transfer/latest/userguide/images/workflows-step-custom.png)


**catatan**  
Untuk contoh fungsi Lambda, lihat. [Contoh fungsi Lambda untuk langkah alur kerja khusus](#example-workflow-lambda) Misalnya peristiwa (termasuk lokasi untuk file yang diteruskan ke Lambda), lihat. [Contoh peristiwa dikirim ke AWS Lambda saat file upload](#example-workflow-lambdas)

Dengan langkah alur kerja khusus, Anda harus mengonfigurasi fungsi Lambda untuk memanggil operasi API [SendWorkflowStepState](https://docs.aws.amazon.com/transfer/latest/APIReference/API_SendWorkflowStepState.html). `SendWorkflowStepState`memberitahukan eksekusi alur kerja bahwa langkah telah selesai dengan status sukses atau kegagalan. Status operasi `SendWorkflowStepState` API memanggil langkah penangan pengecualian atau langkah nominal dalam urutan linier, berdasarkan hasil fungsi Lambda. 

Jika fungsi Lambda gagal atau habis waktu, langkahnya gagal, dan Anda lihat `StepErrored` di log Anda CloudWatch . Jika fungsi Lambda adalah bagian dari langkah nominal dan fungsi merespons `SendWorkflowStepState` dengan `Status="FAILURE"` atau waktu habis, aliran berlanjut dengan langkah-langkah penangan pengecualian. Dalam hal ini, alur kerja tidak terus mengeksekusi langkah-langkah nominal yang tersisa (jika ada). Untuk detail selengkapnya, lihat [Penanganan pengecualian untuk alur kerja](transfer-workflows.md#exception-workflow).

Ketika Anda memanggil operasi `SendWorkflowStepState` API, Anda harus mengirim parameter berikut:

```
{
    "ExecutionId": "string",
    "Status": "string",
    "Token": "string",
    "WorkflowId": "string"
}
```

Anda dapat mengekstrak`ExecutionId`,`Token`, dan `WorkflowId` dari peristiwa masukan yang diteruskan ketika fungsi Lambda dijalankan (contoh ditampilkan di bagian berikut). `Status`Nilainya bisa berupa `SUCCESS` atau`FAILURE`. 

Untuk dapat memanggil operasi `SendWorkflowStepState` API dari fungsi Lambda, Anda harus menggunakan versi AWS SDK yang diterbitkan setelah [Alur Kerja Terkelola diperkenalkan](doc-history.md#workflows-introduced).

## Menggunakan beberapa fungsi Lambda secara berurutan
<a name="multiple-lambdas"></a>

Bila Anda menggunakan beberapa langkah kustom satu demi satu, opsi **lokasi File** bekerja secara berbeda daripada jika Anda hanya menggunakan satu langkah kustom. Transfer Family tidak mendukung meneruskan file yang diproses Lambda kembali untuk digunakan sebagai input langkah berikutnya. Jadi, jika Anda memiliki beberapa langkah khusus yang semuanya dikonfigurasi untuk menggunakan `previous.file` opsi, semuanya menggunakan lokasi file yang sama (lokasi file input untuk langkah kustom pertama).

**catatan**  
`previous.file`Pengaturan juga bekerja secara berbeda jika Anda memiliki langkah yang telah ditentukan (tag, salin, dekripsi, atau hapus) setelah langkah khusus. Jika langkah yang telah ditentukan dikonfigurasi untuk menggunakan `previous.file` pengaturan, langkah yang telah ditentukan menggunakan file input yang sama yang digunakan oleh langkah kustom. File yang diproses dari langkah kustom tidak diteruskan ke langkah yang telah ditentukan. 

## Mengakses file setelah pemrosesan kustom
<a name="process-uploaded-file"></a>

Jika Anda menggunakan Amazon S3 sebagai penyimpanan, dan jika alur kerja menyertakan langkah khusus yang melakukan tindakan pada file yang diunggah semula, langkah selanjutnya tidak dapat mengakses file yang diproses tersebut. Artinya, langkah apa pun setelah langkah khusus tidak dapat mereferensikan file yang diperbarui dari output langkah khusus. 

Misalnya, Anda memiliki tiga langkah berikut dalam alur kerja Anda. 
+ **Langkah 1** - Unggah file bernama`example-file.txt`.
+ **Langkah 2** — Memanggil fungsi Lambda yang `example-file.txt` berubah dalam beberapa cara.
+ **Langkah 3** — Mencoba untuk melakukan pemrosesan lebih lanjut pada versi terbaru dari`example-file.txt`.

Jika Anda mengonfigurasi `sourceFileLocation` untuk Langkah 3`${original.file}`, Langkah 3 menggunakan lokasi file asli dari saat server mengunggah file ke penyimpanan di Langkah 1. Jika Anda menggunakan `${previous.file}` untuk Langkah 3, Langkah 3 menggunakan kembali lokasi file yang Langkah 2 digunakan sebagai input.

Oleh karena itu, Langkah 3 menyebabkan kesalahan. Misalnya, jika langkah 3 mencoba menyalin yang diperbarui`example-file.txt`, Anda menerima kesalahan berikut:

```
{
    "type": "StepErrored",
    "details": {
        "errorType": "NOT_FOUND",
        "errorMessage": "ETag constraint not met (Service: null; Status Code: 412; Error Code: null; Request ID: null; S3 Extended Request ID: null; Proxy: null)",
        "stepType": "COPY",
        "stepName": "CopyFile"
    },
```

Kesalahan ini terjadi karena langkah kustom memodifikasi tag entitas (ETag) `example-file.txt` agar tidak cocok dengan file asli.

**catatan**  
Perilaku ini tidak terjadi jika Anda menggunakan Amazon EFS karena Amazon EFS tidak menggunakan tag entitas untuk mengidentifikasi file.

## Contoh peristiwa dikirim ke AWS Lambda saat file upload
<a name="example-workflow-lambdas"></a>

Contoh berikut menunjukkan peristiwa yang dikirim ke AWS Lambda ketika file upload selesai. Salah satu contoh menggunakan server Transfer Family tempat domain dikonfigurasi dengan Amazon S3. Contoh lainnya menggunakan server Transfer Family di mana domain menggunakan Amazon EFS. 

------
#### [ Custom step that uses an Amazon S3 domain ]

```
{
    "token": "MzI0Nzc4ZDktMGRmMi00MjFhLTgxMjUtYWZmZmRmODNkYjc0",
    "serviceMetadata": {
        "executionDetails": {
            "workflowId": "w-1234567890example",
            "executionId": "abcd1234-aa11-bb22-cc33-abcdef123456"
        },
        "transferDetails": {
            "sessionId": "36688ff5d2deda8c",
            "userName": "myuser",
            "serverId": "s-example1234567890"
        }
    },
    "fileLocation": {
        "domain": "S3",
        "bucket": "amzn-s3-demo-bucket",
        "key": "path/to/mykey",
        "eTag": "d8e8fca2dc0f896fd7cb4cb0031ba249",
        "versionId": null
    }
}
```

------
#### [ Custom step that uses an Amazon EFS domain ]

```
{
    "token": "MTg0N2Y3N2UtNWI5Ny00ZmZlLTk5YTgtZTU3YzViYjllNmZm",
    "serviceMetadata": {
        "executionDetails": {
            "workflowId": "w-1234567890example",
            "executionId": "abcd1234-aa11-bb22-cc33-abcdef123456"
        },
        "transferDetails": {
            "sessionId": "36688ff5d2deda8c",
            "userName": "myuser",
            "serverId": "s-example1234567890"
        }
    },
    "fileLocation": {
        "domain": "EFS",
        "fileSystemId": "fs-1234567",
        "path": "/path/to/myfile"
    }
}
```

------

## Contoh fungsi Lambda untuk langkah alur kerja khusus
<a name="example-workflow-lambda"></a>

Fungsi Lambda berikut mengekstrak informasi mengenai status eksekusi, dan kemudian memanggil operasi [SendWorkflowStepState](https://docs.aws.amazon.com/transfer/latest/APIReference/API_SendWorkflowStepState.html)API untuk mengembalikan status ke alur kerja untuk langkah tersebut—baik atau. `SUCCESS` `FAILURE` Sebelum fungsi Anda memanggil operasi `SendWorkflowStepState` API, Anda dapat mengonfigurasi Lambda untuk mengambil tindakan berdasarkan logika alur kerja Anda. 

```
import json
import boto3

transfer = boto3.client('transfer')

def lambda_handler(event, context):
    print(json.dumps(event))

    # call the SendWorkflowStepState API to notify the workflow about the step's SUCCESS or FAILURE status
    response = transfer.send_workflow_step_state(
        WorkflowId=event['serviceMetadata']['executionDetails']['workflowId'],
        ExecutionId=event['serviceMetadata']['executionDetails']['executionId'],
        Token=event['token'],
        Status='SUCCESS|FAILURE'
    )

    print(json.dumps(response))

    return {
      'statusCode': 200,
      'body': json.dumps(response)
    }
```

## Izin IAM untuk langkah khusus
<a name="custom-step-iam"></a>

Agar langkah yang memanggil Lambda berhasil, pastikan peran eksekusi untuk alur kerja Anda berisi izin berikut.

```
{
    "Sid": "Custom",
    "Effect": "Allow",
    "Action": [
        "lambda:InvokeFunction"
    ],
    "Resource": [
        "arn:aws:lambda:region:account-id:function:function-name"
    ]
}
```

# Kebijakan IAM untuk alur kerja
<a name="workflow-execution-role"></a>

Ketika Anda menambahkan alur kerja ke server, Anda harus memilih peran eksekusi. Server menggunakan peran ini ketika menjalankan alur kerja. Jika peran tidak memiliki izin yang tepat, AWS Transfer Family tidak dapat menjalankan alur kerja. 

Bagian ini menjelaskan satu kemungkinan set izin AWS Identity and Access Management (IAM) yang dapat Anda gunakan untuk menjalankan alur kerja. Contoh lain dijelaskan nanti dalam topik ini. 

**catatan**  
Jika file Amazon S3 Anda memiliki tag, Anda perlu menambahkan satu atau dua izin ke kebijakan IAM Anda.  
Tambahkan `s3:GetObjectTagging` file Amazon S3 yang tidak berversi.
Tambahkan `s3:GetObjectVersionTagging` untuk file Amazon S3 yang berversi.

**Untuk membuat peran eksekusi untuk alur kerja Anda**

1. Buat peran IAM baru, dan tambahkan kebijakan AWS terkelola `AWSTransferFullAccess` ke peran tersebut. Untuk informasi selengkapnya tentang membuat peran IAM baru, lihat[Buat peran dan kebijakan IAM](requirements-roles.md).

1. Buat kebijakan lain dengan izin berikut, dan lampirkan ke peran Anda. Ganti masing-masing `user input placeholder` dengan informasi Anda sendiri.  
****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Sid": "ConsoleAccess",
               "Effect": "Allow",
               "Action": "s3:GetBucketLocation",
               "Resource": "*"
           },
           {
               "Sid": "ListObjectsInBucket",
               "Effect": "Allow",
               "Action": "s3:ListBucket",
               "Resource": [
                   "arn:aws:s3:::amzn-s3-demo-bucket"
               ]
           },
           {
               "Sid": "AllObjectActions",
               "Effect": "Allow",
               "Action": "s3:*Object",
               "Resource": [
                   "arn:aws:s3:::amzn-s3-demo-bucket/*"
               ]
           },
           {
               "Sid": "GetObjectVersion",
               "Effect": "Allow",
               "Action": "s3:GetObjectVersion",
               "Resource": [
                   "arn:aws:s3:::amzn-s3-demo-bucket/*"
               ]
           },
           {
               "Sid": "Custom",
               "Effect": "Allow",
               "Action": [
                   "lambda:InvokeFunction"
               ],
               "Resource": [
                   "arn:aws:lambda:us-east-1:123456789012:function:function-name"
               ]
           },
           {
               "Sid": "Tag",
               "Effect": "Allow",
               "Action": [
                   "s3:PutObjectTagging",
                   "s3:PutObjectVersionTagging"
               ],
               "Resource": [
                   "arn:aws:s3:::amzn-s3-demo-bucket/*"
               ]
           }
       ]
   }
   ```

1. Simpan peran ini dan tentukan sebagai peran eksekusi saat Anda menambahkan alur kerja ke server.
**catatan**  
Ketika Anda membangun peran IAM, AWS merekomendasikan agar Anda membatasi akses ke sumber daya Anda sebanyak mungkin untuk alur kerja Anda.

## Hubungan kepercayaan alur kerja
<a name="workflows-trust"></a>

Peran eksekusi alur kerja juga membutuhkan hubungan kepercayaan dengan`transfer.amazonaws.com`. Untuk membangun hubungan kepercayaan AWS Transfer Family, lihat[Untuk membangun hubungan kepercayaan](requirements-roles.md#establish-trust-transfer).

Saat Anda membangun hubungan kepercayaan Anda, Anda juga dapat mengambil langkah-langkah untuk menghindari masalah *wakil yang membingungkan*. Untuk deskripsi masalah ini, serta contoh cara menghindarinya, lihat[Pencegahan "confused deputy" lintas layanan](confused-deputy.md).

## Contoh peran eksekusi: Dekripsi, salin, dan tag
<a name="example-workflow-role-copy-tag"></a>

Jika Anda memiliki alur kerja yang menyertakan langkah penandaan, penyalinan, dan dekripsi, Anda dapat menggunakan kebijakan IAM berikut. Ganti masing-masing `user input placeholder` dengan informasi Anda sendiri. 

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "CopyRead",
            "Effect": "Allow",
            "Action": [
                "s3:GetObject",
                "s3:GetObjectTagging",
                "s3:GetObjectVersionTagging"
            ],
            "Resource": "arn:aws:s3:::amzn-s3-demo-source-bucket/*"
        },
        {
            "Sid": "CopyWrite",
            "Effect": "Allow",
            "Action": [
                "s3:PutObject",
                "s3:PutObjectTagging"
            ],
            "Resource": "arn:aws:s3:::amzn-s3-demo-destination-bucket/*"
        },
        {
            "Sid": "CopyList",
            "Effect": "Allow",
            "Action": "s3:ListBucket",
            "Resource": [
                "arn:aws:s3:::amzn-s3-demo-source-bucket",
                "arn:aws:s3:::amzn-s3-demo-destination-bucket"
            ]
        },
        {
            "Sid": "Tag",
            "Effect": "Allow",
            "Action": [
                "s3:PutObjectTagging",
                "s3:PutObjectVersionTagging"
            ],
            "Resource": "arn:aws:s3:::amzn-s3-demo-destination-bucket/*",
            "Condition": {
                "StringEquals": {
                    "s3:RequestObjectTag/Archive": "yes"
                }
            }
        },
        {
            "Sid": "ListBucket",
            "Effect": "Allow",
            "Action": "s3:ListBucket",
            "Resource": [
                "arn:aws:s3:::amzn-s3-demo-destination-bucket"
            ]
        },
        {
            "Sid": "HomeDirObjectAccess",
            "Effect": "Allow",
            "Action": [
                "s3:PutObject",
                "s3:GetObject",
                "s3:DeleteObjectVersion",
                "s3:DeleteObject",
                "s3:GetObjectVersion"
            ],
            "Resource": "arn:aws:s3:::amzn-s3-demo-destination-bucket/*"
        },
        {
            "Sid": "Decrypt",
            "Effect": "Allow",
            "Action": [
                "secretsmanager:GetSecretValue"
            ],
            "Resource": "arn:aws:secretsmanager:us-east-1:123456789012:secret:aws/transfer/*"
        }
    ]
}
```

## Contoh peran eksekusi: Jalankan fungsi dan hapus
<a name="example-workflow-role-custom-delete"></a>

Dalam contoh ini, Anda memiliki alur kerja yang memanggil fungsi. AWS Lambda Jika alur kerja menghapus file yang diunggah dan memiliki langkah penangan pengecualian untuk menindaklanjuti eksekusi alur kerja yang gagal pada langkah sebelumnya, gunakan kebijakan IAM berikut. Ganti masing-masing `user input placeholder` dengan informasi Anda sendiri. 

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "Delete",
            "Effect": "Allow",
            "Action": [
                "s3:DeleteObject",
                "s3:DeleteObjectVersion"
            ],
            "Resource": "arn:aws:s3:::bucket-name"
        },
        {
            "Sid": "Custom",
            "Effect": "Allow",
            "Action": [
                "lambda:InvokeFunction"
            ],
            "Resource": [
                "arn:aws:lambda:us-east-1:123456789012:function:function-name"
            ]
        }
    ]
}
```

## Penanganan pengecualian untuk alur kerja
<a name="exception-workflow"></a>

Jika terjadi kesalahan selama eksekusi alur kerja, langkah-langkah penanganan pengecualian yang Anda tentukan akan dijalankan. Anda menentukan langkah penanganan kesalahan untuk alur kerja dengan cara yang sama seperti Anda menentukan langkah nominal untuk alur kerja. Misalnya, misalkan Anda telah mengonfigurasi pemrosesan kustom dalam langkah-langkah nominal untuk memvalidasi file yang masuk. Jika validasi file gagal, langkah penanganan pengecualian dapat mengirim email ke administrator.

Contoh alur kerja berikut berisi dua langkah: 
+ Satu langkah nominal yang memeriksa apakah file yang diunggah dalam format CSV
+ Langkah penanganan pengecualian yang mengirim email jika file yang diunggah tidak dalam format CSV, dan langkah nominal gagal

Untuk memulai langkah penanganan pengecualian, AWS Lambda fungsi dalam langkah nominal harus merespons dengan. `Status="FAILURE"` Untuk informasi selengkapnya tentang penanganan kesalahan dalam alur kerja, lihat[Gunakan langkah-langkah pemrosesan file khusus](custom-step-details.md).

![\[\]](http://docs.aws.amazon.com/id_id/transfer/latest/userguide/images/workflow-exception-sample.png)


# Pantau eksekusi alur kerja
<a name="cloudwatch-workflow"></a>

Amazon CloudWatch memantau AWS sumber daya Anda dan aplikasi yang Anda jalankan AWS Cloud secara real time. Anda dapat menggunakan Amazon CloudWatch untuk mengumpulkan dan melacak metrik, yang merupakan variabel yang dapat Anda ukur untuk alur kerja Anda. Anda dapat melihat metrik alur kerja dan log gabungan menggunakan Amazon. CloudWatch

## CloudWatch logging untuk alur kerja
<a name="cloudwatch-workflow-logs"></a>

CloudWatch menyediakan audit dan pencatatan terkonsolidasi untuk kemajuan dan hasil alur kerja.

**Lihat CloudWatch log Amazon untuk alur kerja**

1. Buka CloudWatch konsol Amazon di [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/).

1. Di panel navigasi kiri, pilih **Log**, lalu pilih **Grup log**.

1. Pada halaman **Grup log**, pada bilah navigasi, pilih Wilayah yang benar untuk AWS Transfer Family server Anda.

1. Pilih grup log yang sesuai dengan server Anda.

   Misalnya, jika ID server Anda`s-1234567890abcdef0`, grup log Anda adalah`/aws/transfer/s-1234567890abcdef0`.

1. Pada halaman detail grup log untuk server Anda, aliran log terbaru ditampilkan. Ada dua aliran log untuk pengguna yang Anda jelajahi: 
   + Satu untuk setiap sesi Secure Shell (SSH) File Transfer Protocol (SFTP).
   + Satu untuk alur kerja yang sedang dijalankan untuk server Anda. Format untuk aliran log untuk alur kerja adalah`username.workflowID.uniqueStreamSuffix`.

   Misalnya, jika pengguna Anda`mary-major`, Anda memiliki aliran log berikut:

   ```
   mary-major-east.1234567890abcdef0
   mary.w-abcdef01234567890.021345abcdef6789
   ```
**catatan**  
 Pengidentifikasi alfanumerik 16 digit yang tercantum dalam contoh ini adalah fiktif. Nilai yang Anda lihat di Amazon CloudWatch berbeda. 

Halaman **peristiwa Log** untuk `mary-major-usa-east.1234567890abcdef0` menampilkan detail untuk setiap sesi pengguna, dan aliran `mary.w-abcdef01234567890.021345abcdef6789` log berisi detail untuk alur kerja. 

 Berikut ini adalah contoh aliran log untuk`mary.w-abcdef01234567890.021345abcdef6789`, berdasarkan alur kerja (`w-abcdef01234567890`) yang berisi langkah salin. 

```
{
    "type": "ExecutionStarted",
    "details": {
        "input": {
            "initialFileLocation": {
                "bucket": "amzn-s3-demo-bucket",
                "key": "mary/workflowSteps2.json",
                "versionId": "version-id",
                "etag": "etag-id"
            }
        }
    },
    "workflowId":"w-abcdef01234567890",
    "executionId":"execution-id",
    "transferDetails": {
        "serverId":"s-server-id",
        "username":"mary",
        "sessionId":"session-id"
    }
},
{
    "type":"StepStarted",
    "details": {
        "input": {
            "fileLocation": {
                "backingStore":"S3",
                "bucket":"amzn-s3-demo-bucket",
                "key":"mary/workflowSteps2.json",
                "versionId":"version-id",
                "etag":"etag-id"
            }
        },
        "stepType":"COPY",
        "stepName":"copyToShared"
    },
    "workflowId":"w-abcdef01234567890",
    "executionId":"execution-id",
    "transferDetails": {
        "serverId":"s-server-id",
        "username":"mary",
        "sessionId":"session-id"
    }
},
{
    "type":"StepCompleted",
    "details":{
        "output":{},
        "stepType":"COPY",
        "stepName":"copyToShared"
    },
    "workflowId":"w-abcdef01234567890",
    "executionId":"execution-id",
    "transferDetails":{
        "serverId":"server-id",
        "username":"mary",
        "sessionId":"session-id"
    }
},
{
    "type":"ExecutionCompleted",
    "details": {},
    "workflowId":"w-abcdef01234567890",
    "executionId":"execution-id",
    "transferDetails":{
        "serverId":"s-server-id",
        "username":"mary",
        "sessionId":"session-id"
    }
}
```

## CloudWatch metrik untuk alur kerja
<a name="cloudwatch-workflows-metrics"></a>

AWS Transfer Family menyediakan beberapa metrik untuk alur kerja. Anda dapat melihat metrik berapa banyak eksekusi alur kerja yang dimulai, diselesaikan dengan sukses, dan gagal pada menit sebelumnya. Semua CloudWatch metrik untuk Transfer Family dijelaskan dalam[Menggunakan CloudWatch metrik untuk server Transfer Family](metrics.md).

# Buat alur kerja dari template
<a name="workflow-template"></a>

Anda dapat menerapkan CloudFormation tumpukan yang membuat alur kerja dan server dari template. Prosedur ini berisi contoh yang dapat Anda gunakan untuk menyebarkan alur kerja dengan cepat.

**Untuk membuat CloudFormation tumpukan yang membuat AWS Transfer Family alur kerja dan server**

1. Buka CloudFormation konsol di [https://console.aws.amazon.com/cloudformation](https://console.aws.amazon.com/cloudformation/).

1. Simpan kode berikut ke file.

------
#### [ YAML ]

   ```
   AWSTemplateFormatVersion: 2010-09-09
   Resources:
     SFTPServer:
       Type: 'AWS::Transfer::Server'
       Properties:
         WorkflowDetails:
           OnUpload:
             - ExecutionRole: workflow-execution-role-arn
               WorkflowId: !GetAtt
                 - TransferWorkflow
                 - WorkflowId
     TransferWorkflow:
       Type: AWS::Transfer::Workflow
       Properties:
         Description: Transfer Family Workflows Blog
         Steps:
           - Type: COPY
             CopyStepDetails:
               Name: copyToUserKey
               DestinationFileLocation:
                 S3FileLocation:
                   Bucket: archived-records
                   Key: ${transfer:UserName}/
               OverwriteExisting: 'TRUE'
           - Type: TAG
             TagStepDetails:
               Name: tagFileForArchive
               Tags:
                 - Key: Archive
                   Value: yes
           - Type: CUSTOM
             CustomStepDetails:
               Name: transferExtract
               Target: arn:aws:lambda:region:account-id:function:function-name
               TimeoutSeconds: 60
           - Type: DELETE
             DeleteStepDetails:
               Name: DeleteInputFile
               SourceFileLocation: '${original.file}'
         Tags:
           - Key: Name
             Value: TransferFamilyWorkflows
   ```

------
#### [ JSON ]

   ```
   {
       "AWSTemplateFormatVersion": "2010-09-09",
       "Resources": {
           "SFTPServer": {
               "Type": "AWS::Transfer::Server",
               "Properties": {
                   "WorkflowDetails": {
                       "OnUpload": [
                           {
                               "ExecutionRole": "workflow-execution-role-arn",
                               "WorkflowId": {
                                   "Fn::GetAtt": [
                                       "TransferWorkflow",
                                       "WorkflowId"
                                   ]
                               }
                           }
                       ]
                   }
               }
           },
           "TransferWorkflow": {
               "Type": "AWS::Transfer::Workflow",
               "Properties": {
                   "Description": "Transfer Family Workflows Blog",
                   "Steps": [
                       {
                           "Type": "COPY",
                           "CopyStepDetails": {
                               "Name": "copyToUserKey",
                               "DestinationFileLocation": {
                                   "S3FileLocation": {
                                       "Bucket": "archived-records",
                                       "Key": "${transfer:UserName}/"
                                   }
                               },
                               "OverwriteExisting": "TRUE"
                           }
                       },
                       {
                           "Type": "TAG",
                           "TagStepDetails": {
                               "Name": "tagFileForArchive",
                               "Tags": [
                                   {
                                       "Key": "Archive",
                                       "Value": "yes"
                                   }
                               ]
                           }
                       },
                       {
                           "Type": "CUSTOM",
                           "CustomStepDetails": {
                               "Name": "transferExtract",
                               "Target": "arn:aws:lambda:region:account-id:function:function-name",
                               "TimeoutSeconds": 60
                           }
                       },
                       {
                           "Type": "DELETE",
                           "DeleteStepDetails": {
                               "Name": "DeleteInputFile",
                               "SourceFileLocation": "${original.file}"
                           }
                       }
                   ],
                   "Tags": [
                       {
                           "Key": "Name",
                           "Value": "TransferFamilyWorkflows"
                       }
                   ]
               }
           }
       }
   }
   ```

------

1. Ganti item berikut dengan nilai aktual Anda.
   + Ganti *`workflow-execution-role-arn`* dengan ARN untuk peran eksekusi alur kerja yang sebenarnya. Sebagai contoh, `arn:aws:transfer:us-east-2:111122223333:workflow/w-1234567890abcdef0`.
   + Ganti `arn:aws:lambda:region:account-id:function:function-name` dengan ARN untuk fungsi Lambda Anda. Misalnya, `arn:aws:lambda:us-east-2:123456789012:function:example-lambda-idp`.

1. Ikuti petunjuk untuk menerapkan CloudFormation tumpukan dari template yang ada di [Memilih template tumpukan](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-using-console-create-stack-template.html) di *Panduan AWS CloudFormation Pengguna*.

Setelah tumpukan digunakan, Anda dapat melihat detailnya di tab **Output** di CloudFormation konsol. Template membuat server AWS Transfer Family SFTP baru yang menggunakan pengguna yang dikelola layanan, dan alur kerja baru, dan mengaitkan alur kerja dengan server baru.

## Menghapus alur kerja dari server Transfer Family
<a name="remove-workflow-association"></a>

Jika Anda telah mengaitkan alur kerja dengan server Transfer Family, dan sekarang Anda ingin menghapus asosiasi tersebut, Anda dapat melakukannya dengan menggunakan konsol atau secara terprogram.

------
#### [ Console ]

**Untuk menghapus alur kerja dari server Transfer Family**

1. Buka AWS Transfer Family konsol di [https://console.aws.amazon.com/transfer/](https://console.aws.amazon.com/transfer/).

1. Di panel navigasi kiri, pilih **Server**.

1. Pilih pengenal untuk server di kolom **ID Server**.

1. Pada halaman detail untuk server, gulir ke bawah ke bagian **Detail tambahan**, lalu pilih **Edit**. 

1. Pada halaman **Edit detail tambahan**, di bagian **Alur kerja terkelola**, kosongkan informasi untuk semua pengaturan:
   + Pilih tanda hubung (-) dari daftar alur kerja untuk Alur **Kerja untuk upload file lengkap**.
   + Jika belum dihapus, pilih tanda hubung (-) dari daftar alur kerja untuk Alur Kerja untuk **unggahan file sebagian**.
   +  Pilih tanda hubung (-) dari daftar peran untuk **peran eksekusi alur kerja terkelola**.

   Jika Anda tidak melihat tanda hubung, gulir ke atas hingga Anda melihatnya, karena ini adalah nilai pertama di setiap menu.

   Layar akan terlihat seperti berikut ini.  
![\[Panel alur kerja terkelola, menampilkan semua parameter dihapus.\]](http://docs.aws.amazon.com/id_id/transfer/latest/userguide/images/workflows-remove-from-server.png)

1. Gulir ke bawah dan pilih **Simpan** untuk menyimpan perubahan Anda.

------
#### [ CLI ]

Anda menggunakan panggilan `update-server` (atau `UpdateServer` untuk API), dan memberikan argumen kosong untuk `OnUpload` dan `OnPartialUpload` parameter.

Dari AWS CLI, jalankan perintah berikut:

```
aws transfer update-server --server-id your-server-id --workflow-details '{"OnPartialUpload":[],"OnUpload":[]}'
```

Ganti `your-server-id` dengan ID untuk server Anda. Misalnya, jika ID server Anda`s-01234567890abcdef`, perintahnya adalah sebagai berikut:

```
aws transfer update-server --server-id s-01234567890abcdef --workflow-details '{"OnPartialUpload":[],"OnUpload":[]}'
```

------

## Pembatasan dan batasan alur kerja yang dikelola
<a name="limitations-workflow"></a>

**Pembatasan**

Pembatasan berikut saat ini berlaku untuk alur kerja pemrosesan pasca-unggah untuk. AWS Transfer Family
+  AWS Lambda Fungsi lintas akun dan lintas wilayah tidak didukung. Namun, Anda dapat menyalin seluruh akun, asalkan kebijakan AWS Identity and Access Management (IAM) Anda dikonfigurasi dengan benar.
+ Untuk semua langkah alur kerja, setiap bucket Amazon S3 yang diakses oleh alur kerja harus berada di wilayah yang sama dengan alur kerja itu sendiri.
+ Untuk langkah dekripsi, tujuan dekripsi harus cocok dengan sumber untuk Wilayah dan penyimpanan cadangan (misalnya, jika file yang akan didekripsi disimpan di Amazon S3, maka tujuan yang ditentukan juga harus di Amazon S3).
+ Hanya langkah kustom asinkron yang didukung.
+ Batas waktu langkah khusus adalah perkiraan. Artinya, mungkin perlu waktu sedikit lebih lama dari yang ditentukan. Selain itu, alur kerja tergantung pada fungsi Lambda. Oleh karena itu, jika fungsi tertunda selama eksekusi, alur kerja tidak menyadari penundaan.
+ Jika Anda melebihi batas pembatasan, Transfer Family tidak menambahkan operasi alur kerja ke antrian.
+ Alur kerja tidak dimulai untuk file yang memiliki ukuran 0. File dengan ukuran lebih besar dari 0 melakukan memulai alur kerja terkait.
+ Anda dapat melampirkan alur kerja pemrosesan file ke server Transfer Family yang menggunakan AS2 protokol: namun, AS2 pesan tidak menjalankan alur kerja yang dilampirkan ke server. 

**Batasan**

 Selain itu, batasan fungsional berikut berlaku untuk alur kerja untuk Transfer Family: 
+ Jumlah alur kerja per Wilayah, per akun, dibatasi hingga 10.
+ Batas waktu maksimum untuk langkah-langkah khusus adalah 30 menit.
+ Jumlah maksimum langkah dalam alur kerja adalah 8.
+ Jumlah maksimum tag per alur kerja adalah 50.
+ Jumlah maksimum eksekusi bersamaan yang berisi langkah dekripsi adalah 250 per alur kerja.
+ Anda dapat menyimpan maksimal 3 kunci pribadi PGP, per server Transfer Family, per pengguna.
+ Ukuran maksimum untuk file yang didekripsi adalah 10 GB.
+ Kami membatasi tingkat eksekusi baru menggunakan sistem [token bucket](https://en.wikipedia.org/wiki/Token_bucket) dengan kapasitas burst 100 dan tingkat isi ulang 1.
+ Setiap kali Anda menghapus alur kerja dari server dan menggantinya dengan yang baru, atau memperbarui konfigurasi server (yang memengaruhi peran eksekusi alur kerja), Anda harus menunggu sekitar 10 menit sebelum menjalankan alur kerja baru. Server Transfer Family menyimpan cache detail alur kerja, dan dibutuhkan waktu 10 menit bagi server untuk menyegarkan cache-nya.

  Selain itu, Anda harus keluar dari sesi SFTP aktif apa pun, dan kemudian masuk kembali setelah masa tunggu 10 menit untuk melihat perubahannya.