Service Discovery (Cloud Map)

Implementation details for API servicediscovery

Coverage Overview

Cloud Map (Service Discovery) is supported by LocalStack only in the pro version.

AvailabilityTesting*
OperationImplementedEditionInternal Test SuiteExternal Test SuiteTerraform ValidatedAWS ValidatedSnapshot TestedDetails
CreateHttpNamespace✔️pro✔️✔️Show Tests
CreatePrivateDnsNamespace✔️pro✔️✔️✔️✔️Show Tests
CreatePublicDnsNamespace✔️pro✔️✔️✔️Show Tests
CreateService✔️pro✔️✔️Show Tests
DeleteNamespace✔️pro✔️✔️✔️Show Tests
DeleteService✔️pro✔️Show Tests
DeregisterInstance✔️pro✔️Show Tests
DiscoverInstances✔️pro✔️Show Tests
GetInstance✔️pro✔️Show Tests
GetInstancesHealthStatus
GetNamespace✔️pro✔️Show Tests
GetOperation✔️pro✔️✔️Show Tests
GetService✔️pro✔️✔️Show Tests
ListInstances✔️pro✔️Show Tests
ListNamespaces✔️pro✔️✔️✔️✔️Show Tests
ListOperations
ListServices✔️pro✔️Show Tests
ListTagsForResource✔️pro✔️✔️Show Tests
RegisterInstance✔️pro✔️Show Tests
TagResource✔️pro✔️✔️Show Tests
UntagResource✔️pro✔️✔️Show Tests
UpdateHttpNamespace
UpdateInstanceCustomHealthStatus
UpdatePrivateDnsNamespace
UpdatePublicDnsNamespace
UpdateService✔️pro✔️Show Tests

Terminology

  • Internal Test Suite: tested by LocalStack's internal integration test suite
  • External Test Suite: covered by an external integration test suite, that runs against LocalStack
  • Terraform Validated: operation tested with Terraform
  • AWS Validated: the integration test that includes this operation call was validated against AWS
  • Snapshot Tested: the operation is part of a snapshot parity test, which verifies the responses by LocalStack and AWS are the same

Testing Details

This section gives an overview about the internal integration test suite and the specific test cases that recorded the API call.

How to read the test details?

For each operation we put up a list of the related integration test cases.
Those operation calls have been recorded during the exeuction of the outlined test cases. Some calls might be internal, i.e., they are not explicitly called in the test, but are triggered implicitly by the LocalStack framework.

  • Parameters: The tests are ordered by the parameters used, which are highlighted in bold.
  • Test Details: LocalStack Community or LocalStack Pro indicates where the test originates. For each test you see:
    • test name
    • status code returned (which is the expected one for the test case)
    • information about validation:
      • AWS validated the test is validated against AWS, meaning it run successfully against real AWS as well
      • Snapshot Tested this is a snapshot parity test, meaning the responses are validated against AWS


CreateHttpNamespace

Parameters: CreatorRequestId, Name
  • LocalStack Pro
    • test_create_untagged_resource LocalStack Pro: tests/integration/test_servicediscovery.py::test_create_untagged_resource HTTP Status Code: 200
Parameters: CreatorRequestId, Name, Tags
  • LocalStack Pro
    • test_create_service LocalStack Pro: tests/integration/test_servicediscovery.py::test_create_service HTTP Status Code: 200

CreatePrivateDnsNamespace

Parameters: CreatorRequestId, Description, Name, Vpc
  • LocalStack Pro
    • test_dns_namespace_with_and_without_dot[private-test-<rnd>.com] LocalStack Pro: tests/integration/test_servicediscovery.py::test_dns_namespace_with_and_without_dot[private-test-<rnd>.com] HTTP Status Code: 200 AWS validated Snapshot Tested
    • test_dns_namespace_with_and_without_dot[private-test-domain-<rnd>] LocalStack Pro: tests/integration/test_servicediscovery.py::test_dns_namespace_with_and_without_dot[private-test-domain-<rnd>] HTTP Status Code: 200 AWS validated Snapshot Tested
    • test_dns_namespace_with_and_without_dot[private-invalid name] LocalStack Pro: tests/integration/test_servicediscovery.py::test_dns_namespace_with_and_without_dot[private-invalid name] HTTP Status Code: 400 (InvalidInput) AWS validated Snapshot Tested
