Когда ввод задан как файл, переменные среды не учитываются.
При просмотре источников cli, когда используется File, он просто вернет создание контейнера на основе файла. https://github.com/Azure/azure-cli/blob/713061e3e4a0fc969b0797ec06bd0e3db49ad4a8/src/azure-cli/azure/cli/command_modules/container/custom.py#L112
Что вы могли бы сделать, так это использовать sed в bash script, чтобы изменить значение APIKey в вашем файле container.yaml, а затем развернуть его, как вы are.
sed -i 's/PLACEHOLDER_FOR_APIKEY_HERE/$api/g' container.yaml
PLACEHOLDER_FOR_APIKEY_HERE будет заменено аргументом командной строки, а файл container.yaml будет обновлен.
Таким образом, сценарий будет выглядеть так, как показано ниже.
api=${1}
sed -i 's/PLACEHOLDER_FOR_APIKEY_HERE/$api/g' container.yaml
az container create \
--resource-group "my_resource_group" \
--file container.yaml