我有一个简单的bash脚本,它创建一个容器并在其中运行任务:
api=${1}
az container create \
--resource-group "my_resource_group" \
--file container.yaml \
--environment-variables "APIKEY"="${api}"
但是变量APIKEY永远不会从此调用中获取值,而是始终从container.yaml中的“默认”值获取。
如何在.yaml中创建具有整个定义的容器实例,并在命令az container create
中传递环境变量?
答案 0 :(得分:1)
以文件形式输入时,不考虑环境变量。
查看cli来源,使用File时,它将仅返回基于文件的创建容器。 https://github.com/Azure/azure-cli/blob/713061e3e4a0fc969b0797ec06bd0e3db49ad4a8/src/azure-cli/azure/cli/command_modules/container/custom.py#L112
您可以做的是,在bash脚本中使用sed来更改container.yaml文件中的APIKey值,然后按原样部署它。
my_str = "abra cadabra"
my_set = set(my_str)
my_set.discard(" ")
my_dict = {}
for key in my_set:
my_dict[key] = my_str.count(key)
print(my_dict)
PLACEHOLDER_FOR_APIKEY_HERE将替换为命令行参数,并将更新container.yaml文件。
因此该脚本看起来类似于下面的脚本。
sed -i 's/PLACEHOLDER_FOR_APIKEY_HERE/$api/g' container.yaml