Wie kann ich ein SAW-Runbook verwenden, um Fehler bei meinem benutzerdefinierten Domainnamen in API Gateway zu beheben?

Lesedauer: 8 Minute
0

Ich möchte meine benutzerdefinierte Domainnamenkonfiguration in Amazon API Gateway mithilfe des AWSSupport-TroubleshootAPIGatewayCustomDomainConfig AWS Support Automation Workflow (SAW)-Runbooks beheben.

Kurzbeschreibung

Das Runbook KonfigurationAWSSupport – FehlerbehebungbeiderbenutzerdefiniertenAPIGateway-Domänen bietet eine automatisierte Lösung zur Überprüfung Ihrer benutzerdefinierten Domainnamenkonfiguration in API Gateway. Dieses Runbook überprüft, ob der benutzerdefinierte Domainname in API Gateway mit den richtigen Konfigurationen für den DNS-Eintrag und die API-Zuordnungen eingerichtet ist.

Weitere Informationen zu SAW finden Sie unter AWS Unterstützung von Automatisierungs-Workflows (Support Automation Workflows) (SAW).

Behebung

Das Runbook KonfigurationAWSSupport – FehlerbehebungbeiderbenutzerdefiniertenAPIGateway-Domänen validiert die folgenden Eigenschaften:

  • Ob der benutzerdefinierte Domainname in API Gateway existiert.
  • Ob Zuordnungen zwischen dem benutzerdefinierten Domainnamen und irgendwelchen APIs existieren.
  • Ob die vorherige Zuordnungsliste eine Zuordnung zwischen dem benutzerdefinierten Domainnamen und den angegebenen APIs enthält.
  • Ob es einen vorhandenen DNS-Eintrag für den benutzerdefinierten Domainnamen gibt.
  • Ob der DNS-Eintrag auf den richtigen Zielwert verweist, der von API Gateway bei der Erstellung des benutzerdefinierten Domainnamens generiert wurde.

Der aktuelle Benutzer oder die angenommene Servicerolle AWS Identitäts- und Zugriffsmanagement (Identity and Access Management) (IAM), die die Automatisierung ausführt, muss über die folgenden Berechtigungen verfügen:

  • apigateway:GET
  • iam:Listenrollen
  • iam:Pass-Rolle
  • route53:AuflistenvonRessourcendatensätzen
  • ssm:BeschreibenvonAutomatisierungsausführungen
  • ssm:AbrufenderAutomatisierungsausführung
  • ssm:BeschreibenderAusführungvonAutomatisierungsschritten
  • ssm:StartenAutomatisierungsausführung
  • ssm:BbeschreibenDokument
  • ssm:AbrufenDokument
  • ssm:AuflistenDokumente

Voraussetzungen

Stellen Sie vor dem Ausführen des Runbooks sicher, dass Ihr IAM-Benutzer oder Ihre IAM-Rolle über die richtigen Berechtigungen verfügt. Zu diesen Berechtigungen gehören spezifische AWS Systems Manager-Berechtigungen und die zusätzlichen servicespezifischen Berechtigungen, die in früheren Abschnitten dieses Artikels behandelt wurden.

