Esta documentação é somente para a versão 1 da AWS CLI. Para obter a documentação relacionada à AWS CLI versão 2, consulte o Guia do usuário da versão 2.
Exemplos de App Mesh usando a AWS CLI
Os exemplos de código a seguir mostram como realizar ações e implementar cenários comuns usando o AWS Command Line Interface com o App Mesh.
Ações são trechos de código de programas maiores e devem ser executadas em contexto. Embora as ações mostrem como chamar funções de serviço individuais, você pode ver as ações no contexto em seus cenários relacionados.
Cada exemplo inclui um link para o código-fonte completo, em que você pode encontrar instruções sobre como configurar e executar o código.
Tópicos
Ações
O código de exemplo a seguir mostra como usar create-mesh
.
- AWS CLI
-
Exemplo 1: criar uma nova malha de serviços
O exemplo
create-mesh
a seguir cria uma malha de serviços.aws appmesh create-mesh \ --mesh-name
app1
Saída:
{ "mesh":{ "meshName":"app1", "metadata":{ "arn":"arn:aws:appmesh:us-east-1:123456789012:mesh/app1", "createdAt":1563809909.282, "lastUpdatedAt":1563809909.282, "uid":"a1b2c3d4-5678-90ab-cdef-11111EXAMPLE", "version":1 }, "spec":{}, "status":{ "status":"ACTIVE" } } }
Exemplo 2: criar uma nova malha de serviços com várias tags
O exemplo
create-mesh
a seguir cria uma malha de serviços com várias tags.aws appmesh create-mesh \ --mesh-name
app2
\ --tagskey=key1,value=value1
key=key2,value=value2
key=key3,value=value3
Saída:
{ "mesh":{ "meshName":"app2", "metadata":{ "arn":"arn:aws:appmesh:us-east-1:123456789012:mesh/app2", "createdAt":1563822121.877, "lastUpdatedAt":1563822121.877, "uid":"a1b2c3d4-5678-90ab-cdef-11111EXAMPLE", "version":1 }, "spec":{}, "status":{ "status":"ACTIVE" } } }
Para obter mais informações, consulte Malhas de serviços no Guia do usuário do AWS App Mesh.
-
Para ver detalhes da API, consulte CreateMesh
na Referência de comandos da AWS CLI.
-
O código de exemplo a seguir mostra como usar create-route
.
- AWS CLI
-
Para criar uma nova rota gRPC
O exemplo
create-route
a seguir usa um arquivo de entrada JSON para criar uma rota gRPC. O tráfego de GRPC que tem metadados que começam com 123 é roteado para um nó virtual chamado serviceBgrpc. Se houver falhas específicas de gRPC, HTTP ou TCP ao tentar se comunicar com o destino da rota, a rota será repetida três vezes. Há um atraso de 15 segundos entre cada nova tentativa.aws appmesh create-route \ --cli-input-json
file://create-route-grpc.json
Conteúdo de
create-route-grpc.json
:{ "meshName" : "apps", "routeName" : "grpcRoute", "spec" : { "grpcRoute" : { "action" : { "weightedTargets" : [ { "virtualNode" : "serviceBgrpc", "weight" : 100 } ] }, "match" : { "metadata" : [ { "invert" : false, "match" : { "prefix" : "123" }, "name" : "myMetadata" } ], "methodName" : "GetColor", "serviceName" : "com.amazonaws.services.ColorService" }, "retryPolicy" : { "grpcRetryEvents" : [ "deadline-exceeded" ], "httpRetryEvents" : [ "server-error", "gateway-error" ], "maxRetries" : 3, "perRetryTimeout" : { "unit" : "s", "value" : 15 }, "tcpRetryEvents" : [ "connection-error" ] } }, "priority" : 100 }, "virtualRouterName" : "serviceBgrpc" }
Saída:
{ "route": { "meshName": "apps", "metadata": { "arn": "arn:aws:appmesh:us-west-2:123456789012:mesh/apps/virtualRouter/serviceBgrpc/route/grpcRoute", "createdAt": 1572010806.008, "lastUpdatedAt": 1572010806.008, "uid": "a1b2c3d4-5678-90ab-cdef-11111EXAMPLE", "version": 1 }, "routeName": "grpcRoute", "spec": { "grpcRoute": { "action": { "weightedTargets": [ { "virtualNode": "serviceBgrpc", "weight": 100 } ] }, "match": { "metadata": [ { "invert": false, "match": { "prefix": "123" }, "name": "mymetadata" } ], "methodName": "GetColor", "serviceName": "com.amazonaws.services.ColorService" }, "retryPolicy": { "grpcRetryEvents": [ "deadline-exceeded" ], "httpRetryEvents": [ "server-error", "gateway-error" ], "maxRetries": 3, "perRetryTimeout": { "unit": "s", "value": 15 }, "tcpRetryEvents": [ "connection-error" ] } }, "priority": 100 }, "status": { "status": "ACTIVE" }, "virtualRouterName": "serviceBgrpc" } }
Para criar uma nova rota HTTP ou HTTP/2
O exemplo
create-route
a seguir usa um arquivo de entrada JSON para criar uma rota HTTP/2. Para criar uma rota HTTP, substitua http2Route por httpRoute na especificação. Todo o tráfego HTTP/2 endereçado a qualquer prefixo de URL que tenha um valor de cabeçalho que comece com 123 é roteado para um nó virtual chamado serviceBhttp2. Se houver falhas específicas de HTTP ou TCP ao tentar se comunicar com o destino da rota, a rota será repetida três vezes. Há um atraso de 15 segundos entre cada nova tentativa.aws appmesh create-route \ --cli-input-json
file://create-route-http2.json
Conteúdo de
create-route-http2.json
:{ "meshName": "apps", "routeName": "http2Route", "spec": { "http2Route": { "action": { "weightedTargets": [ { "virtualNode": "serviceBhttp2", "weight": 100 } ] }, "match": { "headers": [ { "invert": false, "match": { "prefix": "123" }, "name": "clientRequestId" } ], "method": "POST", "prefix": "/", "scheme": "http" }, "retryPolicy": { "httpRetryEvents": [ "server-error", "gateway-error" ], "maxRetries": 3, "perRetryTimeout": { "unit": "s", "value": 15 }, "tcpRetryEvents": [ "connection-error" ] } }, "priority": 200 }, "virtualRouterName": "serviceBhttp2" }
Saída:
{ "route": { "meshName": "apps", "metadata": { "arn": "arn:aws:appmesh:us-west-2:123456789012:mesh/apps/virtualRouter/serviceBhttp2/route/http2Route", "createdAt": 1572011008.352, "lastUpdatedAt": 1572011008.352, "uid": "a1b2c3d4-5678-90ab-cdef-11111EXAMPLE", "version": 1 }, "routeName": "http2Route", "spec": { "http2Route": { "action": { "weightedTargets": [ { "virtualNode": "serviceBhttp2", "weight": 100 } ] }, "match": { "headers": [ { "invert": false, "match": { "prefix": "123" }, "name": "clientRequestId" } ], "method": "POST", "prefix": "/", "scheme": "http" }, "retryPolicy": { "httpRetryEvents": [ "server-error", "gateway-error" ], "maxRetries": 3, "perRetryTimeout": { "unit": "s", "value": 15 }, "tcpRetryEvents": [ "connection-error" ] } }, "priority": 200 }, "status": { "status": "ACTIVE" }, "virtualRouterName": "serviceBhttp2" } }
Para criar uma nova rota TCP
O exemplo
create-route
a seguir usa um arquivo de entrada JSON para criar uma rota TCP, em que 75% do tráfego é roteado para um nó virtual chamado serviceBtcp e 25% do tráfego é roteado para um nó virtual chamado serviceBv2tcp. Especificar pesos diferentes para destinos diferentes é uma forma eficaz para implantação de uma nova versão de um aplicativo. Você pode ajustar os pesos para que, por fim, 100% de todo o tráfego seja roteado para um destino que tenha a nova versão de um aplicativo.aws appmesh create-route \ --cli-input-json
file://create-route-tcp.json
Conteúdo do create-route-tcp.json:
{ "meshName": "apps", "routeName": "tcpRoute", "spec": { "priority": 300, "tcpRoute": { "action": { "weightedTargets": [ { "virtualNode": "serviceBtcp", "weight": 75 }, { "virtualNode": "serviceBv2tcp", "weight": 25 } ] } } }, "virtualRouterName": "serviceBtcp" }
Saída:
{ "route": { "meshName": "apps", "metadata": { "arn": "arn:aws:appmesh:us-west-2:123456789012:mesh/apps/virtualRouter/serviceBtcp/route/tcpRoute", "createdAt": 1572011436.26, "lastUpdatedAt": 1572011436.26, "uid": "a1b2c3d4-5678-90ab-cdef-11111EXAMPLE", "version": 1 }, "routeName": "tcpRoute", "spec": { "priority": 300, "tcpRoute": { "action": { "weightedTargets": [ { "virtualNode": "serviceBtcp", "weight": 75 }, { "virtualNode": "serviceBv2tcp", "weight": 25 } ] } } }, "status": { "status": "ACTIVE" }, "virtualRouterName": "serviceBtcp" } }
Para obter mais informações, consulte Rotas no Guia do usuário do AWS App Mesh.
-
Para ver detalhes da API, consulte CreateRoute
na Referência de comandos da AWS CLI.
-
O código de exemplo a seguir mostra como usar create-virtual-gateway
.
- AWS CLI
-
Para criar um gateway privado virtual
O exemplo
create-virtual-gateway
a seguir usa um arquivo de entrada JSON para criar um gateway virtual com um receptor para HTTP usando a porta 9080.aws appmesh create-virtual-gateway \ --mesh-name
meshName
\ --virtual-gateway-namevirtualGatewayName
\ --cli-input-jsonfile://create-virtual-gateway.json
Conteúdo de
create-virtual-gateway.json
:{ "spec": { "listeners": [ { "portMapping": { "port": 9080, "protocol": "http" } } ] } }
Saída:
{ "virtualGateway": { "meshName": "meshName", "metadata": { "arn": "arn:aws:appmesh:us-west-2:123456789012:mesh/meshName/virtualGateway/virtualGatewayName", "createdAt": "2022-04-06T10:42:42.015000-05:00", "lastUpdatedAt": "2022-04-06T10:42:42.015000-05:00", "meshOwner": "123456789012", "resourceOwner": "123456789012", "uid": "a1b2c3d4-5678-90ab-cdef-11111EXAMPLE", "version": 1 }, "spec": { "listeners": [ { "portMapping": { "port": 9080, "protocol": "http" } } ] }, "status": { "status": "ACTIVE" }, "virtualGatewayName": "virtualGatewayName" } }
Para obter mais informações, consulte Gateways virtuais no Guia do usuário do AWS App Mesh.
-
Para ver detalhes da API, consulte CreateVirtualGateway
na Referência de comandos da AWS CLI.
-
O código de exemplo a seguir mostra como usar create-virtual-node
.
- AWS CLI
-
Exemplo 1: criar um novo nó virtual que usa DNS para descoberta
O exemplo
create-virtual-node
a seguir usa um arquivo de entrada JSON para criar um nó virtual que usa DNS para descoberta de serviços.aws appmesh create-virtual-node \ --cli-input-json
file://create-virtual-node-dns.json
Conteúdo de
create-virtual-node-dns.json
:{ "meshName": "app1", "spec": { "listeners": [ { "portMapping": { "port": 80, "protocol": "http" } } ], "serviceDiscovery": { "dns": { "hostname": "serviceBv1.svc.cluster.local" } } }, "virtualNodeName": "vnServiceBv1" }
Saída:
{ "virtualNode": { "meshName": "app1", "metadata": { "arn": "arn:aws:appmesh:us-east-1:123456789012:mesh/app1/virtualNode/vnServiceBv1", "createdAt": 1563810019.874, "lastUpdatedAt": 1563810019.874, "uid": "a1b2c3d4-5678-90ab-cdef-11111EXAMPLE", "version": 1 }, "spec": { "listeners": [ { "portMapping": { "port": 80, "protocol": "http" } } ], "serviceDiscovery": { "dns": { "hostname": "serviceBv1.svc.cluster.local" } } }, "status": { "status": "ACTIVE" }, "virtualNodeName": "vnServiceBv1" } }
Exemplo 2: criar um novo nó virtual que usa o AWS Cloud Map para descoberta
O exemplo
create-virtual-node
a seguir usa um arquivo de entrada JSON para criar um nó virtual que usa o AWS Cloud Map para descoberta de serviços.aws appmesh create-virtual-node \ --cli-input-json
file://create-virtual-node-cloud-map.json
Conteúdo de
create-virtual-node-cloud-map.json
:{ "meshName": "app1", "spec": { "backends": [ { "virtualService": { "virtualServiceName": "serviceA.svc.cluster.local" } } ], "listeners": [ { "portMapping": { "port": 80, "protocol": "http" } } ], "serviceDiscovery": { "awsCloudMap": { "attributes": [ { "key": "Environment", "value": "Testing" } ], "namespaceName": "namespace1", "serviceName": "serviceA" } } }, "virtualNodeName": "vnServiceA" }
Saída:
{ "virtualNode": { "meshName": "app1", "metadata": { "arn": "arn:aws:appmesh:us-east-1:123456789012:mesh/app1/virtualNode/vnServiceA", "createdAt": 1563810859.465, "lastUpdatedAt": 1563810859.465, "uid": "a1b2c3d4-5678-90ab-cdef-11111EXAMPLE", "version": 1 }, "spec": { "backends": [ { "virtualService": { "virtualServiceName": "serviceA.svc.cluster.local" } } ], "listeners": [ { "portMapping": { "port": 80, "protocol": "http" } } ], "serviceDiscovery": { "awsCloudMap": { "attributes": [ { "key": "Environment", "value": "Testing" } ], "namespaceName": "namespace1", "serviceName": "serviceA" } } }, "status": { "status": "ACTIVE" }, "virtualNodeName": "vnServiceA" } }
Para obter mais informações, consulte Nós virtuais no Guia do usuário do AWS App Mesh.
-
Para ver detalhes da API, consulte CreateVirtualNode
na Referência de comandos da AWS CLI.
-
O código de exemplo a seguir mostra como usar create-virtual-router
.
- AWS CLI
-
Para criar um roteador virtual
O exemplo
create-virtual-router
a seguir usa um arquivo de entrada JSON para criar um roteador virtual com um receptor para HTTP usando a porta 80.aws appmesh create-virtual-router \ --cli-input-json
file://create-virtual-router.json
Conteúdo de
create-virtual-router.json
:{ "meshName": "app1", "spec": { "listeners": [ { "portMapping": { "port": 80, "protocol": "http" } } ] }, "virtualRouterName": "vrServiceB" }
Saída:
{ "virtualRouter": { "meshName": "app1", "metadata": { "arn": "arn:aws:appmesh:us-east-1:123456789012:mesh/app1/virtualRouter/vrServiceB", "createdAt": 1563810546.59, "lastUpdatedAt": 1563810546.59, "uid": "a1b2c3d4-5678-90ab-cdef-11111EXAMPLE", "version": 1 }, "spec": { "listeners": [ { "portMapping": { "port": 80, "protocol": "http" } } ] }, "status": { "status": "ACTIVE" }, "virtualRouterName": "vrServiceB" } }
Para obter mais informações, consulte Roteadores virtuais no Guia do usuário do AWS App Mesh.
-
Para ver detalhes da API, consulte CreateVirtualRouter
na Referência de comandos da AWS CLI.
-
O código de exemplo a seguir mostra como usar create-virtual-service
.
- AWS CLI
-
Exemplo 1: criar um novo serviço virtual com um provedor de nós virtuais
O exemplo
create-virtual-service
a seguir usa um arquivo de entrada JSON para criar um serviço virtual com um provedor de nó virtual.aws appmesh create-virtual-service \ --cli-input-json
file://create-virtual-service-virtual-node.json
Conteúdo de
create-virtual-service-virtual-node.json
:{ "meshName": "app1", "spec": { "provider": { "virtualNode": { "virtualNodeName": "vnServiceA" } } }, "virtualServiceName": "serviceA.svc.cluster.local" }
Saída:
{ "virtualService": { "meshName": "app1", "metadata": { "arn": "arn:aws:appmesh:us-east-1:123456789012:mesh/app1/virtualService/serviceA.svc.cluster.local", "createdAt": 1563810859.474, "lastUpdatedAt": 1563810967.179, "uid": "a1b2c3d4-5678-90ab-cdef-11111EXAMPLE", "version": 2 }, "spec": { "provider": { "virtualNode": { "virtualNodeName": "vnServiceA" } } }, "status": { "status": "ACTIVE" }, "virtualServiceName": "serviceA.svc.cluster.local" } }
Para obter mais informações, consulte Nó virtual no Guia do usuário do AWS App Mesh.
Exemplo 2: criar um novo serviço virtual com um provedor de roteador virtual
O exemplo
create-virtual-service
a seguir usa um arquivo de entrada JSON para criar um serviço virtual com um provedor de roteador virtual.aws appmesh create-virtual-service \ --cli-input-json
file://create-virtual-service-virtual-router.json
Conteúdo de
create-virtual-service-virtual-router.json
:{ "meshName": "app1", "spec": { "provider": { "virtualRouter": { "virtualRouterName": "vrServiceB" } } }, "virtualServiceName": "serviceB.svc.cluster.local" }
Saída:
{ "virtualService": { "meshName": "app1", "metadata": { "arn": "arn:aws:appmesh:us-east-1:123456789012:mesh/app1/virtualService/serviceB.svc.cluster.local", "createdAt": 1563908363.999, "lastUpdatedAt": 1563908363.999, "uid": "a1b2c3d4-5678-90ab-cdef-11111EXAMPLE", "version": 1 }, "spec": { "provider": { "virtualRouter": { "virtualRouterName": "vrServiceB" } } }, "status": { "status": "ACTIVE" }, "virtualServiceName": "serviceB.svc.cluster.local" } }
Para obter mais informações, consulte Serviços virtuais <https://docs.aws.amazon.com/app-mesh/latest/userguide/virtual_services.html> no Guia do usuário do AWS App Mesh
-
Para ver detalhes da API, consulte CreateVirtualService
na Referência de comandos da AWS CLI.
-
O código de exemplo a seguir mostra como usar delete-mesh
.
- AWS CLI
-
Para excluir uma malha de serviços
O exemplo
delete-mesh
a seguir exclui o serviço especificado de uma malha de serviços.aws appmesh delete-mesh \ --mesh-name
app1
Saída:
{ "mesh": { "meshName": "app1", "metadata": { "arn": "arn:aws:appmesh:us-east-1:123456789012:mesh/app1", "createdAt": 1563809909.282, "lastUpdatedAt": 1563824981.248, "uid": "a1b2c3d4-5678-90ab-cdef-11111EXAMPLE", "version": 2 }, "spec": { "egressFilter": { "type": "ALLOW_ALL" } }, "status": { "status": "DELETED" } } }
Para obter mais informações, consulte Malhas de serviços no Guia do usuário do AWS App Mesh.
-
Para ver detalhes da API, consulte DeleteMesh
na Referência de comandos da AWS CLI.
-
O código de exemplo a seguir mostra como usar delete-route
.
- AWS CLI
-
Para excluir uma rota
O exemplo
delete-route
a seguir exclui a rota especificada.aws appmesh delete-route \ --mesh-name
app1
\ --virtual-router-namevrServiceB
\ --route-nametoVnServiceB-weighted
Saída:
{ "route": { "meshName": "app1", "metadata": { "arn": "arn:aws:appmesh:us-east-1:123456789012:mesh/app1/virtualRouter/vrServiceB/route/toVnServiceB-weighted", "createdAt": 1563811384.015, "lastUpdatedAt": 1563823915.936, "uid": "a1b2c3d4-5678-90ab-cdef-11111EXAMPLE", "version": 3 }, "routeName": "toVnServiceB-weighted", "spec": { "httpRoute": { "action": { "weightedTargets": [ { "virtualNode": "vnServiceBv1", "weight": 80 }, { "virtualNode": "vnServiceBv2", "weight": 20 } ] }, "match": { "prefix": "/" } } }, "status": { "status": "DELETED" }, "virtualRouterName": "vrServiceB" } }
Para obter mais informações, consulte Rotas no Guia do usuário do AWS App Mesh.
-
Para ver detalhes da API, consulte DeleteRoute
na Referência de comandos da AWS CLI.
-
O código de exemplo a seguir mostra como usar delete-virtual-node
.
- AWS CLI
-
Para excluir um nó virtual
O exemplo
delete-virtual-node
a seguir exclui o nó virtual especificado.aws appmesh delete-virtual-node \ --mesh-name
app1
\ --virtual-node-namevnServiceBv2
Saída:
{ "virtualNode": { "meshName": "app1", "metadata": { "arn": "arn:aws:appmesh:us-east-1:123456789012:mesh/app1/virtualNode/vnServiceBv2", "createdAt": 1563810117.297, "lastUpdatedAt": 1563824700.678, "uid": "a1b2c3d4-5678-90ab-cdef-11111EXAMPLE", "version": 2 }, "spec": { "backends": [], "listeners": [ { "portMapping": { "port": 80, "protocol": "http" } } ], "serviceDiscovery": { "dns": { "hostname": "serviceBv2.svc.cluster.local" } } }, "status": { "status": "DELETED" }, "virtualNodeName": "vnServiceBv2" } }
Para obter mais informações, consulte Nós virtuais no Guia do usuário do AWS App Mesh.
-
Para ver detalhes da API, consulte DeleteVirtualNode
na Referência de comandos da AWS CLI.
-
O código de exemplo a seguir mostra como usar delete-virtual-router
.
- AWS CLI
-
Para excluir um roteador virtual
O exemplo
delete-virtual-router
a seguir exclui o roteador virtual especificado.aws appmesh delete-virtual-router \ --mesh-name
app1
\ --virtual-router-namevrServiceB
Saída:
{ "virtualRouter": { "meshName": "app1", "metadata": { "arn": "arn:aws:appmesh:us-east-1:123456789012:mesh/app1/virtualRouter/vrServiceB", "createdAt": 1563810546.59, "lastUpdatedAt": 1563824253.467, "uid": "a1b2c3d4-5678-90ab-cdef-11111EXAMPLE", "version": 3 }, "spec": { "listeners": [ { "portMapping": { "port": 80, "protocol": "http" } } ] }, "status": { "status": "DELETED" }, "virtualRouterName": "vrServiceB" } }
Para obter mais informações, consulte Roteadores virtuais no Guia do usuário do AWS App Mesh.
-
Para ver detalhes da API, consulte DeleteVirtualRouter
na Referência de comandos da AWS CLI.
-
O código de exemplo a seguir mostra como usar delete-virtual-service
.
- AWS CLI
-
Com excluir um serviço virtual
O exemplo
delete-virtual-service
a seguir exclui o serviço virtual especificado.aws appmesh delete-virtual-service \ --mesh-name
app1
\ --virtual-service-nameserviceB.svc.cluster.local
Saída:
{ "virtualService": { "meshName": "app1", "metadata": { "arn": "arn:aws:appmesh:us-east-1:123456789012:mesh/app1/virtualService/serviceB.svc.cluster.local", "createdAt": 1563908363.999, "lastUpdatedAt": 1563913940.866, "uid": "a1b2c3d4-5678-90ab-cdef-11111EXAMPLE", "version": 3 }, "spec": {}, "status": { "status": "DELETED" }, "virtualServiceName": "serviceB.svc.cluster.local" } }
Para obter mais informações, consulte Serviço virtual no Guia do usuário do AWS App Mesh.
-
Para ver detalhes da API, consulte DeleteVirtualService
na Referência de comandos da AWS CLI.
-
O código de exemplo a seguir mostra como usar describe-mesh
.
- AWS CLI
-
Para descrever uma malha de serviços
O exemplo
describe-mesh
a seguir retorna detalhes da malha de serviços especificada.aws appmesh describe-mesh \ --mesh-name
app1
Saída:
{ "mesh": { "meshName": "app1", "metadata": { "arn": "arn:aws:appmesh:us-east-1:123456789012:mesh/app1", "createdAt": 1563809909.282, "lastUpdatedAt": 1563809909.282, "uid": "a1b2c3d4-5678-90ab-cdef-11111EXAMPLE", "version": 1 }, "spec": {}, "status": { "status": "ACTIVE" } } }
Para obter mais informações, consulte Malhas de serviços no Guia do usuário do AWS App Mesh.
-
Para ver detalhes da API, consulte DescribeMesh
na Referência de comandos da AWS CLI.
-
O código de exemplo a seguir mostra como usar describe-route
.
- AWS CLI
-
Para descrever uma rota
O exemplo
describe-route
a seguir retorna detalhes da rota especificada.aws appmesh describe-route \ --mesh-name
app1
\ --virtual-router-namevrServiceB
\ --route-nametoVnServiceB-weighted
Saída:
{ "route": { "meshName": "app1", "metadata": { "arn": "arn:aws:appmesh:us-east-1:123456789012:mesh/app1/virtualRouter/vrServiceB/route/toVnServiceB-weighted", "createdAt": 1563811384.015, "lastUpdatedAt": 1563811384.015, "uid": "a1b2c3d4-5678-90ab-cdef-11111EXAMPLE", "version": 1 }, "routeName": "toVnServiceB-weighted", "spec": { "httpRoute": { "action": { "weightedTargets": [ { "virtualNode": "vnServiceBv1", "weight": 90 }, { "virtualNode": "vnServiceBv2", "weight": 10 } ] }, "match": { "prefix": "/" } } }, "status": { "status": "ACTIVE" }, "virtualRouterName": "vrServiceB" } }
Para obter mais informações, consulte Rotas no Guia do usuário do AWS App Mesh.
-
Para ver detalhes da API, consulte DescribeRoute
na Referência de comandos da AWS CLI.
-
O código de exemplo a seguir mostra como usar describe-virtual-node
.
- AWS CLI
-
Para descrever um nó virtual
O exemplo
describe-virtual-node
a seguir retorna detalhes do nó virtual especificado.aws appmesh describe-virtual-node \ --mesh-name
app1
\ --virtual-node-namevnServiceBv1
Saída:
{ "virtualNode": { "meshName": "app1", "metadata": { "arn": "arn:aws:appmesh:us-east-1:123456789012:mesh/app1/virtualNode/vnServiceBv1", "createdAt": 1563810019.874, "lastUpdatedAt": 1563810019.874, "uid": "a1b2c3d4-5678-90ab-cdef-11111EXAMPLE", "version": 1 }, "spec": { "backends": [], "listeners": [ { "portMapping": { "port": 80, "protocol": "http" } } ], "serviceDiscovery": { "dns": { "hostname": "serviceBv1.svc.cluster.local" } } }, "status": { "status": "ACTIVE" }, "virtualNodeName": "vnServiceBv1" } }
Para obter mais informações, consulte Nós virtuais no Guia do usuário do AWS App Mesh.
-
Para ver detalhes da API, consulte DescribeVirtualNode
na Referência de comandos da AWS CLI.
-
O código de exemplo a seguir mostra como usar describe-virtual-router
.
- AWS CLI
-
Para descrever um roteador virtual
O exemplo
describe-virtual-router
a seguir retorna detalhes do roteador virtual especificado.aws appmesh describe-virtual-router \ --mesh-name
app1
\ --virtual-router-namevrServiceB
Saída:
{ "virtualRouter": { "meshName": "app1", "metadata": { "arn": "arn:aws:appmesh:us-east-1:123456789012:mesh/app1/virtualRouter/vrServiceB", "createdAt": 1563810546.59, "lastUpdatedAt": 1563810546.59, "uid": "a1b2c3d4-5678-90ab-cdef-11111EXAMPLE", "version": 1 }, "spec": { "listeners": [ { "portMapping": { "port": 80, "protocol": "http" } } ] }, "status": { "status": "ACTIVE" }, "virtualRouterName": "vrServiceB" } }
Para obter mais informações, consulte Roteadores virtuais no Guia do usuário do AWS App Mesh.
-
Para ver detalhes da API, consulte DescribeVirtualRouter
na Referência de comandos da AWS CLI.
-
O código de exemplo a seguir mostra como usar describe-virtual-service
.
- AWS CLI
-
Para descrever um serviço virtual
O exemplo
describe-virtual-service
a seguir retorna detalhes do serviço virtual especificado.aws appmesh describe-virtual-service \ --mesh-name
app1
\ --virtual-service-nameserviceB.svc.cluster.local
Saída:
{ "virtualService": { "meshName": "app1", "metadata": { "arn": "arn:aws:appmesh:us-east-1:123456789012:mesh/app1/virtualService/serviceB.svc.cluster.local", "createdAt": 1563908363.999, "lastUpdatedAt": 1563908363.999, "uid": "a1b2c3d4-5678-90ab-cdef-11111EXAMPLE", "version": 1 }, "spec": { "provider": { "virtualRouter": { "virtualRouterName": "vrServiceB" } } }, "status": { "status": "ACTIVE" }, "virtualServiceName": "serviceB.svc.cluster.local" } }
Para obter mais informações, consulte Serviços virtuais no Guia do usuário do AWS App Mesh.
-
Para ver detalhes da API, consulte DescribeVirtualService
na Referência de comandos da AWS CLI.
-
O código de exemplo a seguir mostra como usar list-meshes
.
- AWS CLI
-
Para listar malhas de serviços
O exemplo
list-meshes
a seguir lista todas as malhas de serviços na região da AWS atual.aws appmesh list-meshes
Saída:
{ "meshes": [ { "arn": "arn:aws:appmesh:us-east-1:123456789012:mesh/app1", "meshName": "app1" } ] }
Para obter mais informações, consulte Malhas de serviços no Guia do usuário do AWS App Mesh.
-
Para ver detalhes da API, consulte ListMeshes
na Referência de comandos da AWS CLI.
-
O código de exemplo a seguir mostra como usar list-routes
.
- AWS CLI
-
Para listar rotas
O exemplo
list-routes
a seguir lista todas as rotas para o roteador virtual especificado.aws appmesh list-routes \ --mesh-name
app1
\ --virtual-router-namevrServiceB
Saída:
{ "routes": [ { "arn": "arn:aws:appmesh:us-east-1:123456789012:mesh/app1/virtualRouter/vrServiceB/route/toVnServiceB", "meshName": "app1", "routeName": "toVnServiceB-weighted", "virtualRouterName": "vrServiceB" } ] }
Para obter mais informações, consulte Rotas no Guia do usuário do AWS App Mesh.
-
Para ver detalhes da API, consulte ListRoutes
na Referência de comandos da AWS CLI.
-
O código de exemplo a seguir mostra como usar list-tags-for-resource
.
- AWS CLI
-
Para listar as tags para um recurso
O exemplo
list-tags-for-resource
a seguir lista todas as tags atribuídas ao recurso especificado.aws appmesh list-tags-for-resource \ --resource-arn
arn:aws:appmesh:us-east-1:123456789012:mesh/app1
Saída:
{ "tags": [ { "key": "key1", "value": "value1" }, { "key": "key2", "value": "value2" }, { "key": "key3", "value": "value3" } ] }
-
Para ver detalhes sobre a API, consulte ListTagsForResource
na Referência de comandos da AWS CLI.
-
O código de exemplo a seguir mostra como usar list-virtual-nodes
.
- AWS CLI
-
Para listar nós virtuais
O exemplo
list-virtual-nodes
a seguir lista todos os nós virtuais na malha de serviços especificada.aws appmesh list-virtual-nodes \ --mesh-name
app1
Saída:
{ "virtualNodes": [ { "arn": "arn:aws:appmesh:us-east-1:123456789012:mesh/app1/virtualNode/vnServiceBv1", "meshName": "app1", "virtualNodeName": "vnServiceBv1" }, { "arn": "arn:aws:appmesh:us-east-1:123456789012:mesh/app1/virtualNode/vnServiceBv2", "meshName": "app1", "virtualNodeName": "vnServiceBv2" } ] }
Para obter mais informações, consulte Nós virtuais no Guia do usuário do AWS App Mesh.
-
Para ver detalhes da API, consulte ListVirtualNodes
na Referência de comandos da AWS CLI.
-
O código de exemplo a seguir mostra como usar list-virtual-routers
.
- AWS CLI
-
Para listar roteadores virtuais
O exemplo
list-virtual-routers
a seguir lista todos os roteadores virtuais na malha de serviços especificada.aws appmesh list-virtual-routers \ --mesh-name
app1
Saída:
{ "virtualRouters": [ { "arn": "arn:aws:appmesh:us-east-1:123456789012:mesh/app1/virtualRouter/vrServiceB", "meshName": "app1", "virtualRouterName": "vrServiceB" } ] }
Para obter mais informações, consulte Roteadores virtuais no Guia do usuário do AWS App Mesh.
-
Para ver detalhes da API, consulte ListVirtualRouters
na Referência de comandos da AWS CLI.
-
O código de exemplo a seguir mostra como usar list-virtual-services
.
- AWS CLI
-
Para listar serviços virtuais
O exemplo
list-virtual-services
a seguir lista todos os serviços virtuais na malha de serviços especificada.aws appmesh list-virtual-services \ --mesh-name
app1
Saída:
{ "virtualServices": [ { "arn": "arn:aws:appmesh:us-east-1:123456789012:mesh/app1/virtualService/serviceA.svc.cluster.local", "meshName": "app1", "virtualServiceName": "serviceA.svc.cluster.local" }, { "arn": "arn:aws:appmesh:us-east-1:123456789012:mesh/app1/virtualService/serviceB.svc.cluster.local", "meshName": "app1", "virtualServiceName": "serviceB.svc.cluster.local" } ] }
Para obter mais informações, consulte Serviços virtuais no Guia do usuário do AWS App Mesh.
-
Para ver detalhes da API, consulte ListVirtualServices
na Referência de comandos da AWS CLI.
-
O código de exemplo a seguir mostra como usar tag-resource
.
- AWS CLI
-
Como marcar um recurso
O exemplo
tag-resource
a seguir adiciona a tagkey1
com o valorvalue1
ao recursos especificado.aws appmesh tag-resource \ --resource-arn
arn:aws:appmesh:us-east-1:123456789012:mesh/app1
\ --tagskey=key1,value=value1
Este comando não produz saída.
-
Para obter detalhes da API, consulte TagResource
na Referência de comandos da AWS CLI.
-
O código de exemplo a seguir mostra como usar untag-resource
.
- AWS CLI
-
Como desmarcar um recurso
O exemplo
untag-resource
a seguir remove a tag com a chavekey1
do recurso especificado.aws appmesh untag-resource \ --resource-arn
arn:aws:appmesh:us-east-1:123456789012:mesh/app1
\ --tag-keyskey1
Este comando não produz saída.
-
Para obter detalhes sobre a API, consulte UntagResource
na Referência de comandos da AWS CLI.
-
O código de exemplo a seguir mostra como usar update-mesh
.
- AWS CLI
-
Para atualizar uma malha de serviços
O exemplo
update-mesh
a seguir usa um arquivo de entrada JSON para atualizar uma malha de serviços para permitir que todo o tráfego de saída externo seja encaminhado pelo proxy Envoy intocado.aws appmesh update-mesh \ --cli-input-json
file://update-mesh.json
Conteúdo de
update-mesh.json
:{ "meshName": "app1", "spec": { "egressFilter": { "type": "ALLOW_ALL" } } }
Saída:
{ "mesh": { "meshName": "app1", "metadata": { "arn": "arn:aws:appmesh:us-east-1:123456789012:mesh/app1", "createdAt": 1563809909.282, "lastUpdatedAt": 1563812829.687, "uid": "a1b2c3d4-5678-90ab-cdef-11111EXAMPLE", "version": 2 }, "spec": { "egressFilter": { "type": "ALLOW_ALL" } }, "status": { "status": "ACTIVE" } } }
Para obter mais informações, consulte Malhas de serviços no Guia do usuário do AWS App Mesh.
-
Para ver detalhes da API, consulte UpdateMesh
na Referência de comandos da AWS CLI.
-
O código de exemplo a seguir mostra como usar update-route
.
- AWS CLI
-
Para atualizar uma rota
O exemplo
update-route
a seguir usa um arquivo de entrada JSON para atualizar os pesos de uma rota.aws appmesh update-route \ --cli-input-json
file://update-route-weighted.json
Conteúdo de
update-route-weighted.json
:{ "meshName": "app1", "routeName": "toVnServiceB-weighted", "spec": { "httpRoute": { "action": { "weightedTargets": [ { "virtualNode": "vnServiceBv1", "weight": 80 }, { "virtualNode": "vnServiceBv2", "weight": 20 } ] }, "match": { "prefix": "/" } } }, "virtualRouterName": "vrServiceB" }
Saída:
{ "route": { "meshName": "app1", "metadata": { "arn": "arn:aws:appmesh:us-east-1:123456789012:mesh/app1/virtualRouter/vrServiceB/route/toVnServiceB-weighted", "createdAt": 1563811384.015, "lastUpdatedAt": 1563819600.022, "uid": "a1b2c3d4-5678-90ab-cdef-11111EXAMPLE", "version": 2 }, "routeName": "toVnServiceB-weighted", "spec": { "httpRoute": { "action": { "weightedTargets": [ { "virtualNode": "vnServiceBv1", "weight": 80 }, { "virtualNode": "vnServiceBv2", "weight": 20 } ] }, "match": { "prefix": "/" } } }, "status": { "status": "ACTIVE" }, "virtualRouterName": "vrServiceB" } }
Para obter mais informações, consulte Rotas no Guia do usuário do AWS App Mesh.
-
Para ver detalhes da API, consulte UpdateRoute
na Referência de comandos da AWS CLI.
-
O código de exemplo a seguir mostra como usar update-virtual-node
.
- AWS CLI
-
Para atualizar um nó virtual
O exemplo
update-virtual-node
a seguir usa um arquivo de entrada JSON para adicionar uma verificação de integridade a um nó virtual.aws appmesh update-virtual-node \ --cli-input-json
file://update-virtual-node.json
Conteúdo de
update-virtual-node.json
:{ "clientToken": "500", "meshName": "app1", "spec": { "listeners": [ { "healthCheck": { "healthyThreshold": 5, "intervalMillis": 10000, "path": "/", "port": 80, "protocol": "http", "timeoutMillis": 3000, "unhealthyThreshold": 3 }, "portMapping": { "port": 80, "protocol": "http" } } ], "serviceDiscovery": { "dns": { "hostname": "serviceBv1.svc.cluster.local" } } }, "virtualNodeName": "vnServiceBv1" }
Saída:
{ "virtualNode": { "meshName": "app1", "metadata": { "arn": "arn:aws:appmesh:us-east-1:123456789012:mesh/app1/virtualNode/vnServiceBv1", "createdAt": 1563810019.874, "lastUpdatedAt": 1563819234.825, "uid": "a1b2c3d4-5678-90ab-cdef-11111EXAMPLE", "version": 2 }, "spec": { "listeners": [ { "healthCheck": { "healthyThreshold": 5, "intervalMillis": 10000, "path": "/", "port": 80, "protocol": "http", "timeoutMillis": 3000, "unhealthyThreshold": 3 }, "portMapping": { "port": 80, "protocol": "http" } } ], "serviceDiscovery": { "dns": { "hostname": "serviceBv1.svc.cluster.local" } } }, "status": { "status": "ACTIVE" }, "virtualNodeName": "vnServiceBv1" } }
Para obter mais informações, consulte Nós virtuais no Guia do usuário do AWS App Mesh.
-
Para ver detalhes da API, consulte UpdateVirtualNode
na Referência de comandos da AWS CLI.
-
O código de exemplo a seguir mostra como usar update-virtual-router
.
- AWS CLI
-
Para atualizar um roteador virtual
O exemplo
update-virtual-router
a seguir usa um arquivo de entrada JSON para atualizar uma porta do receptor do roteador virtual.aws appmesh update-virtual-router \ --cli-input-json
file://update-virtual-router.json
Conteúdo de
update-virtual-router.json
:{ "meshName": "app1", "spec": { "listeners": [ { "portMapping": { "port": 8080, "protocol": "http" } } ] }, "virtualRouterName": "vrServiceB" }
Saída:
{ "virtualRouter": { "meshName": "app1", "metadata": { "arn": "arn:aws:appmesh:us-east-1:123456789012:mesh/app1/virtualRouter/vrServiceB", "createdAt": 1563810546.59, "lastUpdatedAt": 1563819431.352, "uid": "a1b2c3d4-5678-90ab-cdef-11111EXAMPLE", "version": 2 }, "spec": { "listeners": [ { "portMapping": { "port": 8080, "protocol": "http" } } ] }, "status": { "status": "ACTIVE" }, "virtualRouterName": "vrServiceB" } }
Para obter mais informações, consulte Roteadores virtuais no Guia do usuário do AWS App Mesh.
-
Para ver detalhes da API, consulte UpdateVirtualRouter
na Referência de comandos da AWS CLI.
-
O código de exemplo a seguir mostra como usar update-virtual-service
.
- AWS CLI
-
Para atualizar um serviço virtual
O exemplo
update-virtual-service
a seguir usa um arquivo de entrada JSON para atualizar um serviço virtual para usar um provedor de roteador virtual.aws appmesh update-virtual-service \ --cli-input-json
file://update-virtual-service.json
Conteúdo de
update-virtual-service.json
:{ "meshName": "app1", "spec": { "provider": { "virtualRouter": { "virtualRouterName": "vrServiceA" } } }, "virtualServiceName": "serviceA.svc.cluster.local" }
Saída:
{ "virtualService": { "meshName": "app1", "metadata": { "arn": "arn:aws:appmesh:us-east-1:123456789012:mesh/app1/virtualService/serviceA.svc.cluster.local", "createdAt": 1563810859.474, "lastUpdatedAt": 1563820257.411, "uid": "a1b2c3d4-5678-90ab-cdef-11111EXAMPLE", "version": 3 }, "spec": { "provider": { "virtualRouter": { "virtualRouterName": "vrServiceA" } } }, "status": { "status": "ACTIVE" }, "virtualServiceName": "serviceA.svc.cluster.local" } }
Para obter mais informações, consulte Serviços virtuais no Guia do usuário do AWS App Mesh.
-
Para ver detalhes da API, consulte UpdateVirtualService
na Referência de comandos da AWS CLI.
-