이 문서는 AWS CLI의 버전 1에만 해당합니다. AWS CLI의 버전 2와 관련된 문서는 버전 2 사용 설명서를 참조하세요.
AWS CLI를 사용하는 App Mesh 예제
다음 코드 예제에서는 App Mesh와 함께 AWS Command Line Interface를 사용하여 작업을 수행하고 일반적인 시나리오를 구현하는 방법을 보여줍니다.
작업은 대규모 프로그램에서 발췌한 코드이며 컨텍스트에 맞춰 실행해야 합니다. 작업은 관련 시나리오의 컨텍스트에 따라 표시되며, 개별 서비스 함수를 직접적으로 호출하는 방법을 보여줍니다.
각 예시에는 전체 소스 코드에 대한 링크가 포함되어 있으며, 여기에서 컨텍스트에 맞춰 코드를 설정하고 실행하는 방법에 대한 지침을 찾을 수 있습니다.
주제
작업
다음 코드 예시에서는 create-mesh
을 사용하는 방법을 보여 줍니다.
- AWS CLI
-
예제 1: 새 서비스 메시를 생성하는 방법
다음
create-mesh
예제에서는 서비스 메시를 생성합니다.aws appmesh create-mesh \ --mesh-name
app1
출력:
{ "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" } } }
예제 2: 여러 태그가 포함된 새 서비스 메시를 생성하는 방법
다음
create-mesh
예제에서는 여러 태그가 있는 서비스 메시를 생성합니다.aws appmesh create-mesh \ --mesh-name
app2
\ --tagskey=key1,value=value1
key=key2,value=value2
key=key3,value=value3
출력:
{ "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" } } }
자세한 내용은 AWS App Mesh 사용 설명서의 서비스 메시를 참조하세요.
-
API 세부 정보는 AWS CLI 명령 참조의 CreateMesh
를 참조하세요.
-
다음 코드 예시에서는 create-route
을 사용하는 방법을 보여 줍니다.
- AWS CLI
-
새 gRPC 경로를 생성하는 방법
다음
create-route
예제에서는 JSON 입력 파일을 사용하여 gRPC 경로를 생성합니다. 메타데이터가 123으로 시작하는 GRPC 트래픽이 serviceBgrpc라는 이름의 가상 노드로 라우팅됩니다. 이 경로의 대상과 통신을 시도할 때 특정 gRPC, HTTP 또는 TCP 실패가 발생하는 경우 경로가 3회 재시도됩니다. 각 재시도 사이에 15초의 지연이 발생합니다.aws appmesh create-route \ --cli-input-json
file://create-route-grpc.json
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" }
출력:
{ "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" } }
새 HTTP 또는 HTTP/2 경로를 생성하는 방법
다음
create-route
예제에서는 JSON 입력 파일을 사용하여 HTTP/2 경로를 생성합니다. HTTP 경로를 생성하려면 http2Route를 사양에 따라 httpRoute로 바꿉니다. 헤더 값이 123으로 시작하는 URL 접두사로 주소 지정된 모든 HTTP/2 트래픽이 serviceBhttp2라는 이름의 가상 노드로 라우팅됩니다. 이 경로의 대상과 통신을 시도할 때 특정 HTTP 또는 TCP 실패가 발생하는 경우 경로가 3회 재시도됩니다. 각 재시도 사이에 15초의 지연이 발생합니다.aws appmesh create-route \ --cli-input-json
file://create-route-http2.json
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" }
출력:
{ "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" } }
새 TCP 경로를 생성하는 방법
다음
create-route
예제에서는 JSON 입력 파일을 사용하여 TCP 경로를 생성합니다. 트래픽의 75%는 serviceBtcp라는 이름의 가상 노드로 라우팅되고 트래픽의 25%는 serviceBv2tcp라는 이름의 가상 노드로 라우팅됩니다. 다양한 대상에 대해 다양한 가중치를 지정하는 것은 애플리케이션의 새 버전을 배포하는 효과적인 방법입니다. 최종적으로 모든 트래픽의 100%가 애플리케이션의 새 버전이 있는 대상으로 라우팅되도록 가중치를 조정할 수 있습니다.aws appmesh create-route \ --cli-input-json
file://create-route-tcp.json
create-route-tcp.json의 콘텐츠:
{ "meshName": "apps", "routeName": "tcpRoute", "spec": { "priority": 300, "tcpRoute": { "action": { "weightedTargets": [ { "virtualNode": "serviceBtcp", "weight": 75 }, { "virtualNode": "serviceBv2tcp", "weight": 25 } ] } } }, "virtualRouterName": "serviceBtcp" }
출력:
{ "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" } }
자세한 내용은 AWS App Mesh 사용 설명서의 라우팅을 참조하세요.
-
API 세부 정보는 AWS CLI 명령 참조의 CreateRoute
를 참조하세요.
-
다음 코드 예시에서는 create-virtual-gateway
을 사용하는 방법을 보여 줍니다.
- AWS CLI
-
새 가상 게이트웨이를 생성하는 방법
다음
create-virtual-gateway
예제에서는 JSON 입력 파일을 사용하여, 포트 9080을 사용하는 HTTP에 대한 리스너가 있는 가상 게이트웨이를 생성합니다.aws appmesh create-virtual-gateway \ --mesh-name
meshName
\ --virtual-gateway-namevirtualGatewayName
\ --cli-input-jsonfile://create-virtual-gateway.json
create-virtual-gateway.json
의 콘텐츠:{ "spec": { "listeners": [ { "portMapping": { "port": 9080, "protocol": "http" } } ] } }
출력:
{ "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" } }
자세한 내용은 AWS App Mesh 사용 설명서의 가상 게이트웨이를 참조하세요.
-
API 세부 정보는 AWS CLI 명령 참조의 CreateVirtualGateway
를 참조하세요.
-
다음 코드 예시에서는 create-virtual-node
을 사용하는 방법을 보여 줍니다.
- AWS CLI
-
예제 1: 검색에 DNS를 사용하는 새 가상 노드를 생성하는 방법
다음
create-virtual-node
예제에서는 JSON 입력 파일을 사용하여, 서비스 검색에 DNS를 사용하는 가상 노드를 생성합니다.aws appmesh create-virtual-node \ --cli-input-json
file://create-virtual-node-dns.json
create-virtual-node-dns.json
의 콘텐츠:{ "meshName": "app1", "spec": { "listeners": [ { "portMapping": { "port": 80, "protocol": "http" } } ], "serviceDiscovery": { "dns": { "hostname": "serviceBv1.svc.cluster.local" } } }, "virtualNodeName": "vnServiceBv1" }
출력:
{ "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" } }
예제 2: 검색에 AWS Cloud Map을 사용하는 새 가상 노드를 생성하는 방법
다음
create-virtual-node
예제에서는 JSON 입력 파일을 사용하여, 서비스 검색에 AWS Cloud Map을 사용하는 가상 노드를 생성합니다.aws appmesh create-virtual-node \ --cli-input-json
file://create-virtual-node-cloud-map.json
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" }
출력:
{ "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" } }
자세한 내용은 AWS App Mesh 사용 설명서의 가상 노드를 참조하세요.
-
API 세부 정보는 AWS CLI 명령 참조의 CreateVirtualNode
를 참조하세요.
-
다음 코드 예시에서는 create-virtual-router
을 사용하는 방법을 보여 줍니다.
- AWS CLI
-
새 가상 라우터를 생성하는 방법
다음
create-virtual-router
예제에서는 JSON 입력 파일을 사용하여, 포트 80을 사용하는 HTTP에 대한 리스너가 있는 가상 라우터를 생성합니다.aws appmesh create-virtual-router \ --cli-input-json
file://create-virtual-router.json
create-virtual-router.json
의 콘텐츠:{ "meshName": "app1", "spec": { "listeners": [ { "portMapping": { "port": 80, "protocol": "http" } } ] }, "virtualRouterName": "vrServiceB" }
출력:
{ "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" } }
자세한 내용은 AWS App Mesh 사용 설명서의 가상 라우터를 참조하세요.
-
API 세부 정보는 AWS CLI 명령 참조의 CreateVirtualRouter
를 참조하세요.
-
다음 코드 예시에서는 create-virtual-service
을 사용하는 방법을 보여 줍니다.
- AWS CLI
-
예제 1: 가상 노드 공급자가 있는 새 가상 서비스를 생성하는 방법
다음
create-virtual-service
예제에서는 JSON 입력 파일을 사용하여 가상 노드 공급자가 있는 가상 서비스를 생성합니다.aws appmesh create-virtual-service \ --cli-input-json
file://create-virtual-service-virtual-node.json
create-virtual-service-virtual-node.json
의 콘텐츠:{ "meshName": "app1", "spec": { "provider": { "virtualNode": { "virtualNodeName": "vnServiceA" } } }, "virtualServiceName": "serviceA.svc.cluster.local" }
출력:
{ "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" } }
자세한 내용은 AWS App Mesh 사용 설명서의 가상 노드를 참조하세요.
예제 2: 가상 라우터 공급자가 있는 새 가상 서비스를 생성하는 방법
다음
create-virtual-service
예제에서는 JSON 입력 파일을 사용하여 가상 라우터 공급자가 있는 가상 서비스를 생성합니다.aws appmesh create-virtual-service \ --cli-input-json
file://create-virtual-service-virtual-router.json
create-virtual-service-virtual-router.json
의 콘텐츠:{ "meshName": "app1", "spec": { "provider": { "virtualRouter": { "virtualRouterName": "vrServiceB" } } }, "virtualServiceName": "serviceB.svc.cluster.local" }
출력:
{ "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" } }
자세한 내용은 AWS App Mesh 사용 설명서의 가상 서비스<https://docs.aws.amazon.com/app-mesh/latest/userguide/virtual_services.html>를 참조하세요.
-
API 세부 정보는 AWS CLI 명령 참조의 CreateVirtualService
를 참조하세요.
-
다음 코드 예시에서는 delete-mesh
을 사용하는 방법을 보여 줍니다.
- AWS CLI
-
서비스 메시를 삭제하는 방법
다음
delete-mesh
예제에서는 지정된 서비스 메시를 삭제합니다.aws appmesh delete-mesh \ --mesh-name
app1
출력:
{ "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" } } }
자세한 내용은 AWS App Mesh 사용 설명서의 서비스 메시를 참조하세요.
-
API 세부 정보는 AWS CLI 명령 참조의 DeleteMesh
를 참조하세요.
-
다음 코드 예시에서는 delete-route
을 사용하는 방법을 보여 줍니다.
- AWS CLI
-
경로를 삭제하는 방법
다음
delete-route
예제에서는 지정된 경로를 삭제합니다.aws appmesh delete-route \ --mesh-name
app1
\ --virtual-router-namevrServiceB
\ --route-nametoVnServiceB-weighted
출력:
{ "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" } }
자세한 내용은 AWS App Mesh 사용 설명서의 라우팅을 참조하세요.
-
API 세부 정보는 AWS CLI 명령 참조의 DeleteRoute
를 참조하세요.
-
다음 코드 예시에서는 delete-virtual-node
을 사용하는 방법을 보여 줍니다.
- AWS CLI
-
가상 노드를 삭제하는 방법
다음
delete-virtual-node
예제에서는 지정된 가상 노드를 삭제합니다.aws appmesh delete-virtual-node \ --mesh-name
app1
\ --virtual-node-namevnServiceBv2
출력:
{ "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" } }
자세한 내용은 AWS App Mesh 사용 설명서의 가상 노드를 참조하세요.
-
API 세부 정보는 AWS CLI 명령 참조의 DeleteVirtualNode
를 참조하세요.
-
다음 코드 예시에서는 delete-virtual-router
을 사용하는 방법을 보여 줍니다.
- AWS CLI
-
가상 라우터를 삭제하는 방법
다음
delete-virtual-router
예제에서는 지정된 가상 라우터를 삭제합니다.aws appmesh delete-virtual-router \ --mesh-name
app1
\ --virtual-router-namevrServiceB
출력:
{ "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" } }
자세한 내용은 AWS App Mesh 사용 설명서의 가상 라우터를 참조하세요.
-
API 세부 정보는 AWS CLI 명령 참조의 DeleteVirtualRouter
를 참조하세요.
-
다음 코드 예시에서는 delete-virtual-service
을 사용하는 방법을 보여 줍니다.
- AWS CLI
-
가상 서비스를 삭제하는 방법
다음
delete-virtual-service
예제에서는 지정된 가상 서비스를 삭제합니다.aws appmesh delete-virtual-service \ --mesh-name
app1
\ --virtual-service-nameserviceB.svc.cluster.local
출력:
{ "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" } }
자세한 내용은 AWS App Mesh 사용 설명서의 가상 서비스를 참조하세요.
-
API 세부 정보는 AWS CLI 명령 참조의 DeleteVirtualService
를 참조하세요.
-
다음 코드 예시에서는 describe-mesh
을 사용하는 방법을 보여 줍니다.
- AWS CLI
-
서비스 메시를 설명하는 방법
다음
describe-mesh
예제에서는 지정된 서비스 메시에 대한 세부 정보를 반환합니다.aws appmesh describe-mesh \ --mesh-name
app1
출력:
{ "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" } } }
자세한 내용은 AWS App Mesh 사용 설명서의 서비스 메시를 참조하세요.
-
API 세부 정보는 AWS CLI 명령 참조의 DescribeMesh
를 참조하세요.
-
다음 코드 예시에서는 describe-route
을 사용하는 방법을 보여 줍니다.
- AWS CLI
-
경로를 설명하는 방법
다음
describe-route
예제에서는 지정된 경로에 대한 세부 정보를 반환합니다.aws appmesh describe-route \ --mesh-name
app1
\ --virtual-router-namevrServiceB
\ --route-nametoVnServiceB-weighted
출력:
{ "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" } }
자세한 내용은 AWS App Mesh 사용 설명서의 라우팅을 참조하세요.
-
API 세부 정보는 AWS CLI 명령 참조의 DescribeRoute
를 참조하세요.
-
다음 코드 예시에서는 describe-virtual-node
을 사용하는 방법을 보여 줍니다.
- AWS CLI
-
가상 노드를 설명하는 방법
다음
describe-virtual-node
예제에서는 지정된 가상 노드에 대한 세부 정보를 반환합니다.aws appmesh describe-virtual-node \ --mesh-name
app1
\ --virtual-node-namevnServiceBv1
출력:
{ "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" } }
자세한 내용은 AWS App Mesh 사용 설명서의 가상 노드를 참조하세요.
-
API 세부 정보는 AWS CLI 명령 참조의 DescribeVirtualNode
를 참조하세요.
-
다음 코드 예시에서는 describe-virtual-router
을 사용하는 방법을 보여 줍니다.
- AWS CLI
-
가상 라우터를 설명하는 방법
다음
describe-virtual-router
예제에서는 지정된 가상 라우터에 대한 세부 정보를 반환합니다.aws appmesh describe-virtual-router \ --mesh-name
app1
\ --virtual-router-namevrServiceB
출력:
{ "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" } }
자세한 내용은 AWS App Mesh 사용 설명서의 가상 라우터를 참조하세요.
-
API 세부 정보는 AWS CLI 명령 참조의 DescribeVirtualRouter
를 참조하세요.
-
다음 코드 예시에서는 describe-virtual-service
을 사용하는 방법을 보여 줍니다.
- AWS CLI
-
가상 서비스를 설명하는 방법
다음
describe-virtual-service
예제에서는 지정된 가상 서비스에 대한 세부 정보를 반환합니다.aws appmesh describe-virtual-service \ --mesh-name
app1
\ --virtual-service-nameserviceB.svc.cluster.local
출력:
{ "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" } }
자세한 내용은 AWS App Mesh 사용 설명서의 가상 서비스를 참조하세요.
-
API 세부 정보는 AWS CLI 명령 참조의 DescribeVirtualService
를 참조하세요.
-
다음 코드 예시에서는 list-meshes
을 사용하는 방법을 보여 줍니다.
- AWS CLI
-
서비스 메시를 나열하는 방법
다음
list-meshes
예제에서는 현재 AWS 리전의 모든 서비스 메시를 나열합니다.aws appmesh list-meshes
출력:
{ "meshes": [ { "arn": "arn:aws:appmesh:us-east-1:123456789012:mesh/app1", "meshName": "app1" } ] }
자세한 내용은 AWS App Mesh 사용 설명서의 서비스 메시를 참조하세요.
-
API 세부 정보는 AWS CLI 명령 참조의 ListMeshes
를 참조하세요.
-
다음 코드 예시에서는 list-routes
을 사용하는 방법을 보여 줍니다.
- AWS CLI
-
경로를 나열하는 방법
다음
list-routes
예제에서는 지정된 가상 라우터의 모든 경로를 나열합니다.aws appmesh list-routes \ --mesh-name
app1
\ --virtual-router-namevrServiceB
출력:
{ "routes": [ { "arn": "arn:aws:appmesh:us-east-1:123456789012:mesh/app1/virtualRouter/vrServiceB/route/toVnServiceB", "meshName": "app1", "routeName": "toVnServiceB-weighted", "virtualRouterName": "vrServiceB" } ] }
자세한 내용은 AWS App Mesh 사용 설명서의 라우팅을 참조하세요.
-
API 세부 정보는 AWS CLI 명령 참조의 ListRoutes
를 참조하세요.
-
다음 코드 예시에서는 list-tags-for-resource
을 사용하는 방법을 보여 줍니다.
- AWS CLI
-
리소스에 대한 태그를 나열하는 방법
다음
list-tags-for-resource
예제에서는 지정된 리소스에 할당된 모든 태그를 나열합니다.aws appmesh list-tags-for-resource \ --resource-arn
arn:aws:appmesh:us-east-1:123456789012:mesh/app1
출력:
{ "tags": [ { "key": "key1", "value": "value1" }, { "key": "key2", "value": "value2" }, { "key": "key3", "value": "value3" } ] }
-
API 세부 정보는 AWS CLI 명령 참조의 ListTagsForResource
섹션을 참조하세요.
-
다음 코드 예시에서는 list-virtual-nodes
을 사용하는 방법을 보여 줍니다.
- AWS CLI
-
가상 노드를 나열하는 방법
다음
list-virtual-nodes
예제에서는 지정된 서비스 메시의 모든 가상 노드를 나열합니다.aws appmesh list-virtual-nodes \ --mesh-name
app1
출력:
{ "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" } ] }
자세한 내용은 AWS App Mesh 사용 설명서의 가상 노드를 참조하세요.
-
API 세부 정보는 AWS CLI 명령 참조의 ListVirtualNodes
를 참조하세요.
-
다음 코드 예시에서는 list-virtual-routers
을 사용하는 방법을 보여 줍니다.
- AWS CLI
-
가상 라우터를 나열하는 방법
다음
list-virtual-routers
예제에서는 지정된 서비스 메시의 모든 가상 라우터를 나열합니다.aws appmesh list-virtual-routers \ --mesh-name
app1
출력:
{ "virtualRouters": [ { "arn": "arn:aws:appmesh:us-east-1:123456789012:mesh/app1/virtualRouter/vrServiceB", "meshName": "app1", "virtualRouterName": "vrServiceB" } ] }
자세한 내용은 AWS App Mesh 사용 설명서의 가상 라우터를 참조하세요.
-
API 세부 정보는 AWS CLI 명령 참조의 ListVirtualRouters
를 참조하세요.
-
다음 코드 예시에서는 list-virtual-services
을 사용하는 방법을 보여 줍니다.
- AWS CLI
-
가상 서비스를 나열하는 방법
다음
list-virtual-services
예제에서는 지정된 서비스 메시의 모든 가상 서비스를 나열합니다.aws appmesh list-virtual-services \ --mesh-name
app1
출력:
{ "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" } ] }
자세한 내용은 AWS App Mesh 사용 설명서의 가상 서비스를 참조하세요.
-
API 세부 정보는 AWS CLI 명령 참조의 ListVirtualServices
를 참조하세요.
-
다음 코드 예시에서는 tag-resource
을 사용하는 방법을 보여 줍니다.
- AWS CLI
-
리소스에 태그를 지정하는 방법
다음
tag-resource
예제에서는value1
값을 갖는 태그key1
을 지정된 리소스에 추가합니다.aws appmesh tag-resource \ --resource-arn
arn:aws:appmesh:us-east-1:123456789012:mesh/app1
\ --tagskey=key1,value=value1
이 명령은 출력을 생성하지 않습니다.
-
API 세부 정보는 AWS CLI 명령 참조의 TagResource
를 참조하세요.
-
다음 코드 예시에서는 untag-resource
코드를 사용하는 방법을 보여줍니다.
- AWS CLI
-
리소스에서 태그를 제거하는 방법
다음
untag-resource
예제에서는 지정된 리소스에서key1
키가 있는 태그를 제거합니다.aws appmesh untag-resource \ --resource-arn
arn:aws:appmesh:us-east-1:123456789012:mesh/app1
\ --tag-keyskey1
이 명령은 출력을 생성하지 않습니다.
-
API 세부 정보는 AWS CLI 명령 참조의 UntagResource
를 참조하세요.
-
다음 코드 예시에서는 update-mesh
을 사용하는 방법을 보여 줍니다.
- AWS CLI
-
서비스 메시를 업데이트하는 방법
다음
update-mesh
예제에서는 JSON 입력 파일을 사용하여, 모든 외부 송신 트래픽이 Envoy 프록시를 통해 변경 없이 그대로 전달되도록 서비스 메시를 업데이트합니다.aws appmesh update-mesh \ --cli-input-json
file://update-mesh.json
update-mesh.json
의 콘텐츠:{ "meshName": "app1", "spec": { "egressFilter": { "type": "ALLOW_ALL" } } }
출력:
{ "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" } } }
자세한 내용은 AWS App Mesh 사용 설명서의 서비스 메시를 참조하세요.
-
API 세부 정보는 AWS CLI 명령 참조의 UpdateMesh
를 참조하세요.
-
다음 코드 예시에서는 update-route
을 사용하는 방법을 보여 줍니다.
- AWS CLI
-
경로를 업데이트하는 방법
다음
update-route
예제에서는 JSON 입력 파일을 사용하여 경로의 가중치를 업데이트합니다.aws appmesh update-route \ --cli-input-json
file://update-route-weighted.json
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" }
출력:
{ "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" } }
자세한 내용은 AWS App Mesh 사용 설명서의 라우팅을 참조하세요.
-
API 세부 정보는 AWS CLI 명령 참조의 UpdateRoute
를 참조하세요.
-
다음 코드 예시에서는 update-virtual-node
을 사용하는 방법을 보여 줍니다.
- AWS CLI
-
가상 노드를 업데이트하는 방법
다음
update-virtual-node
예제에서는 JSON 입력 파일을 사용하여 가상 노드에 상태 확인을 추가합니다.aws appmesh update-virtual-node \ --cli-input-json
file://update-virtual-node.json
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" }
출력:
{ "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" } }
자세한 내용은 AWS App Mesh 사용 설명서의 가상 노드를 참조하세요.
-
API 세부 정보는 AWS CLI 명령 참조의 UpdateVirtualNode
를 참조하세요.
-
다음 코드 예시에서는 update-virtual-router
을 사용하는 방법을 보여 줍니다.
- AWS CLI
-
가상 라우터를 업데이트하는 방법
다음
update-virtual-router
예제에서는 JSON 입력 파일을 사용하여 가상 라우터 리스너 포트를 업데이트합니다.aws appmesh update-virtual-router \ --cli-input-json
file://update-virtual-router.json
update-virtual-router.json
의 콘텐츠:{ "meshName": "app1", "spec": { "listeners": [ { "portMapping": { "port": 8080, "protocol": "http" } } ] }, "virtualRouterName": "vrServiceB" }
출력:
{ "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" } }
자세한 내용은 AWS App Mesh 사용 설명서의 가상 라우터를 참조하세요.
-
API 세부 정보는 AWS CLI 명령 참조의 UpdateVirtualRouter
을 참조하세요.
-
다음 코드 예시에서는 update-virtual-service
을 사용하는 방법을 보여 줍니다.
- AWS CLI
-
가상 서비스를 업데이트하는 방법
다음
update-virtual-service
예제에서는 JSON 입력 파일을 사용하여, 가상 라우터 공급자를 사용하도록 가상 서비스를 업데이트합니다.aws appmesh update-virtual-service \ --cli-input-json
file://update-virtual-service.json
update-virtual-service.json
의 콘텐츠:{ "meshName": "app1", "spec": { "provider": { "virtualRouter": { "virtualRouterName": "vrServiceA" } } }, "virtualServiceName": "serviceA.svc.cluster.local" }
출력:
{ "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" } }
자세한 내용은 AWS App Mesh 사용 설명서의 가상 서비스를 참조하세요.
-
API 세부 정보는 AWS CLI 명령 참조의 UpdateVirtualService
를 참조하세요.
-