Contoh App Mesh menggunakan AWS CLI - AWS Command Line Interface

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Contoh App Mesh menggunakan AWS CLI

Contoh kode berikut menunjukkan cara melakukan tindakan dan mengimplementasikan skenario umum dengan menggunakan App Mesh AWS Command Line Interface with.

Tindakan adalah kutipan kode dari program yang lebih besar dan harus dijalankan dalam konteks. Sementara tindakan menunjukkan cara memanggil fungsi layanan individual, Anda dapat melihat tindakan dalam konteks dalam skenario terkait.

Setiap contoh menyertakan tautan ke kode sumber lengkap, di mana Anda dapat menemukan instruksi tentang cara mengatur dan menjalankan kode dalam konteks.

Tindakan

Contoh kode berikut menunjukkan cara menggunakancreate-mesh.

AWS CLI

Contoh 1: Untuk membuat mesh layanan baru

create-meshContoh berikut membuat mesh layanan.

aws appmesh create-mesh \ --mesh-name app1

Output:

{ "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" } } }

Contoh 2: Untuk membuat mesh layanan baru dengan beberapa tag

create-meshContoh berikut membuat mesh layanan dengan beberapa tag.

aws appmesh create-mesh \ --mesh-name app2 \ --tags key=key1,value=value1 key=key2,value=value2 key=key3,value=value3

Output:

{ "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" } } }

Untuk informasi selengkapnya, lihat Service Meshes di Panduan Pengguna AWS App Mesh.

  • Untuk API detailnya, lihat CreateMeshdi Referensi AWS CLI Perintah.

Contoh kode berikut menunjukkan cara menggunakancreate-route.

AWS CLI

Untuk membuat RPC rute g baru

create-routeContoh berikut menggunakan file JSON input untuk membuat RPC rute g. GRPClalu lintas yang memiliki metadata yang dimulai dengan 123 dirutekan ke node virtual bernama. serviceBgrpc Jika ada g tertentuRPC,HTTP, atau TCP kegagalan saat mencoba berkomunikasi dengan target rute, rute dicoba ulang tiga kali. Ada penundaan 15 detik antara setiap upaya coba lagi.

aws appmesh create-route \ --cli-input-json file://create-route-grpc.json

Isi dari 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" }

Output:

{ "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" } }

Untuk membuat rute baru HTTP atau HTTP /2

create-routeContoh berikut menggunakan file JSON input untuk membuat rute HTTP /2. Untuk membuat HTTP rute, ganti http2Route dengan httpRoute spesifikasi di bawah. Semua lalu lintas HTTP /2 yang ditujukan ke URL awalan apa pun yang memiliki nilai header yang dimulai dengan 123 dirutekan ke node virtual bernama 2. serviceBhttp Jika ada spesifik HTTP atau TCP kegagalan saat mencoba berkomunikasi dengan target rute, rute dicoba ulang tiga kali. Ada penundaan 15 detik antara setiap upaya coba lagi.

aws appmesh create-route \ --cli-input-json file://create-route-http2.json

Isi dari 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" }

Output:

{ "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" } }

Untuk membuat TCP rute baru

create-routeContoh berikut menggunakan file JSON input untuk membuat TCP rute. 75 persen lalu lintas dirutekan ke node virtual bernamaserviceBtcp, dan 25 persen lalu lintas dirutekan ke node virtual bernama serviceBv 2tcp. Menentukan bobot yang berbeda untuk target yang berbeda adalah cara yang efektif untuk melakukan penerapan versi baru aplikasi. Anda dapat menyesuaikan bobot sehingga pada akhirnya, 100 persen dari semua lalu lintas diarahkan ke target yang memiliki versi baru aplikasi.

aws appmesh create-route \ --cli-input-json file://create-route-tcp.json

Isi dari create-route-tcp .json:

{ "meshName": "apps", "routeName": "tcpRoute", "spec": { "priority": 300, "tcpRoute": { "action": { "weightedTargets": [ { "virtualNode": "serviceBtcp", "weight": 75 }, { "virtualNode": "serviceBv2tcp", "weight": 25 } ] } } }, "virtualRouterName": "serviceBtcp" }

Output:

{ "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" } }

Untuk informasi selengkapnya, lihat Rute di Panduan Pengguna AWS App Mesh.

  • Untuk API detailnya, lihat CreateRoutedi Referensi AWS CLI Perintah.

