Dela via


Konfigurera containeravbildning för att köra distributioner

I den här artikeln får du lära dig hur du skapar anpassade Bicep-containeravbildningar för att distribuera dina miljödefinitioner i Azure Deployment Environments (ADE).

I den här artikeln får du lära dig hur du skapar anpassade Terraform-containeravbildningar för att distribuera dina miljödefinitioner i Azure Deployment Environments (ADE). Du lär dig hur du konfigurerar en anpassad avbildning för att etablera infrastruktur med hjälp av Terraform Infrastructure-as-Code-ramverket (IaC).

I den här artikeln får du lära dig hur du använder Pulumi för distributioner i Azure Deployment Environments (ADE). Du lär dig hur du använder en exempelbild som tillhandahålls av Pulumi eller hur du konfigurerar en anpassad avbildning för att etablera infrastruktur med hjälp av IaC-ramverket (Infrastruktur som kod).

ADE stöder en utökningsmodell som gör att du kan skapa anpassade avbildningar som du kan använda i dina miljödefinitioner. Om du vill använda den här utökningsmodellen skapar du egna anpassade avbildningar och lagrar dem i ett containerregister som Azure Container Registry (ACR) eller Docker Hub. Du kan sedan referera till dessa avbildningar i dina miljödefinitioner för att distribuera dina miljöer.

En miljödefinition består av minst två filer: en mallfil, till exempel azuredeploy.json eller main.bicep, och en manifestfil med namnet environment.yaml. ADE använder containrar för att distribuera miljödefinitioner.

ADE-teamet tillhandahåller ett urval av bilder för att komma igång, inklusive en kärnbild och en Azure Resource Manager(ARM)-Bicep-avbildning. Du kan komma åt dessa exempelbilder i mappen Runner-Images .

En miljödefinition består av minst två filer: en mallfil, till exempel main.tf, och en manifestfil med namnet environment.yaml. Du använder en container för att distribuera miljödefinitioner som använder Terraform.

En miljödefinition består av minst två filer: en Pulumi-projektfil, Pulumi.yaml och en manifestfil med namnet environment.yaml. Det kan också innehålla ett användarprogram som skrivits på önskat programmeringsspråk: C#, TypeScript, Python osv. ADE använder containrar för att distribuera miljödefinitioner.

Förutsättningar

Använda containeravbildningar med ADE

Du kan använda någon av följande metoder för att använda containeravbildningar med ADE:

  • Använd en exempelcontaineravbildning För enkla scenarier använder du arm-Bicep-exempelcontaineravbildningen som tillhandahålls av ADE.
  • Skapa en anpassad containeravbildning För mer komplexa scenarier skapar du en anpassad containeravbildning som uppfyller dina specifika krav.

De viktigaste stegen du följer när du använder en containeravbildning är:

  1. Välj den bildtyp som du vill använda: en exempelbild eller en anpassad avbildning.
    • Om du använder en anpassad avbildning börjar du med en exempelbild och anpassar den efter dina behov.
  2. Skapa avbildningen.
  3. Ladda upp avbildningen till ett privat register eller ett offentligt register.
  4. Konfigurera åtkomst till registret.
    • Konfigurera anonym pull för ett offentligt register.
    • Ge DevCenter ACR-behörigheter för ett privat register.
  5. Lägg till din avbildningsplats i parametern runner i din miljödefinition
  6. Distribuera miljöer som använder din anpassade avbildning.

Det första steget i processen är att välja vilken typ av bild du vill använda. Välj motsvarande flik för att se processen.

Använda en exempelcontaineravbildning

ADE stöder ARM och Bicep utan att kräva någon extra konfiguration. Du kan skapa en miljödefinition som distribuerar Azure-resurser för en distributionsmiljö genom att lägga till mallfilerna (till exempel azuredeploy.json och environment.yaml) i katalogen. ADE använder sedan exempelcontaineravbildningen ARM-Bicep för att skapa distributionsmiljön.

I filen runner environment.yaml anger egenskapen platsen för den containeravbildning som du vill använda. Om du vill använda exempelbilden som publicerats på Microsofts artefaktregister använder du respektive identifierare runner.

I följande exempel visas en runner som refererar till ARM-Bicep-containeravbildningen exempel:

    name: WebApp
    version: 1.0.0
    summary: Azure Web App Environment
    description: Deploys a web app in Azure without a datastore
    runner: Bicep
    templatePath: azuredeploy.json

