ホームページ  >  記事  >  バックエンド開発  >  Go での AWS API Gateway の使用: 完全ガイド

Go での AWS API Gateway の使用: 完全ガイド

WBOY
WBOYオリジナル
2023-06-17 16:26:191371ブラウズ

クラウド コンピューティングの人気と発展に伴い、効率的な展開と管理を実現するためにクラウド サービス プロバイダーを使用するアプリケーションがますます増えています。世界最大級のクラウド コンピューティング サービス プロバイダーの 1 つである AWS の API Gateway は、クラウド サービスを実現するための重要なコンポーネントの 1 つです。この記事では、Go 言語で AWS API Gateway を使用して効率的なクラウド サービスを構築する方法を紹介します。

ステップ 1: API ゲートウェイの作成

AWS API Gateway を使用する前に、AWS コンソールで API ゲートウェイを作成する必要があります。まず AWS コンソールで API Gateway サービスを選択し、指示に従って API を作成します。 API を作成する手順には、API 名の定義、リソースの作成、GET および POST メソッドの定義などが含まれます。

その中で、API 名の定義は非常に簡単で、プロンプトに従って入力するだけです。リソースを作成するには、URL パスとメソッドを定義する必要があります。たとえば、URL パス「/hello」と GET メソッドを定義できます。 Amazon Lambda 関数や他のクラウド サービスなど、各メソッドに統合を追加します。

ステップ 2: Go で API Gateway を使用する

Go 言語で API Gateway を使用するには、AWS が正式に提供する SDK を使用する必要があります。まず、AWS SDK Go をインストールする必要があります。これは次の方法でダウンロードできます。

go get github.com/aws/aws-sdk-go

Go プログラムで API Gateway を使用するには、AWS SDK Go が提供する API を使用する必要があります。まず、API ゲートウェイ クライアントを構築する必要があります。例:

import (
    "github.com/aws/aws-sdk-go/aws"
    "github.com/aws/aws-sdk-go/aws/session"
    "github.com/aws/aws-sdk-go/service/apigateway"
)

session := session.Must(session.NewSession(&aws.Config{
    Region: aws.String("us-west-2"),
}))
svc := apigateway.New(session)

API ゲートウェイ クライアントを作成した後、API のリソースとメソッド、および統合メソッドを定義する必要があります。例:

// 资源和方法
id := "abcde12345"
restAPI := "my-restapi-id"
resourcePath := "/hello"
method := "POST"
contentType := "application/json"

// 定义Lambda函数攻略
integration := &apigateway.Integration{
    IntegrationHttpMethod: aws.String("POST"),
    Type:                  aws.String("AWS_PROXY"),
    Uri:                   aws.String("arn:aws:lambda:us-west-2:MyAccount:function:my-lambda-function"),
}

// 添加方法
params := &apigateway.PutMethodInput{
    RestApiId:    aws.String(restAPI),
    ResourceId:   aws.String(id),
    HttpMethod:   aws.String(method),
    AuthorizationType: aws.String("NONE"),
}

_, err := svc.PutMethod(params)
if err != nil {
    panic(fmt.Sprintf("failed to add method to API Gateway, err: %s", err))
}

// 添加Lambda集成方式
params2 := &apigateway.PutIntegrationInput{
    RestApiId: aws.String(restAPI),
    ResourceId:    aws.String(id),
    HttpMethod:    aws.String(method),
    Integration:   integration,
}

_, err2 := svc.PutIntegration(params2)
if err2 != nil {
    panic(fmt.Sprintf("failed to add integration to API Gateway, err: %s", err2))
}

// 添加响应模版
params3 := &apigateway.PutMethodResponseInput{
    RestApiId:         aws.String(restAPI),
    ResourceId:        aws.String(id),
    HttpMethod:        aws.String(method),
    StatusCode:        aws.String("200"),
    ResponseParameters: map[string]*bool{},
    ResponseModels:    map[string]*string{contentType: aws.String("Empty")},
}
_, err3 := svc.PutMethodResponse(params3)
if err3 != nil {
    panic(fmt.Sprintf("failed to add method response to API Gateway, err: %s", err3))
}

// 更新集成响应模版
params4 := &apigateway.PutIntegrationResponseInput{
    RestApiId: aws.String(restAPI),
    ResourceId:        aws.String(id),
    HttpMethod:        aws.String(method),
    StatusCode:        aws.String("200"),
    ResponseTemplates: map[string]*string{contentType: aws.String("")},
}
_, err4 := svc.PutIntegrationResponse(params4)
if err4 != nil {
    panic(fmt.Sprintf("failed to add integration response to API Gateway, err: %s", err4))
}

このコード スニペットでは、リソースとメソッドが定義され、Lambda 統合メソッドが追加されます。応答テンプレートと統合応答テンプレートも定義されています。

ステップ 3: API ゲートウェイをテストする

API ゲートウェイの作成が完了し、Go プログラムを作成した後、API ゲートウェイが適切に動作しているかどうかをテストする必要があります。 Postman または別の HTTP クライアントを使用して、API にリクエストを送信し、レスポンスを受信できます。たとえば、次のコマンドを使用して POST リクエストを API に送信します。

curl --header "Content-Type: application/json" 
     --request POST 
     --data '{"name":"John","age":30}' 
     https://my-gateway-id.execute-api.us-west-2.amazonaws.com/hello

API Gateway のテストが成功したら、Go アプリケーションをデプロイし、API Gateway と統合して、効率的なクラウド サービスを実現できます。

概要

この記事では、Go 言語で AWS API Gateway を使用するための完全なガイドを提供します。 API ゲートウェイを作成し、リソースとメソッド、統合メソッド、応答、統合応答テンプレートを定義する必要があります。これらのタスクは、AWS SDK Go を使用して簡単に実行できます。 API Gateway をテストし、Go アプリケーションを API Gateway と統合した後、AWS クラウド環境で効率的なクラウド サービスを構築できます。

以上がGo での AWS API Gateway の使用: 完全ガイドの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。