Contoh kode berikut menunjukkan cara menggunakancreate-virtual-gateway.

AWS CLI

Untuk membuat gateway virtual baru

create-virtual-gatewayContoh berikut menggunakan file JSON input untuk membuat gateway virtual dengan pendengar untuk HTTP menggunakan port 9080.

aws appmesh create-virtual-gateway \ --mesh-name meshName \ --virtual-gateway-name virtualGatewayName \ --cli-input-json file://create-virtual-gateway.json

Isi dari create-virtual-gateway.json:

{ "spec": { "listeners": [ { "portMapping": { "port": 9080, "protocol": "http" } } ] } }

Output:

{ "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" } }

Untuk informasi selengkapnya, lihat Gateway Virtual di Panduan Pengguna AWS App Mesh.

Contoh kode berikut menunjukkan cara menggunakancreate-virtual-node.

AWS CLI

Contoh 1: Untuk membuat node virtual baru yang digunakan DNS untuk penemuan

create-virtual-nodeContoh berikut menggunakan file JSON input untuk membuat node virtual yang digunakan DNS untuk penemuan layanan.

aws appmesh create-virtual-node \ --cli-input-json file://create-virtual-node-dns.json

Isi dari create-virtual-node-dns.json:

{ "meshName": "app1", "spec": { "listeners": [ { "portMapping": { "port": 80, "protocol": "http" } } ], "serviceDiscovery": { "dns": { "hostname": "serviceBv1.svc.cluster.local" } } }, "virtualNodeName": "vnServiceBv1" }

Output:

{ "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" } }

Contoh 2: Untuk membuat node virtual baru yang menggunakan AWS Cloud Map untuk penemuan

create-virtual-nodeContoh berikut menggunakan file JSON input untuk membuat node virtual yang menggunakan AWS Cloud Map untuk penemuan layanan.

aws appmesh create-virtual-node \ --cli-input-json file://create-virtual-node-cloud-map.json

Isi dari 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" }

Output:

{ "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" } }

Untuk informasi selengkapnya, lihat Node Virtual di Panduan Pengguna AWS App Mesh.

Contoh kode berikut menunjukkan cara menggunakancreate-virtual-router.

AWS CLI

Untuk membuat router virtual baru

create-virtual-routerContoh berikut menggunakan file JSON input untuk membuat router virtual dengan pendengar untuk HTTP menggunakan port 80.

aws appmesh create-virtual-router \ --cli-input-json file://create-virtual-router.json

Isi dari create-virtual-router.json:

{ "meshName": "app1", "spec": { "listeners": [ { "portMapping": { "port": 80, "protocol": "http" } } ] }, "virtualRouterName": "vrServiceB" }

Output:

{ "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" } }

Untuk informasi selengkapnya, lihat Router Virtual di Panduan Pengguna AWS App Mesh.

Contoh kode berikut menunjukkan cara menggunakancreate-virtual-service.

AWS CLI

Contoh 1: Untuk membuat layanan virtual baru dengan penyedia node virtual

create-virtual-serviceContoh berikut menggunakan file JSON input untuk membuat layanan virtual dengan penyedia node virtual.

aws appmesh create-virtual-service \ --cli-input-json file://create-virtual-service-virtual-node.json

Isi dari create-virtual-service-virtual-node.json:

{ "meshName": "app1", "spec": { "provider": { "virtualNode": { "virtualNodeName": "vnServiceA" } } }, "virtualServiceName": "serviceA.svc.cluster.local" }

Output:

{ "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" } }

Untuk informasi selengkapnya, lihat Node Virtual di Panduan Pengguna AWS App Mesh.

Contoh 2: Untuk membuat layanan virtual baru dengan penyedia router virtual

create-virtual-serviceContoh berikut menggunakan file JSON input untuk membuat layanan virtual dengan penyedia router virtual.

aws appmesh create-virtual-service \ --cli-input-json file://create-virtual-service-virtual-router.json

Isi dari create-virtual-service-virtual-router.json:

{ "meshName": "app1", "spec": { "provider": { "virtualRouter": { "virtualRouterName": "vrServiceB" } } }, "virtualServiceName": "serviceB.svc.cluster.local" }

Output:

{ "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" } }

Untuk informasi selengkapnya, lihat Layanan Virtual < https://docs.aws.amazon.com/app-mesh/ latest/userguide/virtual_services.html> di Panduan Pengguna App Mesh AWS