Du kan se Bicep-exempelcontaineravbildningen i ADE-exempellagringsplatsen under mappen Runner-Images för ARM-Bicep-avbildningen .

Mer information om hur du skapar miljödefinitioner som använder ADE-containeravbildningarna för att distribuera dina Azure-resurser finns i Lägga till och konfigurera en miljödefinition.

Använd en anpassad avbildning för att konfigurera en Terraform-avbildning.

Använda en exempelcontaineravbildning från Pulumi

Pulumi-teamet tillhandahåller en fördefinierad avbildning för att komma igång, som du kan se i mappen Runner-Image . Den här avbildningen är offentligt tillgänglig på Pulumis Docker Hub som pulumi/azure-deployment-environments, så du kan använda den direkt från ADE-miljödefinitionerna.

Här är en exempelfil för environment.yaml som använder den fördefinierade avbildningen:

name: SampleDefinition
version: 1.0.0
summary: First Pulumi-Enabled Environment
description: Deploys a Storage Account with Pulumi
runner: pulumi/azure-deployment-environments:0.1.0
templatePath: Pulumi.yaml

Du hittar några exempel på miljödefinitioner i mappen Miljöer.

Bygga en avbildning

Du kan skapa avbildningen med Hjälp av Docker CLI. Kontrollera att Docker-motorn är installerad på datorn. Navigera sedan till katalogen för din Dockerfile och kör följande kommando:

docker build . -t {YOUR_REGISTRY}.azurecr.io/{YOUR_REPOSITORY}:{YOUR_TAG}

Om du till exempel vill spara avbildningen under en lagringsplats i registret med namnet customImageoch ladda upp med taggversionen av 1.0.0kör du:

docker build . -t {YOUR_REGISTRY}.azurecr.io/customImage:1.0.0

Gör den anpassade avbildningen tillgänglig för ADE

För att kunna använda anpassade avbildningar måste du lagra dem i ett containerregister. Du kan använda ett offentligt containerregister eller ett privat containerregister. Azure Container Registry (ACR) rekommenderas starkt, på grund av den snäva integreringen med ADE kan avbildningen publiceras utan att tillåta offentlig anonym pull-åtkomst. Du måste skapa din anpassade containeravbildning och skicka den till ett containerregister för att göra den tillgänglig för användning i ADE.

Det går också att lagra avbildningen i ett annat containerregister, till exempel Docker Hub, men i så fall måste den vara offentligt tillgänglig.

Varning

Om du lagrar containeravbildningen i ett register med anonym (oautentiserad) pull-åtkomst blir den offentligt tillgänglig. Gör inte det om bilden innehåller känslig information. Lagra den i stället i Azure Container Registry (ACR) med anonym pull-åtkomst inaktiverad.

Om du vill använda en anpassad avbildning som lagras i ACR måste du se till att ADE har rätt behörighet att komma åt avbildningen. När du skapar en ACR-instans är den säker som standard och tillåter endast autentiserade användare att få åtkomst.

Du kan använda Pulumi för att skapa ett Azure Container Registry och publicera avbildningen till det. Se exemplet Etablering/anpassad avbildning för ett fristående Pulumi-projekt som skapar alla nödvändiga resurser i ditt Azure-konto.

Välj lämplig flik för att lära dig mer om varje metod.

Använda ett privat register med säker åtkomst

Som standard är åtkomst till att hämta eller skicka innehåll från ett Azure Container Registry endast tillgängligt för autentiserade användare. Du kan skydda åtkomsten till ACR ytterligare genom att begränsa åtkomsten från vissa nätverk och tilldela specifika roller.

Om du vill skapa en instans av ACR, som kan göras via Azure CLI, Azure Portal, PowerShell-kommandon med mera, följer du en av snabbstarterna.

Begränsa nätverksåtkomst

För att skydda nätverksåtkomsten till din ACR kan du begränsa åtkomsten till dina egna nätverk eller inaktivera åtkomsten till det offentliga nätverket helt. Om du begränsar nätverksåtkomsten måste du aktivera brandväggsfelet Tillåt betrodda Microsoft-tjänster att komma åt det här containerregistret.

