Tags die zijn toegevoegd aan projecten en cloudsjablonen, functioneren als beperkingstags wanneer ze worden gebruikt voor het afstemmen van capaciteitstags op infrastructuurresources, profielen en cloudzones. In het geval van cloudsjablonen gebruikt Automation Assembler deze overeenkomende functionaliteit om resources toe te wijzen voor implementaties.

Automation Assembler stelt u in staat om beperkingstags op twee voornaamste manieren te gebruiken. De eerste manier is tijdens het configureren van projecten en images. U kunt tags gebruiken als beperkingen om resources te koppelen aan het project of de image. De tweede manier is in cloudsjablonen waar tags die zijn opgegeven als beperkingen, worden gebruikt om resources voor implementaties te selecteren. Beperkingen die op beide manieren worden toegepast, worden samengevoegd in cloudsjablonen om een set implementatievereisten op te stellen waarmee resources worden gedefinieerd die beschikbaar zijn voor een implementatie.

Hoe beperkingstags werken voor projecten

Wanneer u Automation Assembler-resources configureert, kunnen cloudbeheerders beperkingstags toepassen op projecten. Op deze manier kunnen beheerders governancebeperkingen rechtstreeks op projectniveau toepassen. Alle beperkingen die op dit niveau worden toegevoegd, worden toegepast op elke cloudsjabloon die voor het betreffende project is aangevraagd, en deze beperkingstags hebben voorrang op andere tags.

Als beperkingstags voor het project conflicteren met beperkingstags voor de cloudsjabloon, hebben de projecttags voorrang, waardoor de cloudbeheerder de governanceregels kan afdwingen. Als de cloudbeheerders bijvoorbeeld een tag location:london voor het project maken, maar een ontwikkelaar een tag location:boston op de cloudsjabloon plaatst, krijgt de eerst voorrang en wordt de resource geïmplementeerd in de infrastructuur met de tag location:london.

Er zijn drie typen beperkingstags die gebruikers kunnen toepassen op projecten: netwerk, opslag en uitbreidbaarheid. U kunt zoveel instanties van elk tagtype als nodig toepassen. Projectbeperkingen kunnen hard of zacht zijn. Deze zijn standaard hard. Met harde beperkingen kunt u implementatiebeperkingen strikt afdwingen. Als er niet aan een of meer harde beperkingen wordt voldaan, mislukt de implementatie. Zachte beperkingen bieden een manier om voorkeuren aan te geven die worden geselecteerd als ze beschikbaar zijn, maar de implementatie mislukt niet als er niet aan de zachte beperkingen wordt voldaan.

Hoe beperkingstags werken in cloudsjablonen

In cloudsjablonen voegt u beperkingstags als YAML-code toe aan resources, zodat deze overeenkomen met de juiste capaciteitstags die uw cloudbeheerder voor resources, cloudzones en opslag- en netwerkprofielen heeft gemaakt. Daarnaast zijn er nog andere complexere opties voor het implementeren van beperkingstags. U kunt bijvoorbeeld een variabele gebruiken om een of meer tags op een aanvraag in te vullen. Zo kunt u een of meer tags opgeven op het moment van de aanvraag.

Maak beperkingstags met behulp van het label tag onder een beperkingskop in de YAML-code van de cloudsjabloon. Beperkingstags van projecten worden toegevoegd aan de beperkingstags die in cloudsjablonen zijn gemaakt.

Automation Assembler ondersteunt een eenvoudige tekenreeksnotatie om gemakkelijker beperkingen in YAML-bestanden te maken:

[!]tag_key[:tag_value][:hard|:soft]

Automation Assembler maakt standaard een positieve beperking met harde afdwinging. De tagwaarde is optioneel, maar wordt aanbevolen, zoals in de rest van de applicatie.

Opmerking: Alleen de harde of zachte scheidingstekens worden officieel ondersteund als extensies van de basistagnotatie key:value. Als u andere scheidingstekens probeert te gebruiken, zullen er waarschijnlijk fouten optreden.

In het volgende voorbeeld van WordPress met MySQL worden YAML-beperkingstags weergegeven die locatiegegevens voor berekeningsresources opgeven.

name: "wordPressWithMySql"
components:
  mysql:
    type: "Compute"
    data:
      name: "mysql"
      # ... skipped lines ...
  wordpress:
    type: "Compute"
    data:
      name: "wordpress"
      instanceType: small
      imageType: "ubuntu-server-1604"
      constraints:
        - tag: "!location:eu:hard"
        - tag: "location:us:soft"
        - tag: "!pci"
      # ... skipped lines ...

Zie Deel 3: het voorbeeld van een Automation Assembler-sjabloon ontwerpen en implementeren voor meer informatie over werken met cloudsjablonen.

Hoe harde en zachte beperkingen in projecten en cloudsjablonen werken

Beperkingen in zowel projecten als cloudsjablonen kunnen hard of zacht zijn. Het vorige codefragment bevat voorbeelden van harde en zachte beperkingen. Alle beperkingen zijn standaard hard. Met harde beperkingen kunt u implementatiebeperkingen strikt afdwingen. Als er niet aan een of meer harde beperkingen wordt voldaan, mislukt de implementatie. Zachte beperkingen geven voorkeuren aan die indien beschikbaar van toepassing zijn, maar ze zorgen er niet voor dat ze mislukken als er niet aan wordt voldaan.

Als u een reeks harde en zachte beperkingen voor een specifiek resourcetype hebt, kunnen de zachte beperkingen mogelijk doorslaggevend zijn. Dat wil zeggen, als meerdere resources aan een harde beperking voldoen, worden de zachte beperkingen gebruikt om de werkelijke resource te selecteren die in de implementatie wordt gebruikt.

Stel bijvoorbeeld dat u een harde opslagbeperking maakt met de tag location:boston. Als geen enkele opslag in het project met deze beperking overeenkomt, mislukt elke gerelateerde implementatie.

Opmerking: Zachte beperkingen op netwerken kunnen worden gebruikt om netwerken in een netwerkprofiel te selecteren, maar zijn niet van invloed op de selectie van het netwerkprofiel zelf.