

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

# Stapel-Refactoring
<a name="stack-refactoring"></a>

Mit Stack-Refactoring können Sie Ressourcen in Ihren CloudFormation Stacks reorganisieren und gleichzeitig die vorhandenen Ressourceneigenschaften und -daten beibehalten. Sie können Ressourcen zwischen Stapeln verschieben, große Stapel in kleinere aufteilen oder mehrere Stapel zu einem kombinieren.

**Topics**
+ [So funktioniert das Stack-Refactoring](#stack-refactoring-overview)
+ [Überlegungen zum Stack-Refactoring](#stack-refactoring-considerations)
+ [Voraussetzungen](#stack-refactoring-prerequisites)
+ [Stacks umgestalten (Konsole)](#stack-refactoring-console)
+ [Stacks umgestalten ()AWS CLI](#stack-refactoring-cli)
+ [Begrenzte Ressourcen](#stack-refactoring-resource-limitations)

## So funktioniert das Stack-Refactoring
<a name="stack-refactoring-overview"></a>

Das Refactoring von Stacks umfasst diese Phasen:

1. **Beurteilen Sie Ihre aktuelle Infrastruktur** — Überprüfen Sie Ihre vorhandenen CloudFormation Stacks und Ressourcen, um Möglichkeiten für das Stack-Refactoring zu identifizieren.

1. **Planen Sie Ihren Refactor**- Definieren Sie, wie die Ressourcen organisiert werden sollen. Berücksichtigen Sie Ihre Abhängigkeiten, Namenskonventionen und operativen Grenzen. Diese können sich auf die spätere Validierung auswirken. CloudFormation 

1. **Bestimmen Sie die ZielStack**- Entscheiden Sie, in welche Stack Sie die Ressourcen umstrukturieren wollen. Sie können Ressourcen zwischen mindestens 2 Stacks (mithilfe der Konsole) und maximal 5 Stacks (mithilfe der AWS CLI) verschieben. Ressourcen können zwischen verschachtelten Stapeln verschoben werden.

1. **Aktualisieren Sie Ihre Vorlagen** — Passen Sie Ihre CloudFormation Vorlagen an die geplante Änderung an, z. B. das Verschieben von Ressourcendefinitionen zwischen Vorlagen. IDs Während dieses Vorgangs können Sie Logical umbenennen.

1. **Erstellen Sie den Stack-Refactor**- Geben Sie eine Liste von Stack-Namen und-Vorlagen an, die Sie refactorieren möchten.

1. **Überprüfen Sie die Auswirkungen des Refactorings und lösen Sie etwaige Konflikte** — CloudFormation validiert die von Ihnen bereitgestellten Vorlagen und prüft stapelübergreifende Abhängigkeiten, Ressourcentypen mit Tag-Aktualisierungsproblemen und Konflikte bei logischen IDs von Ressourcen.

   Wenn die Validierung erfolgreich ist, CloudFormation wird eine Vorschau der Refactor-Aktionen generiert, die während der Ausführung ausgeführt werden.

   Wenn die Validierung fehlschlägt, beheben Sie die festgestellten Probleme und versuchen Sie es erneut. Bei Konflikten stellen Sie eine logische ID-Zuordnung der Ressource bereit, die die Quelle und das Ziel der konfligierenden Ressourcen angibt.

1. **Führen Sie den Refactor aus**- Nachdem Sie sich vergewissert haben, dass die Änderungen mit Ihren Refactoring-Zielen übereinstimmen, schließen Sie den Stack-Refactor ab.

1. **Monitor**- Verfolgen Sie den Ausführungsstatus, um sicherzustellen, dass der Vorgang erfolgreich abgeschlossen wird.

## Überlegungen zum Stack-Refactoring
<a name="stack-refactoring-considerations"></a>

Wenn Sie Ihre Stacks umstrukturieren, sollten Sie Folgendes beachten:
+ Das Stack-Refactoring beschränkt sich auf die Reorganisation vorhandener Ressourcen. Während des Refactorings können Sie keine Ressourcen erstellen oder löschen, Ressourcenkonfigurationen ändern oder neue Parameter, Bedingungen oder Zuordnungen ändern oder hinzufügen. Um diese Änderungen vorzunehmen, aktualisieren Sie zuerst Ihre Stacks und führen Sie dann den Stack-Refactor durch.
+ Sie können die gleiche Ressource nicht in mehrere Stapel umwandeln.
+ Sie können keine Ressourcen refaktorisieren, die sich auf Pseudoparameter beziehen, deren Werte sich zwischen Quell- und ZielStack unterscheiden, wie beispielsweise `AWS::StackName`.
+ CloudFormation unterstützt keine leeren Stacks. Wenn das Refactoring dazu führen würde, dass ein Stack keine Ressourcen mehr hat, müssen Sie diesem Stack zunächst mindestens eine Ressource hinzufügen, bevor Sie ihn ausführen. [create-stack-refactor](https://docs.aws.amazon.com/cli/latest/reference/cloudformation/create-stack-refactor.html) Dies kann eine einfache Ressource wie `AWS::SNS::Topic` oder `AWS::CloudFormation::WaitCondition`sein. Beispiel:

  ```
  Resources:
    MySimpleSNSTopic:
      Type: AWS::SNS::Topic
      Properties:
        DisplayName: MySimpleTopic
  ```
+ Stack Refactor unterstützt keine Stacks, die mit Stack-Richtlinien verknüpft sind, unabhängig davon, was die Richtlinien erlauben oder verbieten.

## Voraussetzungen
<a name="stack-refactoring-prerequisites"></a>

Um Stacks umzugestalten, müssen Sie die überarbeiteten Vorlagen bereits erstellt haben.

Verwenden Sie den Befehl [get-template](https://docs.aws.amazon.com/cli/latest/reference/cloudformation/get-template.html), um die CloudFormation Vorlagen für die Stacks abzurufen, die Sie umgestalten möchten.

```
aws cloudformation get-template --stack-name Stack1
```

Wenn Sie die Vorlagen haben, verwenden Sie die integrierte Entwicklungsumgebung (IDE) Ihrer Wahl, um sie zu aktualisieren und die gewünschte Struktur und Ressourcenorganisation zu verwenden.

## Stacks umgestalten (Konsole)
<a name="stack-refactoring-console"></a>

Gehen Sie wie folgt vor, um Stacks mithilfe der Konsole umzugestalten.

**Um Stacks umzugestalten**

1. [Melden Sie sich bei der an AWS-Managementkonsole und öffnen Sie die CloudFormation Konsole unter https://console.aws.amazon.com /cloudformation.](https://console.aws.amazon.com/cloudformation/)

1. Wählen Sie in der Navigationsleiste oben auf dem Bildschirm aus, AWS-Region wo sich Ihre Stacks befinden.

1. Wählen Sie im Navigationsbereich auf der linken Seite **Stack Refactors** aus.

1. Wählen Sie auf der Seite **Stack-Refactors die** Option **Stack-Refactor starten** aus.

1. Geben Sie **unter Beschreibung** eine Beschreibung ein, die Ihnen bei der Identifizierung Ihres Stack-Refaktors hilft. Wählen Sie anschließend **Weiter**.

1. Gehen Sie für Stack 1 wie folgt vor:

   1. Wählen Sie entweder **Vorlage für einen vorhandenen Stack aktualisieren** oder **Neuen Stack erstellen** aus.

      Wenn Sie **Vorlage für einen vorhandenen Stack aktualisieren** ausgewählt haben, wählen Sie einen vorhandenen Stack aus der Liste aus. Oder wählen **Sie Enter a stack ARN**, um den ARN eines vorhandenen Stacks einzugeben.

      Wenn Sie **Neuen Stack erstellen** ausgewählt haben, geben Sie für **Stackname** einen Namen für den neuen Stack ein.

   1. Wählen **Sie unter Bestehende Vorlage durch überarbeitete Vorlage ersetzen** die Option **Amazon S3 S3-URL** oder **Eine Vorlagendatei hochladen aus, um die gewünschte Vorlage** für Stack 1 hochzuladen.

   1. Wählen Sie **Weiter** aus.

1. Gehen Sie für Stack 2 wie folgt vor:

   1. Wählen Sie entweder **Vorlage für einen vorhandenen Stack aktualisieren** oder **Neuen Stack erstellen** aus.

      Wenn Sie **Vorlage für einen vorhandenen Stack aktualisieren** ausgewählt haben, wählen Sie einen vorhandenen Stack aus der Liste aus. Oder wählen **Sie Enter a stack ARN**, um den ARN eines vorhandenen Stacks einzugeben.

      Wenn Sie **Neuen Stack erstellen** ausgewählt haben, geben Sie für **Stackname** einen Namen für den neuen Stack ein.

   1. Wählen **Sie unter Bestehende Vorlage durch überarbeitete Vorlage ersetzen die Option **Amazon S3 S3-URL** oder Vorlagendatei** **hochladen aus, um die gewünschte Vorlage** für Stack 2 hochzuladen.

   1. Wählen Sie **Weiter** aus.

1. Vergewissern **Sie sich auf der Seite „Logische Ressourcen-ID-Umbenennungen angeben**“, dass Sie CloudFormation wissen, wie Stacks umgestaltet werden, indem Sie alle angezeigten Ressourcen der richtigen logischen Zuordnung zuordnen. IDs Wenn die Logik IDs einer Ressource geändert wurde, müssen Sie im Rahmen des Stack-Refactorings angeben, wie sie umbenannt wurde, indem Sie den Quell-Stack-Namen, die ursprüngliche logische ID, den Ziel-Stack-Namen und die umbenannte logische ID angeben. In einigen Fällen erkennt die CloudFormation Konsole die Ressourcenzuordnung möglicherweise automatisch, und Sie können einfach überprüfen, ob die vorab ausgefüllte Ressourcenzuordnung korrekt ist, bevor Sie fortfahren.

1. Wählen Sie **Weiter** aus.

1. **Überprüfen Sie auf der Seite Überprüfen und ausführen** alle Ihre Auswahlen aus den vorherigen Schritten und stellen Sie sicher, dass alles korrekt eingerichtet ist.

1. Wenn Sie bereit sind, die Stacks umzugestalten, wählen Sie Stack-Refactor **ausführen**.

## Stacks umgestalten ()AWS CLI
<a name="stack-refactoring-cli"></a>

Zu den AWS CLI Befehlen für das Stack-Refactoring gehören:
+ [create-stack-refactor](https://docs.aws.amazon.com/cli/latest/reference/cloudformation/create-stack-refactor.html)um geplante Änderungen zu validieren und eine Vorschau zu generieren.
+ [describe-stack-refactor](https://docs.aws.amazon.com/cli/latest/reference/cloudformation/describe-stack-refactor.html)um den Status und die Details eines Stack-Refactoring-Vorgangs abzurufen. 
+ [execute-stack-refactor](https://docs.aws.amazon.com/cli/latest/reference/cloudformation/execute-stack-refactor.html)um den validierten Stack-Refactoring-Vorgang abzuschließen. 
+ [list-stack-refactors](https://docs.aws.amazon.com/cli/latest/reference/cloudformation/list-stack-refactors.html)um alle Stack-Refactoring-Operationen in Ihrem Konto mit ihrem aktuellen Status und grundlegenden Informationen aufzulisten. 
+ [list-stack-refactor-actions](https://docs.aws.amazon.com/cli/latest/reference/cloudformation/list-stack-refactor-actions.html)um eine Vorschau der spezifischen Aktionen anzuzeigen, die während der Refactor-Ausführung auf jedem Stack und jeder Ressource ausgeführt CloudFormation werden. 

Verwenden Sie die folgende Prozedur, um einen Stapel unter Verwendung des AWS CLI zu refaktorisieren. 

**Um Stacks umzustrukturieren**

1. Verwenden Sie den [create-stack-refactor](https://docs.aws.amazon.com/cli/latest/reference/cloudformation/create-stack-refactor.html)Befehl und geben Sie die Stack-Namen und die aktualisierten Vorlagen für die Stacks an, die umgestaltet werden sollen. Fügen Sie die `--enable-stack-creation` Option hinzu, mit der neue Stapel erstellt werden können CloudFormation , falls diese noch nicht existieren. 

   ```
   aws cloudformation create-stack-refactor \
     --stack-definitions \
       StackName=Stack1,TemplateBody@=file://template1-updated.yaml \
       StackName=Stack2,TemplateBody@=file://template2-updated.yaml \
     --enable-stack-creation
   ```

   Der Befehl gibt ein `StackRefactorId` zurück, das Sie in späteren Schritten verwenden werden.

   ```
   {
       "StackRefactorId": "9c384f70-4e07-4ed7-a65d-fee5eb430841"
   }
   ```

   Wenn bei der Vorlagenvalidierung Konflikte festgestellt werden (was Sie im nächsten Schritt bestätigen können), verwenden Sie den [create-stack-refactor](https://docs.aws.amazon.com/cli/latest/reference/cloudformation/create-stack-refactor.html)Befehl mit der `--resource-mappings` Option.

   ```
   aws cloudformation create-stack-refactor \
     --stack-definitions \
       StackName=Stack1,TemplateBody@=file://template1-updated.yaml \
       StackName=Stack2,TemplateBody@=file://template2-updated.yaml \
     --enable-stack-creation \ 
     --resource-mappings file://resource-mapping.json
   ```

   Im Folgenden sehen Sie ein Beispiel für eine `resource-mapping.json`-Datei.

   ```
   [
       {
           "Source": {
               "StackName": "Stack1",
               "LogicalResourceId": "MySNSTopic"
           },
           "Destination": {
               "StackName": "Stack2",
               "LogicalResourceId": "MyLambdaSNSTopic"
           }
       }
   ]
   ```

1. Verwenden Sie den [describe-stack-refactor](https://docs.aws.amazon.com/cli/latest/reference/cloudformation/describe-stack-refactor.html)Befehl, um sicherzustellen, dass dies der Fall `Status` ist`CREATE_COMPLETE`. Damit wird überprüft, ob die Validierung vollständig ist.

   ```
   aws cloudformation describe-stack-refactor \
     --stack-refactor-id 9c384f70-4e07-4ed7-a65d-fee5eb430841
   ```

   Beispielausgabe:

   ```
   {
       "StackRefactorId": "9c384f70-4e07-4ed7-a65d-fee5eb430841",
       "StackIds": [
           "arn:aws:cloudformation:us-east-1:123456789012:stack/Stack1/3e6a1ff0-94b1-11f0-aa6f-0a88d2e03acf",
           "arn:aws:cloudformation:us-east-1:123456789012:stack/Stack2/5da91650-94b1-11f0-81cf-0a23500e151b"
       ],
       "ExecutionStatus": "AVAILABLE",
       "Status": "CREATE_COMPLETE"
   }
   ```

1. Verwenden Sie den [list-stack-refactor-actions](https://docs.aws.amazon.com/cli/latest/reference/cloudformation/list-stack-refactor-actions.html)Befehl, um eine Vorschau der spezifischen Aktionen anzuzeigen, die ausgeführt werden.

   ```
   aws cloudformation list-stack-refactor-actions \
     --stack-refactor-id 9c384f70-4e07-4ed7-a65d-fee5eb430841
   ```

   Beispielausgabe:

   ```
   {
       "StackRefactorActions": [
           {
               "Action": "MOVE",
               "Entity": "RESOURCE",
               "PhysicalResourceId": "MyTestLambdaRole",
               "Description": "No configuration changes detected.",
               "Detection": "AUTO",
               "TagResources": [],
               "UntagResources": [],
               "ResourceMapping": {
                   "Source": {
                       "StackName": "arn:aws:cloudformation:us-east-1:123456789012:stack/Stack1/3e6a1ff0-94b1-11f0-aa6f-0a88d2e03acf",
                       "LogicalResourceId": "MyLambdaRole"
                   },
                   "Destination": {
                       "StackName": "arn:aws:cloudformation:us-east-1:123456789012:stack/Stack2/5da91650-94b1-11f0-81cf-0a23500e151b",
                       "LogicalResourceId": "MyLambdaRole"
                   }
               }
           },
           {
               "Action": "MOVE",
               "Entity": "RESOURCE",
               "PhysicalResourceId": "MyTestFunction",
               "Description": "Resource configuration changes will be validated during refactor execution.",
               "Detection": "AUTO",
               "TagResources": [
                   {
                       "Key": "aws:cloudformation:stack-name",
                       "Value": "Stack2"
                   },
                   {
                       "Key": "aws:cloudformation:logical-id",
                       "Value": "MyFunction"
                   },
                   {
                       "Key": "aws:cloudformation:stack-id",
                       "Value": "arn:aws:cloudformation:us-east-1:123456789012:stack/Stack2/5da91650-94b1-11f0-81cf-0a23500e151b"
                   }
               ],
               "UntagResources": [
                   "aws:cloudformation:stack-name",
                   "aws:cloudformation:logical-id",
                   "aws:cloudformation:stack-id"
               ],
               "ResourceMapping": {
                   "Source": {
                       "StackName": "arn:aws:cloudformation:us-east-1:123456789012:stack/Stack1/3e6a1ff0-94b1-11f0-aa6f-0a88d2e03acf",
                       "LogicalResourceId": "MyFunction"
                   },
                   "Destination": {
                       "StackName": "arn:aws:cloudformation:us-east-1:123456789012:stack/Stack2/5da91650-94b1-11f0-81cf-0a23500e151b",
                       "LogicalResourceId": "MyFunction"
                   }
               }
           }
       ]
   }
   ```

1. Nachdem Sie Ihre Änderungen überprüft und bestätigt haben, verwenden Sie den [execute-stack-refactor](https://docs.aws.amazon.com/cli/latest/reference/cloudformation/execute-stack-refactor.html)Befehl, um den Stack-Refactoring-Vorgang abzuschließen.

   ```
   aws cloudformation execute-stack-refactor \
     --stack-refactor-id 9c384f70-4e07-4ed7-a65d-fee5eb430841
   ```

1. Verwenden Sie den [describe-stack-refactor](https://docs.aws.amazon.com/cli/latest/reference/cloudformation/describe-stack-refactor.html)Befehl, um den Ausführungsstatus zu überwachen.

   ```
   aws cloudformation describe-stack-refactor \
     --stack-refactor-id 9c384f70-4e07-4ed7-a65d-fee5eb430841
   ```

   Beispielausgabe:

   ```
   {
       "StackRefactorId": "9c384f70-4e07-4ed7-a65d-fee5eb430841",
       "StackIds": [
           "arn:aws:cloudformation:us-east-1:123456789012:stack/Stack1/3e6a1ff0-94b1-11f0-aa6f-0a88d2e03acf",
           "arn:aws:cloudformation:us-east-1:123456789012:stack/Stack2/5da91650-94b1-11f0-81cf-0a23500e151b"
       ],
       "ExecutionStatus": "SUCCEEDED",
       "Status": "COMPLETE"
   }
   ```

## Begrenzte Ressourcen
<a name="stack-refactoring-resource-limitations"></a>
+ Stack Refactoring unterstützt nur Ressourcentypen mit einem `provisioningType` von,`FULLY_MUTABLE` was Sie mit dem Befehl [describe-type](https://docs.aws.amazon.com/cli/latest/reference/cloudformation/describe-type.html) überprüfen können. 
+ CloudFormation überprüft bei der Erstellung des Refactorings die Eignung von Ressourcen und meldet alle nicht unterstützten Ressourcen in der Ausgabe des Befehls. [describe-stack-refactor](https://docs.aws.amazon.com/cli/latest/reference/cloudformation/describe-stack-refactor.html) 
+ Die folgenden Ressourcen werden für das Stack-Refactoring nicht unterstützt:
  + `AWS::ACMPCA::Certificate`
  + `AWS::ACMPCA::CertificateAuthority`
  + `AWS::ACMPCA::CertificateAuthorityActivation`
  + `AWS::ApiGateway::BasePathMapping`
  + `AWS::ApiGateway::Method`
  + `AWS::AppConfig::ConfigurationProfile`
  + `AWS::AppConfig::Deployment`
  + `AWS::AppConfig::Environment`
  + `AWS::AppConfig::Extension`
  + `AWS::AppConfig::ExtensionAssociation`
  + `AWS::AppStream::DirectoryConfig`
  + `AWS::AppStream::StackFleetAssociation`
  + `AWS::AppStream::StackUserAssociation`
  + `AWS::AppStream::User`
  + `AWS::BackupGateway::Hypervisor`
  + `AWS::CertificateManager::Certificate`
  + `AWS::CloudFormation::CustomResource`
  + `AWS::CloudFormation::Macro`
  + `AWS::CloudFormation::WaitCondition`
  + `AWS::CloudFormation::WaitConditionHandle`
  + `AWS::CodeDeploy::DeploymentGroup`
  + `AWS::CodePipeline::CustomActionType`
  + `AWS::Cognito::UserPoolRiskConfigurationAttachment`
  + `AWS::Cognito::UserPoolUICustomizationAttachment`
  + `AWS::Cognito::UserPoolUserToGroupAttachment`
  + `AWS::Config::ConfigRule`
  + `AWS::Config::ConfigurationRecorder`
  + `AWS::Config::DeliveryChannel`
  + `AWS::DataBrew::Dataset`
  + `AWS::DataBrew::Job`
  + `AWS::DataBrew::Project`
  + `AWS::DataBrew::Recipe`
  + `AWS::DataBrew::Ruleset`
  + `AWS::DataBrew::Schedule`
  + `AWS::DataZone::DataSource`
  + `AWS::DataZone::Environment`
  + `AWS::DataZone::EnvironmentBlueprintConfiguration`
  + `AWS::DataZone::EnvironmentProfile`
  + `AWS::DataZone::Project`
  + `AWS::DataZone::SubscriptionTarget`
  + `AWS::DirectoryService::MicrosoftAD`
  + `AWS::DynamoDB::GlobalTable`
  + `AWS::EC2::CustomerGateway`
  + `AWS::EC2::EIP`
  + `AWS::EC2::LaunchTemplate`
  + `AWS::EC2::NetworkInterfacePermission`
  + `AWS::EC2::PlacementGroup`
  + `AWS::EC2::SpotFleet`
  + `AWS::EC2::VPCDHCPOptionsAssociation`
  + `AWS::EC2::VolumeAttachment`
  + `AWS::EMR::Cluster`
  + `AWS::EMR::InstanceFleetConfig`
  + `AWS::EMR::InstanceGroupConfig`
  + `AWS::ElastiCache::CacheCluster`
  + `AWS::ElastiCache::ReplicationGroup`
  + `AWS::ElastiCache::SecurityGroup`
  + `AWS::ElastiCache::SecurityGroupIngress`
  + `AWS::ElasticBeanstalk::ConfigurationTemplate`
  + `AWS::ElasticLoadBalancing::LoadBalancer`
  + `AWS::ElasticLoadBalancingV2::ListenerCertificate`
  + `AWS::Elasticsearch::Domain`
  + `AWS::FIS::ExperimentTemplate`
  + `AWS::Glue::Schema`
  + `AWS::GuardDuty::IPSet`
  + `AWS::GuardDuty::PublishingDestination`
  + `AWS::GuardDuty::ThreatIntelSet`
  + `AWS::IAM::AccessKey`
  + `AWS::IAM::UserToGroupAddition`
  + `AWS::ImageBuilder::Component`
  + `AWS::IoT::PolicyPrincipalAttachment`
  + `AWS::IoT::ThingPrincipalAttachment`
  + `AWS::IoTFleetWise::Campaign`
  + `AWS::IoTWireless::WirelessDeviceImportTask`
  + `AWS::Lambda::EventInvokeConfig`
  + `AWS::Lex::BotVersion`
  + `AWS::M2::Application`
  + `AWS::MSK::Configuration`
  + `AWS::MSK::ServerlessCluster`
  + `AWS::Maester::DocumentType`
  + `AWS::MediaTailor::Channel`
  + `AWS::NeptuneGraph::PrivateGraphEndpoint`
  + `AWS::Omics::AnnotationStore`
  + `AWS::Omics::ReferenceStore`
  + `AWS::Omics::SequenceStore`
  + `AWS::OpenSearchServerless::Collection`
  + `AWS::OpsWorks::App`
  + `AWS::OpsWorks::ElasticLoadBalancerAttachment`
  + `AWS::OpsWorks::Instance`
  + `AWS::OpsWorks::Layer`
  + `AWS::OpsWorks::Stack`
  + `AWS::OpsWorks::UserProfile`
  + `AWS::OpsWorks::Volume`
  + `AWS::PCAConnectorAD::Connector`
  + `AWS::PCAConnectorAD::DirectoryRegistration`
  + `AWS::PCAConnectorAD::Template`
  + `AWS::PCAConnectorAD::TemplateGroupAccessControlEntry`
  + `AWS::Panorama::PackageVersion`
  + `AWS::QuickSight::Theme`
  + `AWS::RDS::DBSecurityGroup`
  + `AWS::RDS::DBSecurityGroupIngress`
  + `AWS::Redshift::ClusterSecurityGroup`
  + `AWS::Redshift::ClusterSecurityGroupIngress`
  + `AWS::RefactorSpaces::Environment`
  + `AWS::RefactorSpaces::Route`
  + `AWS::RefactorSpaces::Service`
  + `AWS::RoboMaker::RobotApplication`
  + `AWS::RoboMaker::SimulationApplication`
  + `AWS::Route53::RecordSet`
  + `AWS::Route53::RecordSetGroup`
  + `AWS::SDB::Domain`
  + `AWS::SageMaker::InferenceComponen`
  + `AWS::ServiceCatalog::PortfolioPrincipalAssociation`
  + `AWS::ServiceCatalog::PortfolioProductAssociation`
  + `AWS::ServiceCatalog::PortfolioShare`
  + `AWS::ServiceCatalog::TagOptionAssociation`
  + `AWS::ServiceCatalogAppRegistry::AttributeGroupAssociation`
  + `AWS::ServiceCatalogAppRegistry::ResourceAssociation`
  + `AWS::StepFunctions::StateMachineVersion`
  + `AWS::Synthetics::Canary`
  + `AWS::VoiceID::Domain`
  + `AWS::WAF::ByteMatchSet`
  + `AWS::WAF::IPSet`
  + `AWS::WAF::Rule`
  + `AWS::WAF::SizeConstraintSet`
  + `AWS::WAF::SqlInjectionMatchSet`
  + `AWS::WAF::WebACL`
  + `AWS::WAF::XssMatchSet`
  + `AWS::WAFv2::IPSet`
  + `AWS::WAFv2::RegexPatternSet`
  + `AWS::WAFv2::RuleGroup`
  + `AWS::WAFv2::WebACL`
  + `AWS::WorkSpaces::Workspace`