2016-10-16 14 views
1

変数に現在のサブスクリプション名を取得する方法はありますか?このようなAzure ARMテンプレート変数:サブスクリプション名プロパティを取得

何か:

"variables": { 
    "Purpose": "[subscription().SubscriptionName]" 
    }, 

Visual Studioの " 'サブスクリプション' のプロパティは、次のいずれかでなければなりません。:ID、subscriptionId、tenantId" と言いますしたがって、上記は機能しません。

私はまた、「参照」機能のいくつかの例を見つけたので、それを使用しようとしました:

"variables": { 
    "SubName": "[reference('/subscriptions/subscription().subscriptionId','2015-01-01').outputs.name.value]" 
}, 

しかし、とテンプレートもエラーを呼び出すとき:

function 'reference' is not expected at this location 

私はどこに置くべきか、それをどのように変数に入れるのかはわかりません。

PowerShellでは、私はこれを行うことができます: 関心の袋のために(Get-AzureRmSubscription).subscriptionname

、我々はいくつかのサブスクリプションを持っています。サブスクリプション名には、所定のサブスクリプション内のリソースグループの命名に使用される3桁の「短いコード」が含まれています。何に属しているのかを簡単に特定できるようにする以外の目的はありません。管理者(Azureに特に精通していない人)が、どのリソースがどこにあるのかを簡単に見られるようにするのは、私たちの命名規則の一部です。私はRBACなどのような他の方法があることを知っていますが、Microsoftの絶え間ない認証情報のCookie取得は、さまざまな認証情報で異なるサブスクリプションにログインすることはできません。

おかげ W.

答えて

1

(2016年10月16日)に、この答えを書いている時点で私はあなたがすることはできません怖いです。

docsによると、これは)何subsbscription(で返します

{ 
    "id": "/subscriptions/#####", 
    "subscriptionId": "#####", 
    "tenantId": "#####" 
} 

ですから、subscription().SubscriptionNameに失敗期待するべきです。私がリンクされ、同じドキュメントで

、コメント欄でこの周りの議論があり、Microsoftieが言うcomment #2694777590次を参照してください。

[OK]を - 私は、name属性を追加するためにバグを追加しましたがsubcription()式。

これは2016年6月6日だったので、それは途中です。

回避策として、テンプレートを実行しているものからサブスクリプション名を注入することができます。それはあなたがまた

$subName = (Get-AzureRmSubscription).subscriptionname 
New-AzureRmResourceGroupDeployment ... -SecscriptionName $subName 

を行うことができますPowerShellのですたとえば、私はあなたがについて話しましたサブスクリプション名に基づいて、その文字列操作の目的は何を知っているが、サブスクリプションを作成する場合はありません、良い習慣を一意の名前をスコープ名前の一部としてuniqueString(subscription().subscriptionId)を使用することです。

+0

おかげで@itaysk(私はVSの行動に出願されたバグを取得します)。私はさらなる情報で私の質問を更新しました。マイクロソフトとの会議の後の最近のデザイン決定の後、私たちはPSを放棄し(明らかに「古い」方法であるため)、JSONテンプレートを使用することにしました。この機能が追加されるまで、私はPSにリソースの名前をつけます。 – woter324

0

あなたは使用することができるはずです。

subscription().displayName 

関連する問題