Я понял это из подпроцесс
документация плагина:
/**
* Доступные ключи конфигурации:
* ...
* - include_source: (необязательно) Если TRUE, все исходные конфигурации плагинов и
* значения будут скопированы в подобработанную строку в новом свойстве с именем
* для значения конфигурации source_key (см. ниже). По умолчанию ЛОЖЬ.
* - source_key: (необязательно) Если include_source имеет значение TRUE, это
* — имя свойства подобрабатываемой строки, которая будет содержать
* Исходная конфигурация и значения. Игнорируется, если include_source
* ЛОЖНЫЙ. По умолчанию используется значение «источник», если значение не указано.
*/
И использовал его как:
field_cover_image:
- плагин: sub_process
источник: field_cover_image
include_source: правда
source_key: корень
процесс:
target_id:
плагин: migration_lookup
источник: target_id
миграция: migrate_media_image
исходные_идентификаторы:
migrate_media_image:
- target_id
- root/langcode # <- получить свойство из корневой строки
И константы причины также будут доступны:
migrate_media_image:
- target_id
- корень/константы/язык_по умолчанию
Альтернативой может быть создание свойства итерации в качестве значения по умолчанию:
плагин: sub_process
источник: field_cover_image
процесс:
язык:
плагин: default_value
default_value: 'ru'
и обращение к нему как к свойству назначения текущей итерации @язык
:
язык:
плагин: default_value
default_value: 'ru'
target_id:
плагин: migration_lookup
источник: target_id
исходные_идентификаторы:
migrate_media_image:
- target_id
- '@язык'
Типы содержимого/медиа настроены на перевод, но на самом деле есть только один язык, и я могу «жестко закодировать» его, но лучше использовать динамическое значение.