Flexibel portutgång

Lär dig hur du konfigurerar och använder flexibel portutgångar för att stödja externa anslutningar från AEM as a Cloud Service till externa tjänster.

Vad är flexibel hamnutgång?

Flexibla portutgångar gör det möjligt att koppla anpassade, specifika regler för portvidarebefordran till AEM as a Cloud Service, vilket gör det möjligt att ansluta från AEM till externa tjänster.

Ett Cloud Manager-program kan bara ha en enkel typ av nätverksinfrastruktur. Se till att flexibel portutgång är den mest lämplig typ av nätverksinfrastruktur för AEM as a Cloud Service innan följande kommandon utförs.

Förutsättningar

Följande krävs när du ställer in eller konfigurerar flexibel portutgång med API:er för Cloud Manager:

Mer information finns i följande genomgång om hur du konfigurerar, konfigurerar och hämtar API-autentiseringsuppgifter för Cloud Manager och hur du använder dem för att göra ett API-anrop för Cloud Manager.

Den här självstudiekursen använder curl för att göra API-konfigurationer för Cloud Manager. Angiven curl -kommandon förutsätter en Linux/macOS-syntax. Om du använder kommandotolken i Windows ersätter du \ radbrytningstecken med ^.

Möjliggör flexibel portutgång per program

Börja med att aktivera den flexibla porten på AEM as a Cloud Service.

Cloud Manager

Flexibel portutgång kan aktiveras med hjälp av Cloud Manager. I följande steg beskrivs hur du aktiverar flexibel portutgång på AEM as a Cloud Service med hjälp av Cloud Manager.

  1. Logga in på Adobe Experience Manager Cloud Manager som affärsägare i Cloud Manager.

  2. Navigera till önskat program.

  3. Navigera till den vänstra menyn Tjänster > Nätverksinfrastruktur.

  4. Välj Lägg till nätverksinfrastruktur -knappen.

    Lägg till nätverksinfrastruktur

  5. I Lägg till nätverksinfrastruktur väljer du Flexibel portutgång och väljer Län för att skapa den dedikerade IP-adressen för utgångar.

    Lägg till flexibel portutgång

  6. Välj Spara för att bekräfta tillägget av den flexibla hamnutgången.

    Bekräfta flexibel skapande av portutgångar

  7. Vänta tills nätverksinfrastrukturen har skapats och markerats som Klar. Den här processen kan ta upp till 1 timme.

    Status för att skapa flexibel portutgång

När du har skapat en flexibel portutgång kan du nu konfigurera regler för portvidarebefordran med hjälp av API:erna för Cloud Manager enligt beskrivningen nedan.

API:er för Cloud Manager

Flexibel portutgång kan aktiveras med API:er för Cloud Manager. I följande steg beskrivs hur du aktiverar flexibel portutgång på AEM as a Cloud Service med hjälp av API:t för Cloud Manager.

  1. Först identifierar du vilken region Advanced Networking (avancerat nätverk) som har konfigurerats i med hjälp av Cloud Manager API listRegions operation. The region name krävs för att göra efterföljande API-anrop för Cloud Manager. Normalt används regionen där produktionsmiljön finns.

    Hitta den AEM as a Cloud Service miljöns region i Cloud Manager under miljöinformation. Regionnamnet som visas i Cloud Manager kan mappas till regionkoden används i Cloud Manager API.

    listRegions HTTP request

    code language-shell
    $ curl -X GET https://cloudmanager.adobe.io/api/program/{programId}/regions \
        -H 'x-gw-ims-org-id: <ORGANIZATION_ID>' \
        -H 'x-api-key: <CLIENT_ID>' \
        -H 'Authorization: Bearer <ACCESS_TOKEN>' \
        -H 'Content-Type: application/json'
    
  2. Aktivera flexibel portutgång för ett Cloud Manager-program med hjälp av API:t för Cloud Manager createNetworkInfrastructure operation. Använd lämplig region kod som hämtats från Cloud Manager API listRegions operation.

    createNetworkInfrastructure HTTP-begäran

    code language-shell
    $ curl -X POST https://cloudmanager.adobe.io/api/program/{programId}/networkInfrastructures \
        -H 'x-gw-ims-org-id: <ORGANIZATION_ID>' \
        -H 'x-api-key: <CLIENT_ID>' \
        -H 'Authorization: Bearer <ACCESS_TOKEN>' \
        -H 'Content-Type: application/json' \
        -d '{ "kind": "flexiblePortEgress", "region": "va7" }'
    

    Vänta i 15 minuter tills Cloud Manager-programmet etablerar nätverksinfrastrukturen.

  3. Kontrollera att miljön är klar flexibel portutgång konfiguration med Cloud Manager API getNetworkInfrastructure åtgärd, använda id returneras från createNetworkInfrastructure HTTP-begäran i föregående steg.

    getNetworkInfrastructure HTTP-begäran

    code language-shell
    $ curl -X GET https://cloudmanager.adobe.io/api/program/{programId}/networkInfrastructure/{networkInfrastructureId} \
        -H 'x-gw-ims-org-id: <ORGANIZATION_ID>' \
        -H 'x-api-key: <CLIENT_ID>' \
        -H 'Authorization: Bearer <ACCESS_TOKEN>' \
        -H 'Content-Type: application/json'
    

    Verifiera att HTTP-svaret innehåller en status av klar. Om du inte är klar ännu kontrollerar du statusen var några minut.

