func()

in pkg/cloudmap/resource_manager.go [342:376]


func (m *defaultResourceManager) createCloudMapServiceUnderPrivateDNSNamespace(ctx context.Context, vn *appmesh.VirtualNode,
	nsSummary *servicediscovery.NamespaceSummary, serviceName string, cloudMapTTL int64) (*servicediscovery.Service, error) {
	creatorRequestID := string(vn.UID)
	var dnsRecordType string
	if m.ipFamily == IPv6 {
		dnsRecordType = servicediscovery.RecordTypeAaaa
	} else {
		dnsRecordType = servicediscovery.RecordTypeA
	}
	createServiceInput := &servicediscovery.CreateServiceInput{
		CreatorRequestId: awssdk.String(creatorRequestID),
		NamespaceId:      nsSummary.Id,
		Name:             awssdk.String(serviceName),
		DnsConfig: &servicediscovery.DnsConfig{
			RoutingPolicy: awssdk.String(servicediscovery.RoutingPolicyMultivalue),
			DnsRecords: []*servicediscovery.DnsRecord{
				{
					Type: awssdk.String(dnsRecordType),
					TTL:  awssdk.Int64(cloudMapTTL),
				},
			},
		},
	}
	if m.enableCustomHealthCheck {
		createServiceInput.HealthCheckCustomConfig = &servicediscovery.HealthCheckCustomConfig{
			FailureThreshold: awssdk.Int64(defaultServiceCustomHCFailureThreshold),
		}
	}

	resp, err := m.cloudMapSDK.CreateServiceWithContext(ctx, createServiceInput)
	if err != nil {
		return nil, err
	}
	return resp.Service, nil
}