Parameters: CreatorRequestId, Name, Vpc
  • LocalStack Pro
    • test_servicediscovery_ecs_integration LocalStack Pro: tests/integration/apigateway/test_http_apis.py::TestHttpApis::test_servicediscovery_ecs_integration HTTP Status Code: 200
    • test_dns_namespace_private LocalStack Pro: tests/integration/test_servicediscovery.py::test_dns_namespace_private HTTP Status Code: 200

CreatePublicDnsNamespace

Parameters: CreatorRequestId, Description, Name
  • LocalStack Pro
    • test_dns_namespace_with_and_without_dot[public-test-<rnd>.com] LocalStack Pro: tests/integration/test_servicediscovery.py::test_dns_namespace_with_and_without_dot[public-test-<rnd>.com] HTTP Status Code: 200 AWS validated Snapshot Tested
    • test_dns_namespace_with_and_without_dot[public-invalid name] LocalStack Pro: tests/integration/test_servicediscovery.py::test_dns_namespace_with_and_without_dot[public-invalid name] HTTP Status Code: 400 (InvalidInput) AWS validated Snapshot Tested
    • test_dns_namespace_with_and_without_dot[public-test-domain-<rnd>] LocalStack Pro: tests/integration/test_servicediscovery.py::test_dns_namespace_with_and_without_dot[public-test-domain-<rnd>] HTTP Status Code: 400 (InvalidInput) AWS validated Snapshot Tested
Parameters: CreatorRequestId, Name
  • LocalStack Pro
    • test_create_instances LocalStack Pro: tests/integration/test_servicediscovery.py::test_create_instances HTTP Status Code: 200
    • test_dns_namespace_public LocalStack Pro: tests/integration/test_servicediscovery.py::test_dns_namespace_public HTTP Status Code: 200
    • test_dns_namespace_public LocalStack Pro: tests/integration/test_servicediscovery.py::test_dns_namespace_public HTTP Status Code: 400 (InvalidInput)

CreateService

Parameters: CreatorRequestId, Description, Name, NamespaceId, Tags
  • LocalStack Pro
    • test_create_service LocalStack Pro: tests/integration/test_servicediscovery.py::test_create_service HTTP Status Code: 200
Parameters: CreatorRequestId, DnsConfig, HealthCheckCustomConfig, Name
  • LocalStack Pro
    • test_servicediscovery_ecs_integration LocalStack Pro: tests/integration/apigateway/test_http_apis.py::TestHttpApis::test_servicediscovery_ecs_integration HTTP Status Code: 200
Parameters: CreatorRequestId, DnsConfig, Name, NamespaceId
  • LocalStack Pro
    • test_create_instances LocalStack Pro: tests/integration/test_servicediscovery.py::test_create_instances HTTP Status Code: 200

DeleteNamespace

Parameters: Id
  • LocalStack Pro
    • test_servicediscovery_ecs_integration LocalStack Pro: tests/integration/apigateway/test_http_apis.py::TestHttpApis::test_servicediscovery_ecs_integration HTTP Status Code: 200
    • test_create_service LocalStack Pro: tests/integration/test_servicediscovery.py::test_create_service HTTP Status Code: 200
    • test_dns_namespace_private LocalStack Pro: tests/integration/test_servicediscovery.py::test_dns_namespace_private HTTP Status Code: 200
    • test_dns_namespace_public LocalStack Pro: tests/integration/test_servicediscovery.py::test_dns_namespace_public HTTP Status Code: 200
    • test_dns_namespace_with_and_without_dot[private-test-<rnd>.com] LocalStack Pro: tests/integration/test_servicediscovery.py::test_dns_namespace_with_and_without_dot[private-test-<rnd>.com] HTTP Status Code: 200 AWS validated Snapshot Tested
    • test_dns_namespace_with_and_without_dot[private-test-domain-<rnd>] LocalStack Pro: tests/integration/test_servicediscovery.py::test_dns_namespace_with_and_without_dot[private-test-domain-<rnd>] HTTP Status Code: 200 AWS validated Snapshot Tested
    • test_dns_namespace_with_and_without_dot[public-test-<rnd>.com] LocalStack Pro: tests/integration/test_servicediscovery.py::test_dns_namespace_with_and_without_dot[public-test-<rnd>.com] HTTP Status Code: 200 AWS validated Snapshot Tested