När du har skapat en flexibel portutgång kan du nu konfigurera regler för portvidarebefordran med hjälp av API:erna för Cloud Manager enligt beskrivningen nedan.

Konfigurera flexibla portaregresproxy per miljö

  1. Aktivera och konfigurera flexibel portutgång konfiguration för varje AEM as a Cloud Service miljö med API:t för Cloud Manager enableEnvironmentAdvancedNetworkingConfiguration operation.

    enableEnvironmentAdvancedNetworkingConfiguration HTTP-begäran

    code language-shell
    $ curl -X PUT https://cloudmanager.adobe.io/api/program/{programId}/environment/{environmentId}/advancedNetworking \
        -H 'x-gw-ims-org-id: <ORGANIZATION_ID>' \
        -H 'x-api-key: <CLIENT_ID>' \
        -H 'Authorization: Bearer <ACCESS_TOKEN>' \
        -H 'Content-Type: application/json' \
        -d @./flexible-port-egress.json
    

    Definiera JSON-parametrarna i en flexible-port-egress.json och tillhandahålls för att surfa via ... -d @./flexible-port-egress.json.

    Hämta exemplet flexible-port-egress.json. Filen är bara ett exempel. Konfigurera filen efter behov baserat på de valfria/obligatoriska fälten som beskrivs i enableEnvironmentAdvancedNetworkingConfiguration.

    code language-json
    {
        "portForwards": [
            {
                "name": "mysql.example.com",
                "portDest": 3306,
                "portOrig": 30001
            },
            {
                "name": "smtp.sendgrid.com",
                "portDest": 465,
                "portOrig": 30002
            }
        ]
    }
    

    För varje portForwards mappning, definierar det avancerade nätverket följande vidarebefordringsregel:

    table 0-row-5 1-row-5
    Proxyvärd Proxyport Extern värd Extern port
    AEM_PROXY_HOST portForwards.portOrig portForwards.name portForwards.portDest

    Om din AEM endast kräver HTTP/HTTPS-anslutningar (port 80/443) till extern tjänst, lämna portForwards matrisen är tom eftersom dessa regler endast krävs för icke-HTTP/HTTPS-begäranden.

  2. Verifiera egresreglerna för varje miljö med hjälp av API:t för Cloud Manager getEnvironmentAdvancedNetworkingConfiguration operation.

    getEnvironmentAdvancedNetworkingConfiguration HTTP-begäran

    code language-shell
    $ curl -X GET https://cloudmanager.adobe.io/api/program/{programId}/environment/{environmentId}/advancedNetworking \
        -H 'x-gw-ims-org-id: <ORGANIZATION_ID>' \
        -H 'Authorization: Bearer <ACCESS_TOKEN>' \
        -H 'x-api-key: <CLIENT_ID>' \
        -H 'Content-Type: application/json'
    
  3. Flexibla portutgångskonfigurationer kan uppdateras med API:t för Cloud Manager enableEnvironmentAdvancedNetworkingConfiguration operation. Kom ihåg enableEnvironmentAdvancedNetworkingConfiguration är en PUT -åtgärd, så alla regler måste anges för varje anrop av den här åtgärden.

  4. Nu kan du använda den flexibla konfigurationen av portutgångar i din anpassade AEM och konfiguration.

Ansluta till externa tjänster via flexibel hamnutgång

