私は、自動タグ付けのAzureのリソース単純な実装---でも、自分自身再生する方法をアップハードです

あなたはまだそれがたくさんAzureのリソースを取るとして、タグを演奏心配されていますか?あなたはので、痛みながら、まだ努力のように非効率的な重複はありますか?

非常に長い時間では、私は、クラウドアーキテクチャを調整しないと、日常のシステムメンテナンスを行うには、だけでなく、私は、タグなど些細な事を再生する多くの時間を費やす必要があれば、この場合には、様々なプロジェクトに参加するだけでなくだけでなく、上の自分自身疲れたが、他の多くの重要なタスクを遅らせます。

シニア怠惰なように、我々は絶対にこのような状況が存在して、すべてが自動化できる操作は、自分自身が手動で行うことを許してはなりません許可することはできません。

言葉遊び特定したり、独自の意思決定へのラベルの種類を言っているが。しかし、私は企業の大半は、少なくともラベルのアプリケーションやプロジェクトを再生されます信じています。それはこれに基づき、私はリソースが自動的にタグ付けにする方法のうち、比較的簡単な方法を紹介しますが、このアプローチにはいくつかの制限があります。

1.チェックがラベルを殴られてい繰り返しません

2.リソース・ラベル・グループまたは手動で前方にレイアウトします

3.演奏タグ参照リソース・グループのリソースは、既存のラベルに属し

 

ここでは、Azureの2つのサービスを使用する必要があり、次のように1は、紺碧の政策であり、他は、多くの場合、自動化に使用され、実際には非常に簡単な手順であります

 

1. Azureのポリシーを使用すると、タグ値が定義されていない、指定されたタグ名アプリケーションとして、「タグとそのデフォルト値を追加します」

この時点で、あなたが確立した後、すべての紺碧のリソースがプリセットタグと創造の初めになります

2.ときにタグ付けがリソース・グループを確立します

予め設定されたすべてのリソースを横断するタグ、および独自のラベルのアプリケーションに対応するリソースグループとランブックのアズールオートメーションの使用。

詳細なランブックのサンプルを次のように

$ connectionNameの = " AzureRunAsConnection "  
試し
{ 

    $ servicePrincipalConnection =のGet-AutomationConnection -Name $ connectionNameの

    " アズールへのログイン... " 
    追加 - AzureRmAccountを`
         - たservicePrincipal`
         -TenantId $ servicePrincipalConnection .TenantId `
         -ApplicationId $ servicePrincipalConnection .ApplicationId`
         -CertificateThumbprint $ servicePrincipalConnection .CertificateThumbprint `
         - EnvironmentName AzureChinaCloud 
 } 
キャッチ{
    もし(!$ servicePrincipalConnection 
    { 
        $にErrorMessage = " 接続の$ connectionNameに見つかりません。" 
        投げる $にErrorMessageを
    } { 
        書く -エラー-Message _ $を.Exception
         投げる _ $ .Exception 
    } 
} 

を選択 -AzureRmSubscription - サブスクリSubscriptionName
 $リソース =(取得-azurermresource -Tag @ {アプリケーション= " 未定義" })

foreachの$リソース  $リソース
{ 
    $ Rgname = $リソース.Resourcegroupname 

    $ RESOURCEID = $リソース.resourceId
     $ RGTags =(取得-AzureRmResourceGroup -Name $ Rgname ).Tags 

    $ resourcetags = $リソース.Tags 

            $ RGTagFinal = @ {}
             $ RGTagFinal = $ RGTags                   
                    foreachの$のresourcetag   $がresourcetags .GetEnumeratorを())
                    { 
                
                    もし$ RGTags .Keys -inotcontains  $ resourcetag .KEY)
                        {                         
                                書く -出力を" --------------------------------------------- --- 
                                書く -出力を表をハッシュへの追加RGタグには存在しKeydoesn't  resourcetag $を
                                書く -出力を------------------------ ------------------------ " 
                                $ RGTagFinal .Add($ resourcetag .KEY、$ resourcetag .Valueの)
                        }     

                    } 
            書く -出力を"--------------------------------------------- 
            書く -出力を$($のRESOURCEID)に次のタグを適用する"  $ RGTagFinalは
            書く -出力を" --------------------------------- ------------ " 
            $ Settag =セットAzureRmResource -ResourceId $ RESOURCEID -Tag $ RGTagFinal - フォース

}

あなたはより多くのリソースを持っており、各サブスクリプションである場合は、ワークフローのためのランブックにそれを入れて、すべてのサブスクリプションを通じて、ネストされたループを超えることができます。

もう一つのポイントは、少なくとも持っているすべてのリソースのラベルの権限を変更する必要があり、アカウントとして実行の自動化が何であるかを言及します。

ここでは、自動的にRGのラベル、それを適用するために、なぜ我々は、すべてのリソースを通過していないと言うのでしょうか?あなたは何千ものリソース数千人の数を考えるとき、あなたは長い間、このジョブを実行する必要があります。ただタグ付けが可能な新しいリソースを与えるには、Get-azurermresource行くための大幅な節約にフィルタのような簡単なプリセットラベルので、余分なラベルの後にアクションを繰り返します。

 

著者はまず、独自の方法で開始するよう、私たちはこれに基づいて、いくつかの最適化を行うことができますを提供します。あるいは、よりよい解決策がある場合にも自動的にタグ付け交換を歓迎します。

おすすめ

転載: www.cnblogs.com/tenghaohua/p/11192277.html