Contoh kode berikut menunjukkan cara menggunakandelete-mesh.

AWS CLI

Untuk menghapus mesh layanan

delete-meshContoh berikut menghapus mesh layanan yang ditentukan.

aws appmesh delete-mesh \ --mesh-name app1

Output:

{ "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" } } }

Untuk informasi selengkapnya, lihat Service Meshes di Panduan Pengguna AWS App Mesh.

  • Untuk API detailnya, lihat DeleteMeshdi Referensi AWS CLI Perintah.

Contoh kode berikut menunjukkan cara menggunakandelete-route.

AWS CLI

Untuk menghapus rute

delete-routeContoh berikut menghapus rute yang ditentukan.

aws appmesh delete-route \ --mesh-name app1 \ --virtual-router-name vrServiceB \ --route-name toVnServiceB-weighted

Output:

{ "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" } }

Untuk informasi selengkapnya, lihat Rute di Panduan Pengguna AWS App Mesh.

  • Untuk API detailnya, lihat DeleteRoutedi Referensi AWS CLI Perintah.

Contoh kode berikut menunjukkan cara menggunakandelete-virtual-node.

AWS CLI

Untuk menghapus node virtual

delete-virtual-nodeContoh berikut menghapus node virtual yang ditentukan.

aws appmesh delete-virtual-node \ --mesh-name app1 \ --virtual-node-name vnServiceBv2

Output:

{ "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" } }

Untuk informasi selengkapnya, lihat Node Virtual di Panduan Pengguna AWS App Mesh.

Contoh kode berikut menunjukkan cara menggunakandelete-virtual-router.

AWS CLI

Untuk menghapus router virtual

delete-virtual-routerContoh berikut menghapus router virtual yang ditentukan.

aws appmesh delete-virtual-router \ --mesh-name app1 \ --virtual-router-name vrServiceB

Output:

{ "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" } }

Untuk informasi selengkapnya, lihat Router Virtual di Panduan Pengguna AWS App Mesh.

Contoh kode berikut menunjukkan cara menggunakandelete-virtual-service.

AWS CLI

Untuk menghapus layanan virtual

delete-virtual-serviceContoh berikut menghapus layanan virtual yang ditentukan.

aws appmesh delete-virtual-service \ --mesh-name app1 \ --virtual-service-name serviceB.svc.cluster.local

Output:

{ "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" } }

Untuk informasi selengkapnya, lihat Layanan Virtual di Panduan Pengguna AWS App Mesh.

Contoh kode berikut menunjukkan cara menggunakandescribe-mesh.

AWS CLI

Untuk menggambarkan mesh layanan

describe-meshContoh berikut mengembalikan rincian tentang mesh layanan tertentu.

aws appmesh describe-mesh \ --mesh-name app1

Output:

{ "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" } } }

Untuk informasi selengkapnya, lihat Service Meshes di Panduan Pengguna AWS App Mesh.

  • Untuk API detailnya, lihat DescribeMeshdi Referensi AWS CLI Perintah.

Contoh kode berikut menunjukkan cara menggunakandescribe-route.

AWS CLI

Untuk menggambarkan rute

describe-routeContoh berikut mengembalikan rincian tentang rute yang ditentukan.

aws appmesh describe-route \ --mesh-name app1 \ --virtual-router-name vrServiceB \ --route-name toVnServiceB-weighted

Output:

{ "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" } }

Untuk informasi selengkapnya, lihat Rute di Panduan Pengguna AWS App Mesh.

  • Untuk API detailnya, lihat DescribeRoutedi Referensi AWS CLI Perintah.

Contoh kode berikut menunjukkan cara menggunakandescribe-virtual-node.

AWS CLI

Untuk menggambarkan simpul virtual

describe-virtual-nodeContoh berikut mengembalikan rincian tentang node virtual tertentu.

aws appmesh describe-virtual-node \ --mesh-name app1 \ --virtual-node-name vnServiceBv1

Output:

{ "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" } }

Untuk informasi selengkapnya, lihat Node Virtual di Panduan Pengguna AWS App Mesh.

Contoh kode berikut menunjukkan cara menggunakandescribe-virtual-router.

AWS CLI

Untuk menggambarkan router virtual

describe-virtual-routerContoh berikut mengembalikan rincian tentang router virtual yang ditentukan.

