Průběžné doručování pomocí GitHub Actions
Pracovní postup GitHub Actions můžete použít k definování pracovního postupu, který automaticky sestaví a nasadí kód do aplikace funkcí ve službě Azure Functions.
Soubor YAML (.yml), který definuje konfiguraci pracovního postupu, se udržuje v /.github/workflows/
cestě ve vašem úložišti. Tato definice obsahuje akce a parametry, které tvoří pracovní postup, který je specifický pro vývojový jazyk vašich funkcí. Pracovní postup GitHub Actions pro funkce provádí následující úlohy bez ohledu na jazyk:
- Nastavte prostředí.
- Sestavte projekt kódu.
- Nasaďte balíček do aplikace funkcí v Azure.
Akce Azure Functions zpracovává nasazení do existující aplikace funkcí v Azure.
Konfigurační soubor pracovního postupu pro nasazení můžete vytvořit ručně. Soubor můžete také vygenerovat ze sady šablon specifických pro jazyk jedním z těchto způsobů:
- Na webu Azure Portal
- Použití Azure CLI
- Z úložiště GitHub
Pokud soubor YAML nechcete vytvořit ručně, vyberte v horní části článku jinou metodu.
Požadavky
Účet Azure s aktivním předplatným. Vytvoření účtu zdarma
Účet GitHub. Pokud ho nemáte, zdarma se zaregistrujte.
Funkční aplikace funkcí hostovaná v Azure se zdrojovým kódem v úložišti GitHub.
- Azure CLI při místním vývoji Azure CLI můžete použít také v Azure Cloud Shellu.
Generování přihlašovacích údajů pro nasazení
Vzhledem k tomu, že GitHub Actions používá váš profil publikování pro přístup k aplikaci funkcí během nasazování, musíte nejprve získat svůj profil publikování a bezpečně ho uložit jako tajný klíč GitHubu.
Důležité
Profil publikování je cenné přihlašovací údaje, které umožňují přístup k prostředkům Azure. Ujistěte se, že je vždy přepravujete a bezpečně ukládáte. V GitHubu musí být profil publikování uložený jenom v tajných klíčích GitHubu.
Stažení profilu publikování
Stažení profilu publikování aplikace funkcí:
Na webu Azure Portal vyhledejte stránku vaší aplikace funkcí a v levém sloupci rozbalte položku Konfigurace nastavení>.
Na stránce Konfigurace vyberte kartu Obecné nastavení a ujistěte se, že je zapnuté přihlašovací údaje pro základní ověřování ověřování SCM. Pokud je toto nastavení vypnuté, nemůžete použít profily publikování, takže vyberte Zapnuto a pak Uložit.
Vraťte se na stránku Přehled aplikace funkcí a pak vyberte Získat profil publikování.
Uložte a zkopírujte obsah souboru.
Přidání tajného kódu GitHubu
Na GitHubu přejděte do svého úložiště.
Přejděte na Nastavení.
Vyberte Akce tajných kódů a proměnných>.
Vyberte Nový tajný klíč úložiště.
Přidejte nový tajný klíč s názvem
AZURE_FUNCTIONAPP_PUBLISH_PROFILE
a hodnotou nastavenou na obsah souboru profilu publikování.Vyberte Add secret (Přidat tajný kód).
GitHub se teď může ověřit ve vaší aplikaci funkcí v Azure.
Vytvoření pracovního postupu ze šablony
Nejlepší způsob, jak ručně vytvořit konfiguraci pracovního postupu, je začít ze oficiálně podporované šablony.
Zvolte Windows nebo Linux, abyste měli jistotu, že jste získali šablonu pro správný operační systém.
Zkopírujte šablonu specifickou pro jazyk z úložiště akcí Azure Functions pomocí následujícího odkazu:
env.AZURE_FUNCTIONAPP_NAME
Aktualizujte parametr názvem prostředku vaší aplikace funkcí v Azure. Volitelně můžete potřebovat aktualizovat parametr, který nastaví jazykovou verzi používanou vaší aplikací, napříkladDOTNET_VERSION
pro jazyk C#.Přidejte tento nový soubor YAML do
/.github/workflows/
cesty v úložišti.
Vytvoření konfigurace pracovního postupu na portálu
Když pomocí portálu povolíte GitHub Actions, Functions vytvoří soubor pracovního postupu na základě zásobníku vaší aplikace a potvrdí ho do vašeho úložiště GitHub ve správném adresáři.
Portál automaticky získá váš profil publikování a přidá ho do tajných kódů GitHubu pro vaše úložiště.
Vytvoření aplikace funkcí
S GitHub Actions můžete rychle začít pracovat prostřednictvím karty Nasazení při vytváření funkce na webu Azure Portal. Přidání pracovního postupu GitHub Actions při vytváření nové aplikace funkcí:
Na webu Azure Portal vyberte Nasazení v toku Vytvořit aplikaci funkcí.
Pokud chcete, aby každá aktualizace kódu aktivovala nabízení kódu na webu Azure Portal, povolte průběžné nasazování .
Zadejte svoji organizaci, úložiště a větev GitHubu.
Dokončete konfiguraci aplikace funkcí. Vaše úložiště GitHub teď obsahuje nový soubor pracovního postupu v
/.github/workflows/
souboru .
Pro existující aplikaci funkcí
Přidání pracovního postupu GitHub Actions do existující aplikace funkcí:
Přejděte do aplikace funkcí na webu Azure Portal a vyberte Deployment Center.
Jako zdroj vyberte GitHub. Pokud se nezobrazuje výchozí zpráva Sestavení pomocí GitHub Actions, vyberte Změnit zprostředkovatele GitHub Actions a vyberte OK.
Pokud jste ještě neověřili přístup k GitHubu, vyberte Autorizovat. Zadejte svoje přihlašovací údaje GitHubu a vyberte Přihlásit se. Pokud chcete autorizovat jiný účet GitHubu, vyberte Změnit účet a přihlaste se pomocí jiného účtu.
Vyberte svoji organizaci, úložiště a větev GitHubu. Pokud chcete provést nasazení pomocí GitHub Actions, musíte mít k tomuto úložišti přístup pro zápis.
V nastavení ověřování zvolte, jestli se má GitHub Actions ověřovat pomocí identity přiřazené uživatelem nebo pomocí přihlašovacích údajů základního ověřování. Pro základní ověřování se použijí aktuální přihlašovací údaje.
Výběrem možnosti Náhled zobrazíte soubor pracovního postupu, který se přidá do úložiště GitHub v
github/workflows/
.Vyberte Uložit a přidejte soubor pracovního postupu do úložiště.
Přidání konfigurace pracovního postupu do úložiště
Pomocí příkazu můžete az functionapp deployment github-actions add
vygenerovat konfigurační soubor pracovního postupu ze správné šablony pro vaši aplikaci funkcí. Nový soubor YAML se pak uloží do správného umístění (/.github/workflows/
) v úložišti GitHub, které zadáte, zatímco soubor profilu publikování pro vaši aplikaci se přidá do tajných kódů GitHubu ve stejném úložišti.
Spusťte tento
az functionapp
příkaz, nahraďte hodnotygithubUser/githubRepo
aMyResourceGroup
MyFunctionapp
:az functionapp deployment github-actions add --repo "githubUser/githubRepo" -g MyResourceGroup -n MyFunctionapp --login-with-github
Tento příkaz používá interaktivní metodu k načtení tokenu pat pro váš účet GitHubu.
V okně terminálu by se mělo zobrazit něco jako následující zpráva:
Please navigate to https://github.com/login/device and enter the user code XXXX-XXXX to activate and retrieve your GitHub personal access token.
Zkopírujte jedinečný
XXXX-XXXX
kód, přejděte na https://github.com/login/devicea zadejte kód, který jste zkopírovali. Po zadání kódu by se mělo zobrazit něco jako následující zpráva:Verified GitHub repo and branch Getting workflow template using runtime: java Filling workflow template with name: func-app-123, branch: main, version: 8, slot: production, build_path: . Adding publish profile to GitHub Fetching publish profile with secrets for the app 'func-app-123' Creating new workflow file: .github/workflows/master_func-app-123.yml
Přejděte do úložiště GitHub a vyberte Akce. Ověřte, že váš pracovní postup běžel.
Vytvoření konfiguračního souboru pracovního postupu
Konfigurační soubor pracovního postupu GitHub Actions můžete vytvořit ze šablon Azure Functions přímo z úložiště GitHub.
Na GitHubu přejděte do svého úložiště.
Vyberte Akce a Nový pracovní postup.
Vyhledejte funkce.
V pracovních postupech zobrazených aplikací funkcí vytvořených v Microsoft Azure najděte ten, který odpovídá vašemu jazyku kódu, a vyberte Konfigurovat.
V nově vytvořeném souboru YAML aktualizujte
env.AZURE_FUNCTIONAPP_NAME
parametr názvem prostředku vaší aplikace funkcí v Azure. Volitelně můžete potřebovat aktualizovat parametr, který nastaví jazykovou verzi používanou vaší aplikací, napříkladDOTNET_VERSION
pro jazyk C#.Ověřte, že se nový soubor pracovního postupu ukládá,
/.github/workflows/
a vyberte Potvrdit změny....
Aktualizace konfigurace pracovního postupu
Pokud z nějakého důvodu potřebujete aktualizovat nebo změnit existující konfiguraci pracovního postupu, jednoduše přejděte do /.github/workflows/
umístění ve vašem úložišti, otevřete konkrétní soubor YAML, proveďte potřebné změny a potvrďte aktualizace do úložiště.
Příklad: konfigurační soubor pracovního postupu
Následující příklad šablony používá verzi 1 functions-action
a pro publish profile
ověřování. Šablona závisí na zvoleném jazyce a operačním systému, na kterém je vaše aplikace funkcí nasazená:
name: Deploy DotNet project to Azure Function App
on:
[push]
env:
AZURE_FUNCTIONAPP_NAME: 'your-app-name' # set this to your function app name on Azure
AZURE_FUNCTIONAPP_PACKAGE_PATH: '.' # set this to the path to your function app project, defaults to the repository root
DOTNET_VERSION: '6.0.x' # set this to the dotnet version to use (e.g. '2.1.x', '3.1.x', '5.0.x')
jobs:
build-and-deploy:
runs-on: windows-latest
environment: dev
steps:
- name: 'Checkout GitHub Action'
uses: actions/checkout@v3
- name: Setup DotNet ${{ env.DOTNET_VERSION }} Environment
uses: actions/setup-dotnet@v3
with:
dotnet-version: ${{ env.DOTNET_VERSION }}
- name: 'Resolve Project Dependencies Using Dotnet'
shell: pwsh
run: |
pushd './${{ env.AZURE_FUNCTIONAPP_PACKAGE_PATH }}'
dotnet build --configuration Release --output ./output
popd
- name: 'Run Azure Functions Action'
uses: Azure/functions-action@v1
id: fa
with:
app-name: ${{ env.AZURE_FUNCTIONAPP_NAME }}
package: '${{ env.AZURE_FUNCTIONAPP_PACKAGE_PATH }}/output'
publish-profile: ${{ secrets.AZURE_FUNCTIONAPP_PUBLISH_PROFILE }}
Akce Azure Functions
Akce Azure Functions (Azure/azure-functions
) definuje, jak se váš kód publikuje do existující aplikace funkcí v Azure nebo do konkrétního slotu v aplikaci.
Parametry
Pro všechny plány aplikace funkcí jsou vyžadovány následující parametry:
Parametr | Vysvětlení |
---|---|
název aplikace | Název vaší aplikace funkcí. |
balíček | Toto je umístění v projektu, které se má publikovat. Ve výchozím nastavení je tato hodnota nastavená na . , což znamená, že se nasadí všechny soubory a složky v úložišti GitHub. |
Pro plán Flex Consumption jsou vyžadovány následující parametry:
Parametr | Vysvětlení |
---|---|
sku | Tuto možnost nastavte při flexconsumption ověřování pomocí profilu publikování. Pokud používáte přihlašovací údaje RBAC nebo nasazujete do jiného plánu než Flex Consumption, akce dokáže tuto hodnotu vyřešit, takže parametr nemusí být zahrnutý. |
vzdálené sestavení | Nastavte na to, aby true se při nasazení balíčku do aplikace Flex Consumption povolila akce sestavení z Kudu. Sestavení Oryx se vždy provádí během vzdáleného sestavení ve funkci Flex Consumption; nenastavujte scm-do-build-during-deployment nebo enable-oryx-build. Ve výchozím nastavení je tento parametr nastaven na false . |
Následující parametry jsou specifické pro plány Consumption, Elastic Premium a App Service (Dedicated):
Parametr | Vysvětlení |
---|---|
scm-do-build-during-deployment | (Volitelné) Umožňuje webu Kudu (např. https://<APP_NAME>.scm.azurewebsites.net/ ) provádět operace před nasazením, jako jsou vzdálené sestavení. Ve výchozím nastavení je tato možnost nastavena na false hodnotu . Tuto možnost nastavte, true když chcete řídit chování nasazení pomocí Kudu místo překladu závislostí v pracovním postupu GitHubu. Další informace najdete v SCM_DO_BUILD_DURING_DEPLOYMENT nastavení. |
enable-oryx-build | (Volitelné) Povolte webu Kudu přeložit závislosti projektu pomocí Oryxu. Ve výchozím nastavení je tato možnost nastavena na false hodnotu . Pokud chcete použít Oryx k vyřešení závislostí místo pracovního postupu GitHubu, nastavte scm-do-build-during-deployment a enable-oryx-build na true . |
Volitelné parametry pro všechny plány aplikace funkcí:
Důležité informace
Při použití akce Azure Functions mějte na paměti následující skutečnosti:
Při použití GitHub Actions se kód nasadí do vaší aplikace funkcí pomocí nasazení ZIP pro Azure Functions.
Přihlašovací údaje vyžadované GitHubem pro připojení k Azure pro nasazení se ukládají jako tajné kódy ve vašem úložišti GitHub a přistupují
secrets.<SECRET_NAME>
k němu jako .Nejjednodušší způsob, jak gitHub Actions ověřit pomocí Azure Functions pro nasazení, je použití profilu publikování. Můžete se také ověřit pomocí instančního objektu. Další informace najdete v tomto úložišti GitHub Actions.
Akce pro nastavení prostředí a spuštění sestavení se generují ze šablon a jsou specifické pro jazyk.
Šablony používají
env
prvky k definování nastavení jedinečných pro sestavení a nasazení.