DeleteService

Parameters: Id
  • LocalStack Pro
    • test_servicediscovery_ecs_integration LocalStack Pro: tests/integration/apigateway/test_http_apis.py::TestHttpApis::test_servicediscovery_ecs_integration HTTP Status Code: 200
    • test_create_instances LocalStack Pro: tests/integration/test_servicediscovery.py::test_create_instances HTTP Status Code: 200
    • test_create_service LocalStack Pro: tests/integration/test_servicediscovery.py::test_create_service HTTP Status Code: 200

DeregisterInstance

Parameters: InstanceId, ServiceId
  • LocalStack Pro
    • test_create_instances LocalStack Pro: tests/integration/test_servicediscovery.py::test_create_instances HTTP Status Code: 200
    • test_create_instances LocalStack Pro: tests/integration/test_servicediscovery.py::test_create_instances HTTP Status Code: 400 (ResourceNotFoundException)

DiscoverInstances

Parameters: NamespaceName, ServiceName
  • LocalStack Pro
    • test_create_instances LocalStack Pro: tests/integration/test_servicediscovery.py::test_create_instances HTTP Status Code: 200
    • test_create_instances LocalStack Pro: tests/integration/test_servicediscovery.py::test_create_instances HTTP Status Code: 400 (ResourceNotFoundException)

GetInstance

Parameters: InstanceId, ServiceId
  • LocalStack Pro
    • test_create_instances LocalStack Pro: tests/integration/test_servicediscovery.py::test_create_instances HTTP Status Code: 200
    • test_create_instances LocalStack Pro: tests/integration/test_servicediscovery.py::test_create_instances HTTP Status Code: 400 (ResourceNotFoundException)

GetNamespace

Parameters: Id
  • LocalStack Pro
    • test_create_service LocalStack Pro: tests/integration/test_servicediscovery.py::test_create_service HTTP Status Code: 200
    • test_create_untagged_resource LocalStack Pro: tests/integration/test_servicediscovery.py::test_create_untagged_resource HTTP Status Code: 200
    • test_create_service LocalStack Pro: tests/integration/test_servicediscovery.py::test_create_service HTTP Status Code: 400 (ResourceNotFoundException)

GetOperation

Parameters: OperationId
  • LocalStack Pro
    • test_create_service LocalStack Pro: tests/integration/test_servicediscovery.py::test_create_service HTTP Status Code: 200
    • test_create_untagged_resource LocalStack Pro: tests/integration/test_servicediscovery.py::test_create_untagged_resource HTTP Status Code: 200

GetService

Parameters: Id
  • LocalStack Pro
    • test_servicediscovery_ecs_integration LocalStack Pro: tests/integration/apigateway/test_http_apis.py::TestHttpApis::test_servicediscovery_ecs_integration HTTP Status Code: 200
    • test_create_service LocalStack Pro: tests/integration/test_servicediscovery.py::test_create_service HTTP Status Code: 200
    • test_create_service LocalStack Pro: tests/integration/test_servicediscovery.py::test_create_service HTTP Status Code: 400 (ResourceNotFoundException)

ListInstances

Parameters: ServiceId
  • LocalStack Pro
    • test_servicediscovery_ecs_integration LocalStack Pro: tests/integration/apigateway/test_http_apis.py::TestHttpApis::test_servicediscovery_ecs_integration HTTP Status Code: 200
    • test_servicediscovery_ecs_integration LocalStack Pro: tests/integration/apigateway/test_http_apis.py::TestHttpApis::test_servicediscovery_ecs_integration HTTP Status Code: 200
    • test_create_instances LocalStack Pro: tests/integration/test_servicediscovery.py::test_create_instances HTTP Status Code: 200

ListNamespaces