Führen Sie die AWSSupport-TroubleshootAPIGatewayCustomDomainConfig-Automatisierung aus

  1. Öffnen Sie das Runbook KonfigurationAWSSupport – FehlerbehebungbeiderbenutzerdefiniertenAPIGateway-Domänen.
    **Hinweis:**Das Runbook befindet sich in der AWS-Region US-East-1.

  2. Wählen Sie Ausführen Automatisierung.

    Geben Sie für Eingabeparameter Folgendes ein:

    • **Übernahme der Rolle Automatisierung (optional):**Der Amazon-Ressourcenname (ARN) der IAM-Rolle, der es Automation, einer Funktion von Systems Manager, ermöglicht, die Aktionen in Ihrem Namen auszuführen. Wenn keine Rolle angegeben ist, verwendet Automation die Berechtigungen des Benutzers, der das Runbook startet.
    • **Domainname (erforderlich):**Der benutzerdefinierte Domainname Ihrer API.
    • **ApiID (erforderlich):**Die ID Ihrer API.
    • **DNS-ServerIP (optional):**Ein DNS-Server zum Auflösen des benutzerdefinierten Domainnamens. Wenn der Wert nicht angegeben ist, wird AWS DNS Server verwendet.
    • **HostedZone-ID (optional):**Die ID für die öffentlich gehostete Zone, die den DNS-Eintrag für den benutzerdefinierten Domainnamen enthält. Dies ist nicht erforderlich, wenn Route 53 nicht für DNS verwendet wird.
  3. Wählen Sie Ausführen aus. Die Automatisierung wird eingeleitet.

  4. Nach Abschluss der Automatisierung finden Sie im Abschnitt Ausgaben detaillierte Ergebnisse.

    Wenn die Runbook-Prüfungen erfolgreich ausgeführt werden, werden in Ihrer Ausgabe die Konfigurationsdetails des benutzerdefinierten Domainnamens angezeigt.

    Wenn die Konfiguration des benutzerdefinierten Domainnamens eine der Prüfungen im Runbook nicht besteht, schlägt das Runbook im entsprechenden Schritt fehl. Empfehlungen zur Problembehandlung sind in der Ausgabe des Runbooks verfügbar.

Beispielausgaben für das Runbook AWSSupport-TroubleshootAPIGatewayCustomDomainConfig

Beispielausgabe für erfolgreiche Konfigurationsprüfungen:

{
  "Result": "The custom domain name is configured correctly",
  "DomainDetails": {
    "DomainName": "<<CUSTOM DOMAIN NAME>>",
    "APIGatewayDomainName": "d-XXXXXXXX.execute-api.<<REGION>>.amazonaws.com",
    "Status": "XXXXXX",
    "EndpointType": "XXXXXX"
  },
  "MappingDetails": [
    {
      "API": "XXXXXX",
      "MappingId": "XXXXXX",
      "MappingKey": "XXXXXX",
      "Stage": "XXXXXX",
      "Status": "ApiHasMappings"
    }
  ],
  "DNSDetails": {
    "<<RECORD TYPE>>": [
      "XXX.XXX.XXX.XXX",
      "XXX.XXX.XXX.XXX",
      "XXX.XXX.XXX.XXX"
    ]
  }
}

Beispielausgabe für den Fall, dass der benutzerdefinierte Domainname nicht in API Gateway enthalten ist:

" Check (1/5): Check custom domain name exists.
  Status: Failed.

  Troubleshooting Recommendations:
    - Custom domain name: <<CUSTOM DOMAIN NAME>> is not configured in API gateway.
    - Please see the link below for information on how to setup a custom domain for API Gateway:
      > https://aws.amazon.com/de/premiumsupport/knowledge-center/custom-domain-name-amazon-api-gateway/

    - The remaining checks have not been run at this point hence there may be other errors in the current configuration.
    - After resolving the error above, please check that your custom domain name has:
      > A mapping to the API you are trying to reach
      > A DNS record pointing to the generated API Gateway domain name.

    - You can run this automation again to confirm the changes have been made correctly.
    - More details for this particular error can be found within the individual step details.

  Check (2/5): List mappings.
  Status: Skipped

  Check (3/5): Check mapping exists to API Id: <<API ID>>.
  Status: Skipped

  Check (4/5): Check DNS record exists for custom domain name.
  Status: Skipped

  Check (5/5): Validate DNS record.
  Status: Skipped "

Beispielausgabe für den Fall, dass der benutzerdefinierte Domainname überhaupt keine Zuordnungen hat:

" Check (1/5): Check custom domain name exists.
  Status: Complete

  Check (2/5): List mappings.
  Status: Failed

  Troubleshooting Recommendations:
    - <<CUSTOM DOMAIN NAME>> does not contain any mappings.
    - Please see the documentation to create one here:
      > https://docs.aws.amazon.com/apigateway/latest/developerguide/rest-api-mappings.html

    - The remaining checks have not been run at this point hence there may be other errors in the current configuration.
    - After resolving the error above, please check that your custom domain name has:
      > A mapping to the API you are trying to reach
      > A DNS record pointing to the generated API Gateway domain name.

    - You can run this automation again to confirm the changes have been made correctly.
    - More details for this particular error can be found within the individual step details.

  Check (3/5): Check mapping exists to API Id: <<API ID>>.
  Status: Skipped

  Check (4/5): Check DNS record exists for custom domain name.
  Status: Skipped

  Check (5/5): Validate DNS record.
  Status: Skipped "

