我尝试将其添加到我的ServiceDefinition.csdef文件中:

<WorkerRole ...><Runtime><Environment>
    <Variable name="AZURE_STORAGE_ACCOUNT">
      <RoleInstanceValue xpath="/RoleEnvironment/CurrentInstance/ConfigurationSettings/ConfigurationSetting[@name='AZURE_STORAGE_ACCOUNT']/@value" />
    </Variable>
</Environment></Runtime></WorkerRole>

然后在ServiceConfiguration.Cloud.cscfg文件中设置配置设置:
<Role name="WorkerRole">
  <ConfigurationSettings>
    <Setting name="AZURE_STORAGE_ACCOUNT" value="<secret stuff>" />
  </ConfigurationSettings>
</Role>

但是当我运行cspack时出现以下错误:
CloudServices091 : The '/RoleEnvironment/CurrentInstance/Configur
ationSettings/ConfigurationSetting[@name='AZURE_STORAGE_ACCOUNT']/@value' is an
invalid xpath expression.

最佳答案

您是否缺少该设置的声明?我没有在您的.csdef中看到适当的元素,类似于<ConfigurationSettings><Setting name="AZURE_STORAGE_ACCOUNT"/></ConfigurationSettings>。您需要在.csdef中选择其中之一,然后仍然需要在.cscfg中包括该值的其中之一。

如果您使用的是Visual Studio,则使用其属性 View 时,它应该为您编辑两个文件。 (只需双击该角色,然后四处单击即可进入配置设置并添加一个新角色。)

关于configuration - Windows Azure : how do I expose a configuration setting as an environment variable?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10426296/

10-12 18:21