Azure Pipeline中如何让Pulumi使用缓存的Conda环境?
解决方案
方法1:直接在激活的Conda环境中运行Pulumi命令
Pulumi@1任务默认不会继承之前Shell步骤激活的环境,所以可以跳过Pulumi@1任务,改用bash任务显式激活Conda环境后执行命令:
# 替换原有的Pulumi@1任务 - bash: | source activate $(CONDA_ENV_NAME) pulumi preview --diff --show-config --show-reads --show-replacement-steps --stack $(pulumiStackShort) displayName: 运行Pulumi预览 env: AZURE_CLIENT_ID: $(AZURE_CLIENT_ID) AZURE_CLIENT_SECRET: $(AZURE_CLIENT_SECRET) AZURE_TENANT_ID: $(AZURE_TENANT_ID)
方法2:动态配置Pulumi.yaml的virtualenv路径
你之前在Pulumi.yaml中使用的$(CONDA)是Azure Pipeline变量,Pulumi无法直接解析。可以通过Pipeline步骤动态替换路径:
- 先修改Pulumi.yaml为模板形式:
name: AlertRulesPulumi description: A minimal Azure Native Python Pulumi program runtime: name: python options: virtualenv: __CONDA_ENV_PATH__
- 在Pipeline中添加替换步骤:
- bash: | sed -i "s|__CONDA_ENV_PATH__|$(CONDA_ENV_DIR)|g" Pulumi.yaml displayName: 替换Pulumi.yaml中的Conda环境路径
- 保留原有的Pulumi@1任务即可,Pulumi会自动读取配置的虚拟环境路径。
方法3:通过PATH环境变量指定优先使用Conda环境的Python
在Pulumi@1任务的环境变量中,把Conda环境的bin目录放到PATH最前面,让Pulumi优先使用该环境的Python解释器:
- task: Pulumi@1 inputs: azureSubscription: 'Something' command: 'preview' args: '--diff --show-config --show-reads --show-replacement-steps' stack: $(pulumiStackShort) cwd: "./" env: AZURE_CLIENT_ID: $(AZURE_CLIENT_ID) AZURE_CLIENT_SECRET: $(AZURE_CLIENT_SECRET) AZURE_TENANT_ID: $(AZURE_TENANT_ID) PATH: "$(CONDA_ENV_DIR)/bin:$(PATH)"
内容的提问来源于stack exchange,提问作者Tensing2009
相关产品推荐
相关产品推荐