Parameters: - (without any parameters)
  • LocalStack Pro
    • test_servicediscovery_ecs_integration LocalStack Pro: tests/integration/apigateway/test_http_apis.py::TestHttpApis::test_servicediscovery_ecs_integration HTTP Status Code: 200
    • test_create_instances LocalStack Pro: tests/integration/test_servicediscovery.py::test_create_instances HTTP Status Code: 200
    • test_create_service LocalStack Pro: tests/integration/test_servicediscovery.py::test_create_service HTTP Status Code: 200
    • test_dns_namespace_private LocalStack Pro: tests/integration/test_servicediscovery.py::test_dns_namespace_private HTTP Status Code: 200
    • test_dns_namespace_public LocalStack Pro: tests/integration/test_servicediscovery.py::test_dns_namespace_public HTTP Status Code: 200
Parameters: MaxResults
  • LocalStack Pro
    • test_dns_namespace_with_and_without_dot[private-test-<rnd>.com] LocalStack Pro: tests/integration/test_servicediscovery.py::test_dns_namespace_with_and_without_dot[private-test-<rnd>.com] HTTP Status Code: 200 AWS validated Snapshot Tested
    • test_dns_namespace_with_and_without_dot[private-test-domain-<rnd>] LocalStack Pro: tests/integration/test_servicediscovery.py::test_dns_namespace_with_and_without_dot[private-test-domain-<rnd>] HTTP Status Code: 200 AWS validated Snapshot Tested
    • test_dns_namespace_with_and_without_dot[public-test-<rnd>.com] LocalStack Pro: tests/integration/test_servicediscovery.py::test_dns_namespace_with_and_without_dot[public-test-<rnd>.com] HTTP Status Code: 200 AWS validated Snapshot Tested

ListServices

Parameters: - (without any parameters)
  • LocalStack Pro
    • test_servicediscovery_ecs_integration LocalStack Pro: tests/integration/apigateway/test_http_apis.py::TestHttpApis::test_servicediscovery_ecs_integration HTTP Status Code: 200
    • test_servicediscovery_ecs_integration LocalStack Pro: tests/integration/apigateway/test_http_apis.py::TestHttpApis::test_servicediscovery_ecs_integration HTTP Status Code: 200
    • test_create_service LocalStack Pro: tests/integration/test_servicediscovery.py::test_create_service HTTP Status Code: 200

ListTagsForResource

Parameters: ResourceARN
  • LocalStack Pro
    • test_create_service LocalStack Pro: tests/integration/test_servicediscovery.py::test_create_service HTTP Status Code: 200
    • test_create_untagged_resource LocalStack Pro: tests/integration/test_servicediscovery.py::test_create_untagged_resource HTTP Status Code: 200

RegisterInstance

Parameters: Attributes, CreatorRequestId, InstanceId, ServiceId
  • LocalStack Pro
    • test_servicediscovery_ecs_integration LocalStack Pro: tests/integration/apigateway/test_http_apis.py::TestHttpApis::test_servicediscovery_ecs_integration HTTP Status Code: 200
    • test_create_instances LocalStack Pro: tests/integration/test_servicediscovery.py::test_create_instances HTTP Status Code: 200
    • test_create_instances LocalStack Pro: tests/integration/test_servicediscovery.py::test_create_instances HTTP Status Code: 400 (ResourceNotFoundException)

TagResource

Parameters: ResourceARN, Tags
  • LocalStack Pro
    • test_create_service LocalStack Pro: tests/integration/test_servicediscovery.py::test_create_service HTTP Status Code: 200
    • test_create_untagged_resource LocalStack Pro: tests/integration/test_servicediscovery.py::test_create_untagged_resource HTTP Status Code: 200

UntagResource

Parameters: ResourceARN, TagKeys
  • LocalStack Pro
    • test_create_service LocalStack Pro: tests/integration/test_servicediscovery.py::test_create_service HTTP Status Code: 200

UpdateService

Parameters: Id, Service
  • LocalStack Pro
    • test_create_instances LocalStack Pro: tests/integration/test_servicediscovery.py::test_create_instances HTTP Status Code: 200


Last modified March 20, 2023: improve Coverage Docs (#505) (46f2fb0c0)