Cloud Map
AWS Cloud Map (servicediscovery) on fakecloud: namespace control plane over HTTP, public-DNS, and private-DNS namespaces, driven by the async operation model. awsJson1.1.
fakecloud implements AWS Cloud Map (servicediscovery), the service-discovery and application resource registry, as an awsJson1.1 control plane. The complete 30-operation surface ships — namespaces, operation tracking, services, instances, the DiscoverInstances data-plane lookup, and tagging — backed by account-partitioned state that persists across restarts in persistent mode.
Supported now (all 30 operations)
Namespaces —
CreateHttpNamespace,CreatePrivateDnsNamespace,CreatePublicDnsNamespace,GetNamespace,ListNamespaces,DeleteNamespace,UpdateHttpNamespace,UpdatePrivateDnsNamespace,UpdatePublicDnsNamespace. Each namespace carries anId(ns-...), an ARN, itsType(HTTP/DNS_PUBLIC/DNS_PRIVATE),Properties(HttpProperties.HttpName; DNS types also get a synthesizedDnsProperties.HostedZoneIdand default SOA), aServiceCount, and tags.CreatePrivateDnsNamespacerequires aVpc.Operations —
GetOperation,ListOperations. Cloud Map's create/delete/ update calls are asynchronous: they return anOperationIdrather than the resource. fakecloud mints anOperation(SUBMITTED) whose status settles toSUCCESSwhen you callGetOperation(deterministic, no background timer), with aTargetsmap pointing at the affected namespace. The namespace itself is visible immediately viaGetNamespace/ListNamespaces.Services —
CreateService,GetService,ListServices,UpdateService,DeleteService, plusGetServiceAttributes,UpdateServiceAttributes,DeleteServiceAttributes. Each service carries anId(srv-...), an ARN, itsNamespaceId,DnsConfig(RoutingPolicy + DnsRecords),HealthCheckConfig/HealthCheckCustomConfig, anInstanceCount, and a string-map of service attributes.CreateService/DeleteServiceare synchronous (and adjust the parent namespace'sServiceCount);UpdateServiceis asynchronous (returns anOperationId).ListServicesfilters byNAMESPACE_ID.Instances —
RegisterInstance,DeregisterInstance,GetInstance,ListInstances,GetInstancesHealthStatus,UpdateInstanceCustomHealthStatus. Instances register with well-known attributes (AWS_INSTANCE_IPV4/IPV6/PORT/CNAME, validated against the service'sDnsConfigrecord types), carry a health status (custom health for services with aHealthCheckCustomConfig), and adjust the service'sInstanceCount.RegisterInstance/DeregisterInstanceare asynchronous (return anOperationId).Discovery —
DiscoverInstancesresolves a namespace + service by name and returns matching instances, filtered byQueryParameters(attribute equality) and aHealthStatusfilter (defaultHEALTHY_OR_ELSE_ALL); it carries a per-serviceInstancesRevisioncounter surfaced byDiscoverInstancesRevision.Tagging —
TagResource,UntagResource,ListTagsForResourceover both namespace and service ARNs (create-timeTagsare reflected).
ListNamespaces, ListServices, ListInstances, and ListOperations paginate with MaxResults / NextToken and honor Filters. 100% conformance across the full surface: all 1,062 generated Smithy probe variants for the 30 operations pass. There is no DNS/HTTP data plane beyond the DiscoverInstances API.
Example
import boto3
sd = boto3.client("servicediscovery", endpoint_url="http://localhost:4566")
op = sd.create_http_namespace(Name="my-app")
# create returns an operation id; poll it to completion
status = sd.get_operation(OperationId=op["OperationId"])["Operation"]["Status"]
print(status) # SUCCESS
ns_id = sd.get_operation(OperationId=op["OperationId"])["Operation"]["Targets"]["NAMESPACE"]
print(sd.get_namespace(Id=ns_id)["Namespace"]["Name"]) # my-app