Cloud Run Admin API로 서비스를 가져올 때의 주의 사항
먼저 Cloud Run을 조작하는 API는 다음과 같이 제공됩니다.
위 라이브러리를 읽으면 다음 방법으로 Cloud Run 서비스 정보를 얻을 수 있습니다.
// Get: Get information about a service.
//
// - name: The name of the service to retrieve. For Cloud Run (fully
// managed), replace {namespace_id} with the project ID or number.
func (r *NamespacesServicesService) Get(name string) *NamespacesServicesGetCall {
c := &NamespacesServicesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
c.name = name
return c
}
name
를 어떤 형식으로 넣어야 하는지 확실하지 않으므로 공식 Google Cloud 문서를 검토합니다.이하에 API에 관한 정보가 기재되어 있어, 이 내용을 읽으면(자)
namespaces/{namespace_id}/services/{service_id}
의 형식으로 건네주면 좋다고 알 수 있습니다. namespace_id
및 service_id
의 변수 부분은 각각 Google Cloud 프로젝트 ID와 Cloud Run 서비스 이름을 전달합니다.여기까지 조사한 내용을 바탕으로 다음과 같은 코드를 썼습니다.
import (
"context"
"fmt"
"google.golang.org/api/run/v1"
)
func FetchURLByServiceName(ctx context.Context, projectID, name string) (string, error) {
c, err := run.NewService(ctx)
if err != nil {
return "", err
}
service, err := c.Namespaces.Services.Get(fmt.Sprintf("namespaces/%s/services/%s", projectID, name)).Do()
if err != nil {
return "", err
}
return service.Status.Url, nil
}
그러나 다음과 같이 오류가 발생합니다 ....
googleapi: Error 404: Requested entity was not found.
아무데도 이상한 곳은 없을 것 같지만, 존재하지 않는 엔티티에 요청을 던지고 있다고 합니다.
대충 봐도 기대대로의 값이 들어가 있으므로 엄청 살아 버렸습니다.
여기서 몇 시간 괴롭히고 있었습니다만, 이하의 문서에 단서가 쓰여져 있었습니다.
htps // 룬. ㅇㅜㅜㅜㅜ 이 m (Global API endpoint, supports list methods only)
기본적으로 부여되는 엔드포인트
https://run.googleapis.com
는 List 메소드에서만 사용할 수 있었고, 다른 메소드를 사용하려면 리전별 엔드포인트에 요청을 던져야 했습니다.이 점을 근거로 이하와 같이 실장했는데, 드디어 기대 동작하게 되었습니다.
import (
"context"
"fmt"
"google.golang.org/api/run/v1"
)
func FetchURLByServiceName(ctx context.Context, name, projectID, region string) (string, error) {
c, err := run.NewService(ctx)
if err != nil {
return "", err
}
c.BasePath = fmt.Sprintf("https://%s-run.googleapis.com/", region)
service, err := c.Namespaces.Services.Get(fmt.Sprintf("namespaces/%s/services/%s", projectID, name)).Do()
if err != nil {
return "", err
}
return service.Status.Url, nil
}
문서는 제대로 읽을 수 있습니다.
Reference
이 문제에 관하여(Cloud Run Admin API로 서비스를 가져올 때의 주의 사항), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/ishii1648/items/8fa5475fb897050e1b83텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)