Beispielausgabe für den Fall, dass der benutzerdefinierte Domainname keine Zuordnung zur angegebenen API-ID hat:

" Check (1/5): Check custom domain name exists.
  Status: Complete

  Check (2/5): List mappings.
  Status: Complete

  Check (3/5): Check mapping exists to API Id: <<API ID>>.
  Status: Failed

    Troubleshooting Recommendations:
    - A base path mapping does not exist between API Id: <<API ID>> and custom domain name: <<CUSTOM DOMAIN NAME>>.
    - Please see the documentation to create one here:
      > https://docs.aws.amazon.com/apigateway/latest/developerguide/rest-api-mappings.html

    - The remaining checks have not been run at this point hence there may be other errors in the current configuration.
    - After resolving the error above, please check that your custom domain name has:
      > A mapping to the API you are trying to reach
      > A DNS record pointing to the generated API Gateway domain name.

    - You can run this automation again to confirm the changes have been made correctly.
    - More details for this particular error can be found within the individual step details.

  Check (4/5): Check DNS record exists for custom domain name.
  Status: Not Run

  Check (5/5): Validate DNS record.
  Status: Skipped "

Beispielausgabe für den Fall, dass es keinen DNS-Eintrag für den benutzerdefinierten Domainnamen gibt:

" Check (1/5): Check custom domain name exists.
  Status: Complete

  Check (2/5): List mappings.
  Status: Complete

  Check (3/5): Check mapping exists to API Id: <<API ID>>.
  Status: Complete

  Check (4/5): Check DNS record exists for custom domain name.
  Status: Failed

  Troubleshooting Recommendations:
    - There is no DNS record for the custom domain name: <<CUSTOM DOMAIN NAME>> or the domain could not be resolved.
    - Please check your DNS server for a record for this domain and ensure it can be resolved.

    - The remaining checks have not been run at this point hence there may be other errors in the current configuration.
    - After resolving the error above, please check that your custom domain name has:
      > A DNS record pointing to the generated API Gateway domain name.

    - You can run this automation again to confirm the changes have been made correctly.
    - More details for this particular error can be found within the individual step details.


  Check (5/5): Validate DNS record.
  Status: Skipped "

Beispielausgabe für den Fall, dass der DNS-Eintrag nicht auf das richtige Ziel zeigt:

" Check (1/5): Check custom domain name exists.
  Status: Complete

  Check (2/5): List mappings.
  Status: Complete

  Check (3/5): Check mapping exists to API Id: <<API ID>>.
  Status: Complete

  Check (4/5): Check DNS record exists for custom domain name.
  Status: Complete

  Check (5/5): Validate DNS record.
  Status: Failed

  Troubleshooting Recommendations:
    - The DNS record for the custom domain name: <<CUSTOM DOMAIN NAME>> may not be pointing to the correct target.
    - The API Gateway domain name generated for this custom domain name is: <<API GATEWAY DOMAIN NAME>> which should be the target of the DNS record created for the custom domain name.
    - Please check your DNS record for this domain and ensure it is pointing to the API Gateway domain name: <<API GATEWAY DOMAIN NAME>>.

    - After resolving the error above, you can run this automation again to confirm the changes have been made correctly.
    - More details for this particular error can be found within the individual step details."

**Hinweis:**Um Sie bei der Problembehebung, Behebungshilfe, Verwaltung und Kostensenkung Ihrer AWS-Ressourcen zu unterstützen, verwaltet der AWS Support eine Teilmenge der von AWS bereitgestellten vordefinierten Runbooks. Die Runbook-Präfixe lauten awsSupport- und awsPremiumSupport-.

Verwandte Informationen

Ausführen einer Automatisierung

Einrichten der Automatisierung