aws appmesh describe-virtual-router \ --mesh-name app1 \ --virtual-router-name vrServiceB

Output:

{ "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" } }

Untuk informasi selengkapnya, lihat Router Virtual di Panduan Pengguna AWS App Mesh.

Contoh kode berikut menunjukkan cara menggunakandescribe-virtual-service.

AWS CLI

Untuk menggambarkan layanan virtual

describe-virtual-serviceContoh berikut mengembalikan rincian tentang layanan virtual yang ditentukan.

aws appmesh describe-virtual-service \ --mesh-name app1 \ --virtual-service-name serviceB.svc.cluster.local

Output:

{ "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" } }

Untuk informasi selengkapnya, lihat Layanan Virtual di Panduan Pengguna AWS App Mesh.

Contoh kode berikut menunjukkan cara menggunakanlist-meshes.

AWS CLI

Untuk membuat daftar jerat layanan

list-meshesContoh berikut mencantumkan semua jerat layanan di AWS Wilayah saat ini.

aws appmesh list-meshes

Output:

{ "meshes": [ { "arn": "arn:aws:appmesh:us-east-1:123456789012:mesh/app1", "meshName": "app1" } ] }

Untuk informasi selengkapnya, lihat Service Meshes di Panduan Pengguna AWS App Mesh.

  • Untuk API detailnya, lihat ListMeshesdi Referensi AWS CLI Perintah.

Contoh kode berikut menunjukkan cara menggunakanlist-routes.

AWS CLI

Untuk daftar rute

list-routesContoh berikut mencantumkan semua rute untuk router virtual yang ditentukan.

aws appmesh list-routes \ --mesh-name app1 \ --virtual-router-name vrServiceB

Output:

{ "routes": [ { "arn": "arn:aws:appmesh:us-east-1:123456789012:mesh/app1/virtualRouter/vrServiceB/route/toVnServiceB", "meshName": "app1", "routeName": "toVnServiceB-weighted", "virtualRouterName": "vrServiceB" } ] }

Untuk informasi selengkapnya, lihat Rute di Panduan Pengguna AWS App Mesh.

  • Untuk API detailnya, lihat ListRoutesdi Referensi AWS CLI Perintah.

Contoh kode berikut menunjukkan cara menggunakanlist-tags-for-resource.

AWS CLI

Untuk membuat daftar tag untuk sumber daya

list-tags-for-resourceContoh berikut mencantumkan semua tag yang ditetapkan ke sumber daya yang ditentukan.

aws appmesh list-tags-for-resource \ --resource-arn arn:aws:appmesh:us-east-1:123456789012:mesh/app1

Output:

{ "tags": [ { "key": "key1", "value": "value1" }, { "key": "key2", "value": "value2" }, { "key": "key3", "value": "value3" } ] }

Contoh kode berikut menunjukkan cara menggunakanlist-virtual-nodes.

AWS CLI

Untuk daftar node virtual

list-virtual-nodesContoh berikut mencantumkan semua node virtual di mesh layanan yang ditentukan.

aws appmesh list-virtual-nodes \ --mesh-name app1

Output:

{ "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" } ] }

Untuk informasi selengkapnya, lihat Node Virtual di Panduan Pengguna AWS App Mesh.

Contoh kode berikut menunjukkan cara menggunakanlist-virtual-routers.

AWS CLI

Untuk daftar router virtual

list-virtual-routersContoh berikut mencantumkan semua router virtual di mesh layanan yang ditentukan.

aws appmesh list-virtual-routers \ --mesh-name app1

Output:

{ "virtualRouters": [ { "arn": "arn:aws:appmesh:us-east-1:123456789012:mesh/app1/virtualRouter/vrServiceB", "meshName": "app1", "virtualRouterName": "vrServiceB" } ] }

Untuk informasi selengkapnya, lihat Router Virtual di Panduan Pengguna AWS App Mesh.

Contoh kode berikut menunjukkan cara menggunakanlist-virtual-services.

AWS CLI

Untuk daftar layanan virtual

list-virtual-servicesContoh berikut mencantumkan semua layanan virtual di mesh layanan yang ditentukan.

aws appmesh list-virtual-services \ --mesh-name app1

Output:

{ "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" } ] }

Untuk informasi selengkapnya, lihat Layanan Virtual di Panduan Pengguna AWS App Mesh.