Så här inaktiverar du åtkomst från offentliga nätverk:

  1. Skapa en ACR-instans eller använd en befintlig.

  2. I Azure Portal går du till den ACR som du vill konfigurera.

  3. På den vänstra menyn går du till Inställningar och väljer Nätverk.

  4. På sidan Nätverk går du till fliken Offentlig åtkomst och under Åtkomst till offentligt nätverk väljer du Inaktiverad.

    Skärmbild av Azure Portal som visar ACR-nätverksinställningarna med offentlig åtkomst och Inaktiverad markerad.

  5. Under Brandväggsfel kontrollerar du att Tillåt betrodda Microsoft-tjänster att komma åt det här containerregistret är markerat och välj sedan Spara.

    Skärmbild av ACR-nätverksinställningarna med Tillåt betrodda Microsoft-tjänster att komma åt containerregistret och Spara markerat.

Tilldela rollen AcrPull

När du skapar miljöer med hjälp av containeravbildningar används ADE-infrastrukturen, inklusive projekt och miljötyper. Varje projekt har en eller flera projektmiljötyper som behöver läsbehörighet till containeravbildningen som definierar den miljö som ska distribueras. Om du vill komma åt avbildningarna i din ACR på ett säkert sätt tilldelar du rollen AcrPull till varje projektmiljötyp.

Så här tilldelar du rollen AcrPull till projektmiljötypen:

  1. I Azure Portal går du till den ACR som du vill konfigurera.

  2. Välj Åtkomstkontroll (IAM) på den vänstra menyn.

  3. Välj Lägg till>Lägg till rolltilldelning.

  4. Tilldela följande roll. Läs mer om att tilldela roller i Tilldela Azure-roller via Azure Portal.

    Inställning Värde
    Roll Välj AcrPull.
    Tilldela åtkomst till Välj Användare, grupp eller tjänstens huvudnamn.
    Medlemmar Ange namnet på den projektmiljötyp som behöver komma åt avbildningen i containern.

    Projektmiljötypen visas som i följande exempel:

    Skärmbild av fönstret Välj medlemmar med en lista över projektmiljötyper med en del av namnet markerat.

I den här konfigurationen använder ADE den hanterade identiteten för PET, oavsett om systemet har tilldelats eller användaren har tilldelats.

Dricks

Den här rolltilldelningen måste göras för varje projektmiljötyp. Det kan automatiseras via Azure CLI.

När du är redo att skicka avbildningen till registret kör du följande kommando:

docker push {YOUR_REGISTRY}.azurecr.io/{YOUR_IMAGE_LOCATION}:{YOUR_TAG}

Skapa en containeravbildning med ett skript

I stället för att skapa din anpassade avbildning och push-överföra den till ett containerregister själv kan du använda ett skript för att skapa och push-överföra den till ett angivet containerregister.

Microsoft tillhandahåller ett snabbstartsskript som hjälper dig att skapa din anpassade avbildning och skicka den till ett register. Skriptet skapar avbildningen och skickar den till ett angivet Azure Container Registry (ACR) under lagringsplatsen ade och taggen latest.

Om du vill använda skriptet måste du:

  1. Skapa en Dockerfile- och skriptmapp för att stödja utökningsmodellen för ADE.
  2. Ange ett registernamn och en katalog för din anpassade avbildning.
  3. Installera Azure CLI och Docker Desktop och i path-variablerna.
  4. Låt Docker Desktop köras.
  5. Har behörighet att skicka till det angivna registret.

Du kan visa skriptet här.

Du kan anropa skriptet med följande kommando i PowerShell:

.\quickstart-image-build.ps1 -Registry '{YOUR_REGISTRY}' -Directory '{DIRECTORY_TO_YOUR_IMAGE}'

Om du vill skicka till en specifik lagringsplats och taggnamn kan du dessutom köra:

.\quickstart-image.build.ps1 -Registry '{YOUR_REGISTRY}' -Directory '{DIRECTORY_TO_YOUR_IMAGE}' -Repository '{YOUR_REPOSITORY}' -Tag '{YOUR_TAG}'

Ansluta avbildningen till din miljödefinition

När du redigerar miljödefinitioner för att använda din anpassade avbildning i distributionen runner redigerar du egenskapen i manifestfilen (environment.yaml eller manifest.yaml).

runner: "{YOUR_REGISTRY}.azurecr.io/{YOUR_REPOSITORY}:{YOUR_TAG}"

Mer information om hur du skapar miljödefinitioner som använder ADE-containeravbildningarna för att distribuera dina Azure-resurser finns i Lägga till och konfigurera en miljödefinition.