I have to create multiple fields at once on CloudSearch using PHP SDK. This is because domains are generated dynamically through code as well based on tenants name (system is using tenancy). After creating the domain index fields needs to be created next I have below code to loop through the array of fields with field name/type.
$fields[] = ['name' => 'last_note', 'type' => 'text'];
$fields[] = ['name' => 'tasks', 'type' => 'text'];
$fields[] = ['name' => 'loan_approved_applicant', 'type' => 'text'];
foreach ($fields as $field) {
$this->awsCloudSearchClient->defineIndexField([
'DomainName' => $domain,
'IndexField' => [
'IndexFieldName' => $field['name'],
'IndexFieldType' => $field['type'],
]
]);
sleep(10);
}
This actually works if I have only fields. On production considering our production data and fields, I'm getting rate exceeded error If I create those field inside a loop.