Contoh kode berikut menunjukkan cara menggunakantag-resource.

AWS CLI

Untuk menandai sumber daya

tag-resourceContoh berikut menambahkan tag key1 dengan nilai value1 ke sumber daya yang ditentukan.

aws appmesh tag-resource \ --resource-arn arn:aws:appmesh:us-east-1:123456789012:mesh/app1 \ --tags key=key1,value=value1

Perintah ini tidak menghasilkan output.

  • Untuk API detailnya, lihat TagResourcedi Referensi AWS CLI Perintah.

Contoh kode berikut menunjukkan cara menggunakanuntag-resource.

AWS CLI

Untuk menghapus tag sumber daya

untag-resourceContoh berikut menghapus tag dengan kunci key1 dari sumber daya yang ditentukan.

aws appmesh untag-resource \ --resource-arn arn:aws:appmesh:us-east-1:123456789012:mesh/app1 \ --tag-keys key1

Perintah ini tidak menghasilkan output.

  • Untuk API detailnya, lihat UntagResourcedi Referensi AWS CLI Perintah.

Contoh kode berikut menunjukkan cara menggunakanupdate-mesh.

AWS CLI

Untuk memperbarui mesh layanan

update-meshContoh berikut menggunakan file JSON input untuk memperbarui mesh layanan untuk memungkinkan semua lalu lintas keluar eksternal diteruskan melalui proxy Envoy yang tidak tersentuh.

aws appmesh update-mesh \ --cli-input-json file://update-mesh.json

Isi dari update-mesh.json:

{ "meshName": "app1", "spec": { "egressFilter": { "type": "ALLOW_ALL" } } }

Output:

{ "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" } } }

Untuk informasi selengkapnya, lihat Service Meshes di Panduan Pengguna AWS App Mesh.

  • Untuk API detailnya, lihat UpdateMeshdi Referensi AWS CLI Perintah.

Contoh kode berikut menunjukkan cara menggunakanupdate-route.

AWS CLI

Untuk memperbarui rute

update-routeContoh berikut menggunakan file JSON input untuk memperbarui bobot untuk rute.

aws appmesh update-route \ --cli-input-json file://update-route-weighted.json

Isi dari 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" }

Output:

{ "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" } }

Untuk informasi selengkapnya, lihat Rute di Panduan Pengguna AWS App Mesh.

  • Untuk API detailnya, lihat UpdateRoutedi Referensi AWS CLI Perintah.

Contoh kode berikut menunjukkan cara menggunakanupdate-virtual-node.

AWS CLI

Untuk memperbarui node virtual

update-virtual-nodeContoh berikut menggunakan file JSON input untuk menambahkan pemeriksaan kesehatan ke node virtual.

aws appmesh update-virtual-node \ --cli-input-json file://update-virtual-node.json

Isi dari 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" }

Output:

{ "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" } }

Untuk informasi selengkapnya, lihat Node Virtual di Panduan Pengguna AWS App Mesh.

Contoh kode berikut menunjukkan cara menggunakanupdate-virtual-router.

AWS CLI

Untuk memperbarui router virtual

update-virtual-routerContoh berikut menggunakan file JSON input untuk memperbarui port pendengar router virtual.

aws appmesh update-virtual-router \ --cli-input-json file://update-virtual-router.json

Isi dari update-virtual-router.json:

{ "meshName": "app1", "spec": { "listeners": [ { "portMapping": { "port": 8080, "protocol": "http" } } ] }, "virtualRouterName": "vrServiceB" }

Output:

{ "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" } }

Untuk informasi selengkapnya, lihat Router Virtual di Panduan Pengguna AWS App Mesh.

Contoh kode berikut menunjukkan cara menggunakanupdate-virtual-service.

AWS CLI

Untuk memperbarui layanan virtual

update-virtual-serviceContoh berikut menggunakan file JSON input untuk memperbarui layanan virtual untuk menggunakan penyedia router virtual.

aws appmesh update-virtual-service \ --cli-input-json file://update-virtual-service.json

Isi dari update-virtual-service.json:

{ "meshName": "app1", "spec": { "provider": { "virtualRouter": { "virtualRouterName": "vrServiceA" } } }, "virtualServiceName": "serviceA.svc.cluster.local" }

Output:

{ "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" } }

Untuk informasi selengkapnya, lihat Layanan Virtual di Panduan Pengguna AWS App Mesh.