sql >> データベース >  >> NoSQL >> Redis

Googleの標準AppEngine(Python 3.7)からRedisインスタンス(メモリストア)に接続する方法

    AppEngine標準環境アプリケーションおよびAppEngineFlexアプリケーション2020からRedisインスタンスに接続する

    1.CloudSDKをダウンロードしてインストールします。

    2. Cloud SDKがすでにインストールされている場合は、次のコマンドを実行して更新します。

    gcloud components update
    

    3.新しいプロジェクトを作成します:

    gcloud projects create [YOUR_PROJECT_ID] --set-as-default
    

    4.プロジェクトが作成されたことを確認します:

    gcloud projects describe [YOUR_PROJECT_ID]     
    

    5.作成したプロジェクトを設定します:

    gcloud config set core/project PROJECT_ID
    

    6.プロジェクトでAppEngineアプリを初期化し、そのリージョンを選択します:

    gcloud app create --project=[YOUR_PROJECT_ID]
    

    7.プロンプトが表示されたら、App Engineアプリケーションを配置するリージョンを選択します。リージョンを覚えておいてください。同じリージョンに、RedisインスタンスとVPCコネクタが作成されます。 europe-west2にある私のAppEngineアプリケーション

    8.プロジェクトで請求が有効になっていることを確認します。アプリケーションをAppEngineにデプロイするには、課金アカウントをプロジェクトにリンクする必要があります。

    9.次の前提条件をインストールします。

    a。Gitをダウンロードしてインストールする

    b。次のコマンドを実行して、Python3.7用のAppEngine拡張機能を含むgcloudコンポーネントをインストールします。

    gcloud components install app-engine-python
    

    c。Python開発のために環境を準備する

    10.Redisインスタンスのメモリストアを作成します。次のコマンドを入力して、「europe-west2」リージョンに2 GiB BasicTierRedisインスタンスを作成します

    gcloud redis instances create myinstance --size=2 --region=europe-west2 /
    --redis-version=redis_4_0
    

    11.インスタンスが作成されたら、describeコマンドを入力して、インスタンスのIPアドレスとポートを取得します。ホストとポートの値を使用してインスタンスに接続します。また、Redisインスタンスの承認済みネットワークを見つけます

    gcloud redis instances describe myinstance --region=europe-west2
    

    12.サーバーレスVPCアクセスの構成:アプリおよびRedisインスタンスと同じリージョンにコネクタを作成し、コネクタがRedisインスタンスの承認されたVPCネットワークに接続されていることを確認してください。コネクタの名前を覚えておいてください。

    13.プロジェクトでサーバーレスVPCアクセスAPIが有効になっていることを確認します。

    gcloud services enable vpcaccess.googleapis.com
    

    14.次のコマンドでコネクタを作成します:

    gcloud compute networks vpc-access connectors create connector --network default --region europe-west2 --range 10.10.0.0/28
    

    15.コネクタを使用する前に、コネクタがREADY状態にあることを確認します。出力には、次の行状態が含まれている必要があります:READY

    16.Pythonのリポジトリのクローンを作成します。

    git clone https://github.com/GoogleCloudPlatform/python-docs-samples
    cd python-docs-samples/memorystore/redis
    

    17.アプリケーションをデプロイするための準備AppEngine Standard 。アプリの構成を更新して、サーバーレスVPCアクセスコネクタと、RedisインスタンスのIPアドレスとポートを指定します。

     cd gae_standard_deployment/
     cat app.yaml
    
    
    runtime: python37
    entrypoint: gunicorn -b :$PORT main:app
    
    # Update with Redis instance details
    env_variables:
      REDISHOST: '<REDIS_IP>'
      REDISPORT: '6379'
    
    # Update with Serverless VPC Access connector details
    vpc_access_connector:
      name: 'projects/<PROJECT_ID>/locations/<REGION>/connectors/<CONNECTOR_NAME>'
    
    

    18.アプリケーションをAppEngine標準環境にデプロイする

    cd ..
    cp gae_standard_deployment/app.yaml .
    

    19.デプロイコマンドを実行します

    gcloud beta app deploy
    

    20.デプロイが完了したら、次のURLでアプリにアクセスし、[PROJECT_ID]をGoogleCloudプロジェクトIDに置き換えます。

    Visitor number: 4
    

    成功!

    21.アプリケーションをデプロイするための準備AppEngine Flex 。アプリの構成を更新して、RedisインスタンスのIPアドレスとポートを指定します。

    cd gae_flex_deployment/
    cat app.yaml
    

    cpgae_flex_deployment/app.yaml。

    
    runtime: python
    env: flex
    entrypoint: gunicorn -b :$PORT main:app
    
    runtime_config:
      python_version: 3
    
    # Update with Redis instance IP and port
    env_variables:
      REDISHOST: '<REDIS_IP>'
      REDISPORT: '6379'
    
    # Update with Redis instance network name
    network:
      name: default
    
    

    22.アプリケーションをAppEngine標準環境にデプロイする

    cd ..
    cp gae_flex_deployment/app.yaml .
    

    23.デプロイコマンドを実行します

    gcloud beta app deploy
    

    24.デプロイが完了したら、次のURLでアプリにアクセスし、[PROJECT_ID]をGoogleCloudプロジェクトIDに置き換えます。

    Visitor number: 4
    

    成功!



    1. Mongo-プロパティが永続化されないように無視します

    2. MongoDBで重複レコードを検索する

    3. MongoDB insert()

    4. Go:mongodbデータベースにログを記録するためのio.Writerインターフェースを作成します