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í:
Vyberte 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
S touto akcí se nejčastěji používají následující parametry:
Parametr | Vysvětlení |
---|---|
název aplikace | (Povinné) Název vaší aplikace funkcí. |
název slotu | (Volitelné) Název konkrétního slotu nasazení, do kterého chcete nasadit. Slot už musí existovat ve vaší aplikaci funkcí. Pokud není zadaný, kód se nasadí do aktivního slotu. |
publish-profile | (Volitelné) Název tajného kódu GitHubu, který obsahuje váš profil publikování. |
Podporují se také následující parametry, ale používají se pouze v konkrétních případech:
Parametr | Vysvětlení |
---|---|
Balíček | (Volitelné) Nastaví dílčí cestu ve vašem úložišti, ze kterého 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. |
respect-pom-xml | (Volitelné) Používá se jenom pro funkce v Javě. Jestli se vyžaduje, aby artefakt nasazení vaší aplikace byl odvozen z pom.xml souboru. Při nasazování aplikací funkcí v Javě byste měli tento parametr nastavit na true hodnotu a nastavit package na . hodnotu . Ve výchozím nastavení je tento parametr nastavený na false hodnotu , což znamená, že package parametr musí odkazovat na umístění artefaktů vaší aplikace, například ./target/azure-functions/ |
respect-funcignore | (Volitelné) Jestli GitHub Actions respektuje váš soubor .funcignore, aby se vyloučily soubory a složky definované v něm. Tuto hodnotu nastavte, pokud true má úložiště soubor .funcignore a chcete ji použít k vyloučení cest a souborů, jako jsou konfigurace textového editoru, .vscode/nebo virtuální prostředí Pythonu (.venv/). Výchozí nastavení je false . |
scm-do-build-during-deployment | (Volitelné) Určuje, jestli web nasazení služby App Service (Kudu) provádí předem připravené operace. Web nasazení vaší aplikace funkcí najdete na adrese https://<APP_NAME>.scm.azurewebsites.net/ . Toto nastavení změňte, pokud true potřebujete řídit nasazení v Kudu, a ne vyřešit závislosti v pracovním postupu GitHub Actions. Výchozí hodnota je false . Další informace najdete v nastavení SCM_DO_BUILD_DURING_DEPLOYMENT . |
enable-oryx-build | (Volitelné) Určuje, jestli web nasazení Kudu vyřeší závislosti projektu pomocí Oryxu. Nastavte, true když chcete použít Oryx k vyřešení závislostí projektu pomocí vzdáleného sestavení místo pracovního postupu GitHub Actions. Kdy true , měli byste také nastavit scm-do-build-during-deployment .true Výchozí hodnota je false . |
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í.
Další kroky
Váš názor
https://aka.ms/ContentUserFeedback.
Připravujeme: V průběhu roku 2024 budeme postupně vyřazovat problémy z GitHub coby mechanismus zpětné vazby pro obsah a nahrazovat ho novým systémem zpětné vazby. Další informace naleznete v tématu:Odeslat a zobrazit názory pro