複数のAzureサブ1つのGiTubアクション


Azure MSPのために働く利点の1つは、2日が同じでないということです.あなたは常に解決するために別の課題を提示されます.それはとても楽しいです!私はどのように我々は以下の特定の課題を解決する方法について書くことを決めた.

挑戦
Githubリポジトリ内に新しいブランチが作成されたとき、自動的にAzureにリソースを展開する必要があるプロジェクトに取り組んでいます.このユースケースでは、Azureとそれらのソフトウェアプラットホームの間のギャップを埋めるためにAzure関数を作成している会社で働いています.いくつかの調整や変更をテストするたびに新しいブランチが作成されます.このテストをサポートするために、Azure関数といくつかの他のサポートリソースを作成する必要があります.これは、手動で行う時間がかかることができます.これはgithubアクションのワークフローやazure devopsパイプラインが入ってくるところです.問題を複雑にするために、あなたはあなたの生産、開発とテスト環境を別々の購読で保つべきであるいくつかの最高の実行アドバイスに続いています.
この記事では、ブランチ命名規則に基づいて、正しいAzureサブスクリプション、特にdevまたはtestサブスクリプションにログオンするGithubアクションのワークフローを作成する方法について説明します.命名規則は、それらが彼らのブランチ名で' dev 'または' test 'を使用しなければならないと述べます.
あなたが新しいならばGitHub Actions or Azure DevOps Pipelines , より多くを見つけるために、関連をクリックしてください.

解決策
まず、ワークフローの条件付きの手順で、ブランチ名を正しく参照する方法について、Twitterの質問に答えた人に感謝します.
ワークフローがAzureサブスクリプションに正常にログインするには、適切なアクセス許可を使用してサービスプリンシパルを作成したことを確認する必要があります.サービスプリンシパルが作成されたら、Githubのリポジトリの秘密に詳細を追加できます.このサービスプリンシパルを作成する方法についてはAzure/Login ’ ギタブレポ.一度作成すると、秘密は以下のように見えるかもしれません.

以下のワークフローYAMLファイルを見ることができます.私はあなたがgithubアクションでワークフローファイルを使用してunfamilarしている場合に役立ついくつかの注釈が含まれている.

name: New Branch Trigger

on:
  create: # Triggers on the creation of a new branch (or release).

  workflow_dispatch:

jobs:
  build:
    runs-on: ubuntu-latest # Hosted build agent that our new action runs on.

    steps:
      - uses: actions/checkout@v2 # Checks out our GitHub repo.

      - name: Git default branch name
        run: echo $GITHUB_REF

      - name: Git branch name
        id: git-branch-name
        uses: EthanSK/git-branch-name-action@v1 # Action to grab the current branch name.

      - name: Echo the branch name
        run: echo "Branch name is ${GIT_BRANCH_NAME}"

      - name: Login via Az module (DEV)
        uses: azure/login@v1 # The name of the action we are using.
        with:
          creds: ${{secrets.AZURE_CREDENTIALS_DEV}} # Reference to the secret we created earlier.
          enable-AzPSSession: true 
        if: contains(github.ref, 'dev') # Conditional check. 
        # Checks if the Github branch contains 'dev'. This step will only run if this is TRUE.

      - name: Login via Az module (TEST)
        uses: azure/login@v1
        with:
          creds: ${{secrets.AZURE_CREDENTIALS_TEST}}
          enable-AzPSSession: true 
        if: contains(github.ref, 'test') # Conditional check. 
        # Checks if the Github branch contains 'test'. This step will only run if this is TRUE.

前述の「azure/login」アクションに加えて、「gitブランチ名アクション」というアクションも使用しています.現在のブランチ名を取得し、環境変数を作成します.私はこのアクションがブランチ名をつかんでいるのを好むので、デフォルトの' $ GithubRain Reef '環境変数は' refs/Heads/BranchName '形式でそれを出力します.このワークフローが作成されるAzureリソースの命名にブランチ名変数を使用したい場合に便利です.あなたは、github市場でこの行動についてもっと知ることができますhere . クリエイターに感謝Ethan Sarif-Kattan !
私は、ワークフローのいくつかのスクリーンショットを実行して、ブランチ名に従い異なるステップを引き起こしていました.
ワークフロー
下記のイメージで見ることができるように、このランのブランチは' AZモジュール( dev )'ステップを経由して' login 'を引き起こしたことを意味する' dev 'を含んでいました.

ワークフロー実行-テストブランチ
下記のイメージで見ることができるように、このランのブランチは' AZモジュール( test )'ステップを経由してログインを引き起こしたことを意味する' test 'を含んでいました.

あなたがあなたの倉庫で新しいブランチを作成するとき、あなたは現在起動されます.また、条件付きのAzureログイン手順のおかげで、適切なAzureサブスクリプションにリソースを展開します.私がこのワークフローの私の使用に関して拡大する記事のために来たるべき週に戻ってください.

PSA: Remember , it’s NOT a good idea to experiment on a production environment. Please make sure you test any recommendations you read online in a Dev or Test environment before going to production.


この記事を読む時間を割いていただきありがとうございます.あなたがそれが役に立つと思います.あなたがしたならば、あなたの社会的メディアの上で分担して自由に感じて、私にタグをつけてください.あなたは私の社会的なメディアを見つけることができます上または左には、このデバイスを読んでいるデバイスに応じて.