När den flexibla portaregresproxyn är aktiverad kan AEM kod och konfiguration använda dem för att ringa till externa tjänster. Det finns två varianter av externa anrop som AEM behandlar på olika sätt:

  1. HTTP/HTTPS-anrop till externa tjänster på icke-standardportar
    • Innehåller HTTP/HTTPS-anrop till tjänster som körs på andra portar än standardportarna 80 eller 443.
  2. icke-HTTP/HTTPS-anrop till externa tjänster
    • Inkluderar alla icke-HTTP-anrop, till exempel anslutningar med e-postservrar, SQL-databaser eller tjänster som körs på andra icke-HTTP/HTTPS-protokoll.

HTTP/HTTPS-begäranden från AEM på standardportar (80/443) tillåts som standard och kräver ingen extra konfiguration eller överväganden.

HTTP/HTTPS på portar som inte är standard

När du skapar HTTP/HTTPS-anslutningar till portar som inte är standard (not-80/443) från AEM, måste anslutningarna göras via en särskild värd och portar, som tillhandahålls via platshållare.

AEM innehåller två uppsättningar särskilda Java™-systemvariabler som mappar till AEM HTTP/HTTPS-proxy.

Variabelnamn
Använd
Java™-kod
OSGi-konfiguration
AEM_PROXY_HOST
Proxyvärd för både HTTP/HTTPS-anslutningar
System.getenv().getOrDefault("AEM_PROXY_HOST", "proxy.tunnel")
$[env:AEM_PROXY_HOST;default=proxy.tunnel]
AEM_HTTP_PROXY_PORT
Proxyport för HTTPS-anslutningar (ange reserv som reserv till 3128)
System.getenv().getOrDefault("AEM_HTTP_PROXY_PORT", 3128)
$[env:AEM_HTTP_PROXY_PORT;default=3128]
AEM_HTTPS_PROXY_PORT
Proxyport för HTTPS-anslutningar (ange reserv som reserv till 3128)
System.getenv().getOrDefault("AEM_HTTPS_PROXY_PORT", 3128)
$[env:AEM_HTTPS_PROXY_PORT;default=3128]

När HTTP/HTTPS-anrop görs till externa tjänster på portar som inte är standard utförs ingen motsvarande portForwards måste definieras med Cloud Manager API enableEnvironmentAdvancedNetworkingConfiguration -åtgärd, eftersom portvidarebefordringens "regler" är definierade i koden.

TIP
I AEM as a Cloud Service dokumentation om flexibel portutgång finns mer information alla routningsregler.

Exempel på koder

HTTP/HTTPS på portar som inte är standard

HTTP/HTTPS på portar som inte är standard

Exempel på Java™-kod som gör HTTP/HTTPS-anslutning från AEM as a Cloud Service till en extern tjänst på icke-standard HTTP/HTTPS-portar.

Icke-HTTP/HTTPS-anslutningar till externa tjänster

När anslutningar som inte är HTTP/HTTPS skapas (t.ex. SQL, SMTP och så vidare) från AEM måste anslutningen upprättas via ett särskilt värdnamn som AEM anger.

Variabelnamn
Använd
Java™-kod
OSGi-konfiguration
AEM_PROXY_HOST
Proxyvärd för icke-HTTP/HTTPS-anslutningar
System.getenv().getOrDefault("AEM_PROXY_HOST", "proxy.tunnel")
$[env:AEM_PROXY_HOST;default=proxy.tunnel]

Anslutningar till externa tjänster anropas sedan via AEM_PROXY_HOST och den mappade porten (portForwards.portOrig), som AEM sedan dirigeras till det mappade externa värdnamnet (portForwards.name) och port (portForwards.portDest).

Proxyvärd
Proxyport
Extern värd
Extern port
AEM_PROXY_HOST
portForwards.portOrig
portForwards.name
portForwards.portDest

Exempel på koder

SQL-anslutning med JDBC DataSourcePool

SQL-anslutning med JDBC DataSourcePool

Exempel på Java™-kod som ansluter till externa SQL-databaser genom att konfigurera AEM JDBC-datakällpool.

SQL-anslutning med Java API:er

SQL-anslutning med Java™ API:er

Exempel på Java™-kod som ansluter till externa SQL-databaser med Java™ SQL API:er.

VPN (Virtual Private Network)

E-posttjänst

Exempel på OSGi-konfiguration som använder AEM för att ansluta till externa e-posttjänster.

recommendation-more-help
4859a77c-7971-4ac9-8f5c-4260823c6f69